You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

79 lines
2.5 MiB

function BigInteger(e,t,n){null!=e&&("number"==typeof e?this.fromNumber(e,t,n):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function nbi(){return new BigInteger(null)}function am1(e,t,n,i,a,r){for(;--r>=0;){var o=t*this[e++]+n[i]+a;a=Math.floor(o/67108864),n[i++]=67108863&o}return a}function am2(e,t,n,i,a,r){for(var o=32767&t,s=t>>15;--r>=0;){var l=32767&this[e],c=this[e++]>>15,d=s*l+c*o;l=o*l+((32767&d)<<15)+n[i]+(1073741823&a),a=(l>>>30)+(d>>>15)+s*c+(a>>>30),n[i++]=1073741823&l}return a}function am3(e,t,n,i,a,r){for(var o=16383&t,s=t>>14;--r>=0;){var l=16383&this[e],c=this[e++]>>14,d=s*l+c*o;l=o*l+((16383&d)<<14)+n[i]+a,a=(l>>28)+(d>>14)+s*c,n[i++]=268435455&l}return a}function int2char(e){return BI_RM.charAt(e)}function intAt(e,t){var n=BI_RC[e.charCodeAt(t)];return null==n?-1:n}function bnpCopyTo(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s}function bnpFromInt(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0}function nbv(e){var t=nbi();return t.fromInt(e),t}function bnpFromString(e,t,n){var i;if(16==t)i=4;else if(8==t)i=3;else if(256==t)i=8;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)return void this.fromRadix(e,t);i=2}this.t=0,this.s=0;for(var a=e.length,r=!1,o=0;--a>=0;){var s=8==i?255&e[a]:intAt(e,a);s<0?"-"==e.charAt(a)&&(r=!0):(r=!1,0==o?this[this.t++]=s:o+i>this.DB?(this[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this[this.t++]=s>>this.DB-o):this[this.t-1]|=s<<o,o+=i,o>=this.DB&&(o-=this.DB))}8==i&&0!=(128&e[0])&&n&&(this.s=-1,o>0&&(this[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),r&&BigInteger.ZERO.subTo(this,this)}function bnpClamp(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t}function bnToString(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var n,i=(1<<t)-1,a=!1,r="",o=this.t,s=this.DB-o*this.DB%t;if(o-- >0)for(s<this.DB&&(n=this[o]>>s)>0&&(a=!0,r=int2char(n));o>=0;)s<t?(n=(this[o]&(1<<s)-1)<<t-s,n|=this[--o]>>(s+=this.DB-t)):(n=this[o]>>(s-=t)&i,s<=0&&(s+=this.DB,--o)),n>0&&(a=!0),a&&(r+=int2char(n));return a?r:"0"}function bnNegate(){var e=nbi();return BigInteger.ZERO.subTo(this,e),e}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(t=n-e.t,0!=t)return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0}function nbits(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function bnBitLength(){return this.t<=0?0:this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s}function bnpDRShiftTo(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s}function bnpLShiftTo(e,t){var n,i=e%this.DB,a=this.DB-i,r=(1<<a)-1,o=Math.floor(e/this.DB),s=this.s<<i&this.DM;for(n=this.t-1;n>=0;--n)t[n+o+1]=this[n]>>a|s,s=(this[n]&r)<<i;for(n=o-1;n>=0;--n)t[n]=0;t[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()}function bnpRShiftTo(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)return void(t.t=0);var i=e%this.DB,a=this.DB-i,r=(1<<i)-1;t[0]=this[n]>>i;for(var o=n+1;o<this.t;++o)t[o-n-1]|=(this[o]&r)<<a,t[o-n]=this[o]>>i;i>0&&(t[this.t-n-1]|=(this.s&r)<<a),t.t=this.t-n,t.clamp()}function bnpSubTo(e,t){for(var n=0,i=0,a=Math.min(e.t,this.t);n<a;)i+=this[n]-e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i-=e[n],t[n++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()}function bnpMultiplyTo(e,t){var n=this.abs(),i=e.abs(),a=n.t;for(t.t=a+i.t;--a>=0;)t[a]=0;for(a=0;a<i.t;++a)t[a+n.t]=n.am(0,i[a],t,a,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&BigInteger.ZERO.subTo(t,t)}function bnpSquareTo(e){for(var t=this.abs(),n=e.t=2*t.t;--n>=0;)e[n]=0;for(n=0;n<t.t-1;++n){var i=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,i,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()}function bnpDivRemTo(e,t,n){var i=e.abs();if(!(i.t<=0)){var a=this.abs();if(a.t<i.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=nbi());var r=nbi(),o=this.s,s=e.s,l=this.DB-nbits(i[i.t-1]);l>0?(i.lShiftTo(l,r),a.lShiftTo(l,n)):(i.copyTo(r),a.copyTo(n));var c=r.t,d=r[c-1];if(0!=d){var u=d*(1<<this.F1)+(c>1?r[c-2]>>this.F2:0),p=this.FV/u,f=(1<<this.F1)/u,m=1<<this.F2,h=n.t,g=h-c,_=null==t?nbi():t;for(r.dlShiftTo(g,_),n.compareTo(_)>=0&&(n[n.t++]=1,n.subTo(_,n)),BigInteger.ONE.dlShiftTo(c,_),_.subTo(r,r);r.t<c;)r[r.t++]=0;for(;--g>=0;){var v=n[--h]==d?this.DM:Math.floor(n[h]*p+(n[h-1]+m)*f);if((n[h]+=r.am(0,v,n,g,0,c))<v)for(r.dlShiftTo(g,_),n.subTo(_,n);n[h]<--v;)n.subTo(_,n)}null!=t&&(n.drShiftTo(c,t),o!=s&&BigInteger.ZERO.subTo(t,t)),n.t=c,n.clamp(),l>0&&n.rShiftTo(l,n),o<0&&BigInteger.ZERO.subTo(n,n)}}}function bnMod(e){var t=nbi();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(BigInteger.ZERO)>0&&e.subTo(t,t),t}function Classic(e){this.m=e}function cConvert(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function cRevert(e){return e}function cReduce(e){e.divRemTo(this.m,null,e)}function cMulTo(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function cSqrTo(e,t){e.squareTo(t),this.reduce(t)}function bnpInvDigit(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return t=t*(2-(15&e)*t)&15,t=t*(2-(255&e)*t)&255,t=t*(2-((65535&e)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Montgomery(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function montConvert(e){var t=nbi();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(BigInteger.ZERO)>0&&this.m.subTo(t,t),t}function montRevert(e){var t=nbi();return e.copyTo(t),this.reduce(t),t}function montReduce(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],i=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(n=t+this.m.t,e[n]+=this.m.am(0,i,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function montSqrTo(e,t){e.squareTo(t),this.reduce(t)}function montMulTo(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function bnpIsEven(){return 0==(this.t>0?1&this[0]:this.s)}function bnpExp(e,t){if(e>4294967295||e<1)return BigInteger.ONE;var n=nbi(),i=nbi(),a=t.convert(this),r=nbits(e)-1;for(a.copyTo(n);--r>=0;)if(t.sqrTo(n,i),(e&1<<r)>0)t.mulTo(i,a,n);else{var o=n;n=i,i=o}return t.revert(n)}function bnModPowInt(e,t){var n;return n=e<256||t.isEven()?new Classic(t):new Montgomery(t),this.exp(e,n)}function bnClone(){var e=nbi();return this.copyTo(e),e}function bnIntValue(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function bnByteValue(){return 0==this.t?this.s:this[0]<<24>>24}function bnShortValue(){return 0==this.t?this.s:this[0]<<16>>16}function bnpChunkSize(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function bnSigNum(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1}function bnpToRadix(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),n=Math.pow(e,t),i=nbv(n),a=nbi(),r=nbi(),o="";for(this.divRemTo(i,a,r);a.signum()>0;)o=(n+r.intValue()).toString(e).substr(1)+o,a.divRemTo(i,a,r);return r.intValue().toString(e)+o}function bnpFromRadix(e,t){this.fromInt(0),null==t&&(t=10);for(var n=this.chunkSize(t),i=Math.pow(t,n),a=!1,r=0,o=0,s=0;s<e.length;++s){var l=intAt(e,s);l<0?"-"==e.charAt(s)&&0==this.signum()&&(a=!0):(o=t*o+l,++r>=n&&(this.dMultiply(i),this.dAddOffset(o,0),r=0,o=0))}r>0&&(this.dMultiply(Math.pow(t,r)),this.dAddOffset(o,0)),a&&BigInteger.ZERO.subTo(this,this)}function bnpFromNumber(e,t,n){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,n),this.testBit(e-1)||this.bitwiseTo(BigInteger.ONE.shiftLeft(e-1),op_or,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(BigInteger.ONE.shiftLeft(e-1),this);else{var i=new Array,a=7&e;i.length=(e>>3)+1,t.nextBytes(i),a>0?i[0]&=(1<<a)-1:i[0]=0,this.fromString(i,256)}}function bnToByteArray(e){var t=this.t,n=new Array;n[0]=this.s;var i,a=this.DB-t*this.DB%8,r=0;if(t-- >0)for(a<this.DB&&(i=this[t]>>a)!=(this.s&this.DM)>>a&&(n[r++]=i|this.s<<this.DB-a);t>=0;)a<8?(i=(this[t]&(1<<a)-1)<<8-a,i|=this[--t]>>(a+=this.DB-8)):(i=this[t]>>(a-=8)&255,a<=0&&(a+=this.DB,--t)),e&&0!=(128&i)&&(i|=-256),0==r&&(128&this.s)!=(128&i)&&++r,(r>0||i!=this.s)&&(n[r++]=i);return n}function bnEquals(e){return 0==this.compareTo(e)}function bnMin(e){return this.compareTo(e)<0?this:e}function bnMax(e){return this.compareTo(e)>0?this:e}function bnpBitwiseTo(e,t,n){var i,a,r=Math.min(e.t,this.t);for(i=0;i<r;++i)n[i]=t(this[i],e[i]);if(e.t<this.t){for(a=e.s&this.DM,i=r;i<this.t;++i)n[i]=t(this[i],a);n.t=this.t}else{for(a=this.s&this.DM,i=r;i<e.t;++i)n[i]=t(a,e[i]);n.t=e.t}n.s=t(this.s,e.s),n.clamp()}function op_and(e,t){return e&t}function bnAnd(e){var t=nbi();return this.bitwiseTo(e,op_and,t),t}function op_or(e,t){return e|t}function bnOr(e){var t=nbi();return this.bitwiseTo(e,op_or,t),t}function op_xor(e,t){return e^t}function bnXor(e){var t=nbi();return this.bitwiseTo(e,op_xor,t),t}function op_andnot(e,t){return e&~t}function bnAndNot(e){var t=nbi();return this.bitwiseTo(e,op_andnot,t),t}function bnNot(){for(var e=nbi(),t=0;t<this.t;++t)e[t]=this.DM&~this[t];return e.t=this.t,e.s=~this.s,e}function bnShiftLeft(e){var t=nbi();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function bnShiftRight(e){var t=nbi();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function lbit(e){if(0==e)return-1;var t=0;return 0==(65535&e)&&(e>>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function bnGetLowestSetBit(){for(var e=0;e<this.t;++e)if(0!=this[e])return e*this.DB+lbit(this[e]);return this.s<0?this.t*this.DB:-1}function cbit(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function bnBitCount(){for(var e=0,t=this.s&this.DM,n=0;n<this.t;++n)e+=cbit(this[n]^t);return e}function bnTestBit(e){var t=Math.floor(e/this.DB);return t>=this.t?0!=this.s:0!=(this[t]&1<<e%this.DB)}function bnpChangeBit(e,t){var n=BigInteger.ONE.shiftLeft(e);return this.bitwiseTo(n,t,n),n}function bnSetBit(e){return this.changeBit(e,op_or)}function bnClearBit(e){return this.changeBit(e,op_andnot)}function bnFlipBit(e){return this.changeBit(e,op_xor)}function bnpAddTo(e,t){for(var n=0,i=0,a=Math.min(e.t,this.t);n<a;)i+=this[n]+e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i+=e[n],t[n++]=i&this.DM,i>>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[n++]=i:i<-1&&(t[n++]=this.DV+i),t.t=n,t.clamp()}function bnAdd(e){var t=nbi();return this.addTo(e,t),t}function bnSubtract(e){var t=nbi();return this.subTo(e,t),t}function bnMultiply(e){var t=nbi();return this.multiplyTo(e,t),t}function bnSquare(){var e=nbi();return this.squareTo(e),e}function bnDivide(e){var t=nbi();return this.divRemTo(e,t,null),t}function bnRemainder(e){var t=nbi();return this.divRemTo(e,null,t),t}function bnDivideAndRemainder(e){var t=nbi(),n=nbi();return this.divRemTo(e,t,n),new Array(t,n)}function bnpDMultiply(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function bnpDAddOffset(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}}function NullExp(){}function nNop(e){return e}function nMulTo(e,t,n){e.multiplyTo(t,n)}function nSqrTo(e,t){e.squareTo(t)}function bnPow(e){return this.exp(e,new NullExp)}function bnpMultiplyLowerTo(e,t,n){var i=Math.min(this.t+e.t,t);for(n.s=0,n.t=i;i>0;)n[--i]=0;var a;for(a=n.t-this.t;i<a;++i)n[i+this.t]=this.am(0,e[i],n,i,0,this.t);for(a=Math.min(e.t,t);i<a;++i)this.am(0,e[i],n,i,0,t-i);n.clamp()}function bnpMultiplyUpperTo(e,t,n){--t;var i=n.t=this.t+e.t-t;for(n.s=0;--i>=0;)n[i]=0;for(i=Math.max(t-this.t,0);i<e.t;++i)n[this.t+i-t]=this.am(t-i,e[i],n,0,0,this.t+i-t);n.clamp(),n.drShiftTo(1,n)}function Barrett(e){this.r2=nbi(),this.q3=nbi(),BigInteger.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function barrettConvert(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=nbi();return e.copyTo(t),this.reduce(t),t}function barrettRevert(e){return e}function barrettReduce(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function barrettSqrTo(e,t){e.squareTo(t),this.reduce(t)}function barrettMulTo(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function bnModPow(e,t){var n,i,a=e.bitLength(),r=nbv(1);if(a<=0)return r;n=a<18?1:a<48?3:a<144?4:a<768?5:6,i=a<8?new Classic(t):t.isEven()?new Barrett(t):new Montgomery(t);var o=new Array,s=3,l=n-1,c=(1<<n)-1;if(o[1]=i.convert(this),n>1){var d=nbi();for(i.sqrTo(o[1],d);s<=c;)o[s]=nbi(),i.mulTo(d,o[s-2],o[s]),s+=2}var u,p,f=e.t-1,m=!0,h=nbi();for(a=nbits(e[f])-1;f>=0;){for(a>=l?u=e[f]>>a-l&c:(u=(e[f]&(1<<a+1)-1)<<l-a,f>0&&(u|=e[f-1]>>this.DB+a-l)),s=n;0==(1&u);)u>>=1,--s;if((a-=s)<0&&(a+=this.DB,--f),m)o[u].copyTo(r),m=!1;else{for(;s>1;)i.sqrTo(r,h),i.sqrTo(h,r),s-=2;s>0?i.sqrTo(r,h):(p=r,r=h,h=p),i.mulTo(h,o[u],r)}for(;f>=0&&0==(e[f]&1<<a);)i.sqrTo(r,h),p=r,r=h,h=p,--a<0&&(a=this.DB-1,--f)}return i.revert(r)}function bnGCD(e){var t=this.s<0?this.negate():this.clone(),n=e.s<0?e.negate():e.clone();if(t.compareTo(n)<0){var i=t;t=n,n=i}var a=t.getLowestSetBit(),r=n.getLowestSetBit();if(r<0)return t;for(a<r&&(r=a),r>0&&(t.rShiftTo(r,t),n.rShiftTo(r,n));t.signum()>0;)(a=t.getLowestSetBit())>0&&t.rShiftTo(a,t),(a=n.getLowestSetBit())>0&&n.rShiftTo(a,n),t.compareTo(n)>=0?(t.subTo(n,t),t.rShiftTo(1,t)):(n.subTo(t,n),n.rShiftTo(1,n));return r>0&&n.lShiftTo(r,n),n}function bnpModInt(e){if(e<=0)return 0;var t=this.DV%e,n=this.s<0?e-1:0;if(this.t>0)if(0==t)n=this[0]%e;else for(var i=this.t-1;i>=0;--i)n=(t*n+this[i])%e;return n}function bnModInverse(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return BigInteger.ZERO;for(var n=e.clone(),i=this.clone(),a=nbv(1),r=nbv(0),o=nbv(0),s=nbv(1);0!=n.signum();){for(;n.isEven();)n.rShiftTo(1,n),t?(a.isEven()&&r.isEven()||(a.addTo(this,a),r.subTo(e,r)),a.rShiftTo(1,a)):r.isEven()||r.subTo(e,r),r.rShiftTo(1,r);for(;i.isEven();)i.rShiftTo(1,i),t?(o.isEven()&&s.isEven()||(o.addTo(this,o),s.subTo(e,s)),o.rShiftTo(1,o)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);n.compareTo(i)>=0?(n.subTo(i,n),t&&a.subTo(o,a),r.subTo(s,r)):(i.subTo(n,i),t&&o.subTo(a,o),s.subTo(r,s))}return 0!=i.compareTo(BigInteger.ONE)?BigInteger.ZERO:s.compareTo(e)>=0?s.subtract(e):s.signum()<0?(s.addTo(e,s),s.signum()<0?s.add(e):s):s}function bnIsProbablePrime(e){var t,n=this.abs();if(1==n.t&&n[0]<=lowprimes[lowprimes.length-1]){for(t=0;t<lowprimes.length;++t)if(n[0]==lowprimes[t])return!0;return!1}if(n.isEven())return!1;for(t=1;t<lowprimes.length;){for(var i=lowprimes[t],a=t+1;a<lowprimes.length&&i<lplim;)i*=lowprimes[a++];for(i=n.modInt(i);t<a;)if(i%lowprimes[t++]==0)return!1}return n.millerRabin(e)}function bnpMillerRabin(e){var t=this.subtract(BigInteger.ONE),n=t.getLowestSetBit();if(n<=0)return!1;var i=t.shiftRight(n);e=e+1>>1,e>lowprimes.length&&(e=lowprimes.length);for(var a=nbi(),r=0;r<e;++r){a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);var o=a.modPow(i,this);if(0!=o.compareTo(BigInteger.ONE)&&0!=o.compareTo(t)){for(var s=1;s++<n&&0!=o.compareTo(t);)if(o=o.modPowInt(2,this),0==o.compareTo(BigInteger.ONE))return!1;if(0!=o.compareTo(t))return!1}}return!0}function rng_seed_int(e){rng_pool[rng_pptr++]^=255&e,rng_pool[rng_pptr++]^=e>>8&255,rng_pool[rng_pptr++]^=e>>16&255,rng_pool[rng_pptr++]^=e>>24&255,rng_pptr>=rng_psize&&(rng_pptr-=rng_psize)}function rng_seed_time(){rng_seed_int((new Date).getTime())}function rng_get_byte(){if(null==rng_state){for(rng_seed_time(),rng_state=prng_newstate(),rng_state.init(rng_pool),rng_pptr=0;rng_pptr<rng_pool.length;++rng_pptr)rng_pool[rng_pptr]=0;rng_pptr=0}return rng_state.next()}function rng_get_bytes(e){var t;for(t=0;t<e.length;++t)e[t]=rng_get_byte()}function SecureRandom(){}function Arcfour(){this.i=0,this.j=0,this.S=new Array}function ARC4init(e){var t,n,i;for(t=0;t<256;++t)this.S[t]=t;for(n=0,t=0;t<256;++t)n=n+this.S[t]+e[t%e.length]&255,i=this.S[t],this.S[t]=this.S[n],this.S[n]=i;this.i=0,this.j=0}function ARC4next(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]}function prng_newstate(){return new Arcfour}function findPrimes(e){var t,n,i,a;for(n=new Array(e),t=0;t<e;t++)n[t]=0;for(n[0]=2,i=0;n[i]<e;){for(t=n[i]*n[i];t<e;t+=n[i])n[t]=1;for(i++,n[i]=n[i-1]+1;n[i]<e&&n[n[i]];n[i]++);}for(a=new Array(i),t=0;t<i;t++)a[t]=n[t];return a}function millerRabinInt(e,t){return mr_x1.length!=e.length&&(mr_x1=dup(e),mr_r=dup(e),mr_a=dup(e)),copyInt_(mr_a,t),millerRabin(e,mr_a)}function millerRabin(e,t){var n,i,a,r;for(mr_x1.length!=e.length&&(mr_x1=dup(e),mr_r=dup(e),mr_a=dup(e)),copy_(mr_a,t),copy_(mr_r,e),copy_(mr_x1,e),addInt_(mr_r,-1),addInt_(mr_x1,-1),a=0,n=0;n<mr_r.length;n++)for(i=1;i<mask;i<<=1)e[n]&i?(r=a<mr_r.length+bpe?a:0,n=mr_r.length,i=mask):a++;if(r&&rightShift_(mr_r,r),powMod_(mr_a,mr_r,e),!equalsInt(mr_a,1)&&!equals(mr_a,mr_x1)){for(i=1;i<=r-1&&!equals(mr_a,mr_x1);){if(squareMod_(mr_a,e),equalsInt(mr_a,1))return 0;i++}if(!equals(mr_a,mr_x1))return 0}return 1}function bitSize(e){var t,n,i;for(t=e.length-1;0==e[t]&&t>0;t--);for(n=0,i=e[t];i;i>>=1,n++);return n+=bpe*t}function expand(e,t){var n=int2bigInt(0,(e.length>t?e.length:t)*bpe,0);return copy_(n,e),n}function randTruePrime(e){var t=int2bigInt(0,e,0);return randTruePrime_(t,e),trim(t,1)}function randProbPrime(e){return e>=600?randProbPrimeRounds(e,2):e>=550?randProbPrimeRounds(e,4):e>=500?randProbPrimeRounds(e,5):e>=400?randProbPrimeRounds(e,6):e>=350?randProbPrimeRounds(e,7):e>=300?randProbPrimeRounds(e,9):e>=250?randProbPrimeRounds(e,12):e>=200?randProbPrimeRounds(e,15):e>=150?randProbPrimeRounds(e,18):e>=100?randProbPrimeRounds(e,27):randProbPrimeRounds(e,40)}function randProbPrimeRounds(e,t){var n,i,a,r;for(r=3e4,n=int2bigInt(0,e,0),0==primes.length&&(primes=findPrimes(3e4)),rpprb.length!=n.length&&(rpprb=dup(n));;){for(randBigInt_(n,e,0),n[0]|=1,a=0,i=0;i<primes.length&&primes[i]<=r;i++)if(0==modInt(n,primes[i])&&!equalsInt(n,primes[i])){a=1;break}for(i=0;i<t&&!a;i++){for(randBigInt_(rpprb,e,0);!greater(n,rpprb);)randBigInt_(rpprb,e,0);millerRabin(n,rpprb)||(a=1)}if(!a)return n}}function mod(e,t){var n=dup(e);return mod_(n,t),trim(n,1)}function addInt(e,t){var n=expand(e,e.length+1);return addInt_(n,t),trim(n,1)}function mult(e,t){var n=expand(e,e.length+t.length);return mult_(n,t),trim(n,1)}function powMod(e,t,n){var i=expand(e,n.length);return powMod_(i,trim(t,2),trim(n,2),0),trim(i,1)}function sub(e,t){var n=expand(e,e.length>t.length?e.length+1:t.length+1);return sub_(n,t),trim(n,1)}function add(e,t){var n=expand(e,e.length>t.length?e.length+1:t.length+1);return add_(n,t),trim(n,1)}function inverseMod(e,t){var n,i=expand(e,t.length);return n=inverseMod_(i,t),n?trim(i,1):null}function multMod(e,t,n){var i=expand(e,n.length);return multMod_(i,t,n),trim(i,1)}function randTruePrime_(e,t){var n,i,a,r,o,s,l,c,d,u,p;if(0==primes.length&&(primes=findPrimes(3e4)),0==pows.length)for(pows=new Array(512),o=0;o<512;o++)pows[o]=Math.pow(2,o/511-1);if(n=.1,i=20,recLimit=20,s_i2.length!=e.length&&(s_i2=dup(e),s_R=dup(e),s_n1=dup(e),s_r2=dup(e),s_d=dup(e),s_x1=dup(e),s_x2=dup(e),s_b=dup(e),s_n=dup(e),s_i=dup(e),s_rm=dup(e),s_q=dup(e),s_a=dup(e),s_aa=dup(e)),t<=recLimit){for(a=(1<<(t+2>>1))-1,copyInt_(e,0),r=1;r;)for(r=0,e[0]=1|1<<t-1|Math.floor(Math.random()*(1<<t)),o=1;o<primes.length&&(primes[o]&a)==primes[o];o++)if(0==e[0]%primes[o]){r=1;break}return void carry_(e)}if(l=n*t*t,t>2*i)for(s=1;t-t*s<=i;)s=pows[Math.floor(512*Math.random())];else s=.5;for(p=Math.floor(s*t)+1,randTruePrime_(s_q,p),copyInt_(s_i2,0),s_i2[Math.floor((t-2)/bpe)]|=1<<(t-2)%bpe,divide_(s_i2,s_q,s_i,s_rm),d=bitSize(s_i);;){for(;randBigInt_(s_R,d,0),!greater(s_i,s_R););for(addInt_(s_R,1),add_(s_R,s_i),copy_(s_n,s_q),mult_(s_n,s_R),multInt_(s_n,2),addInt_(s_n,1),copy_(s_r2,s_R),multInt_(s_r2,2),c=0,o=0;o<primes.length&&primes[o]<l;o++)if(0==modInt(s_n,primes[o])&&!equalsInt(s_n,primes[o])){c=1;break}if(c||millerRabinInt(s_n,2)||(c=1),!c){for(addInt_(s_n,-3),o=s_n.length-1;0==s_n[o]&&o>0;o--);for(u=0,w=s_n[o];w;w>>=1,u++);for(u+=bpe*o;randBigInt_(s_a,u,0),!greater(s_n,s_a););if(addInt_(s_n,3),addInt_(s_a,2),copy_(s_b,s_a),copy_(s_n1,s_n),addInt_(s_n1,-1),powMod_(s_b,s_n1,s_n),addInt_(s_b,-1),isZero(s_b)&&(copy_(s_b,s_a),powMod_(s_b,s_r2,s_n),addInt_(s_b,-1),copy_(s_aa,s_n),copy_(s_d,s_b),GCD_(s_d,s_n),equalsInt(s_d,1)))return void copy_(e,s_aa)}}}function randBigInt(e,t){var n,i;return n=Math.floor((e-1)/bpe)+2,i=int2bigInt(0,0,n),randBigInt_(i,e,t),i}function randBigInt_(e,t,n){var i,a;for(i=0;i<e.length;i++)e[i]=0;for(a=Math.floor((t-1)/bpe)+1,i=0;i<a;i++)e[i]=Math.floor(Math.random()*(1<<bpe-1));e[a-1]&=(2<<(t-1)%bpe)-1,1==n&&(e[a-1]|=1<<(t-1)%bpe)}function GCD(e,t){var n,i;return n=dup(e),i=dup(t),GCD_(n,i),n}function GCD_(e,n){var i,a,r,o,s,l,c,d,u;for(T.length!=e.length&&(T=dup(e)),u=1;u;){for(u=0,i=1;i<n.length;i++)if(n[i]){u=1;break}if(!u)break;for(i=e.length;!e[i]&&i>=0;i--);for(a=e[i],r=n[i],o=1,s=0,l=0,c=1;r+l&&r+c&&(d=Math.floor((a+o)/(r+l)),qp=Math.floor((a+s)/(r+c)),d==qp);)t=o-d*l,o=l,l=t,t=s-d*c,s=c,c=t,t=a-d*r,a=r,r=t;s?(copy_(T,e),linComb_(e,n,o,s),linComb_(n,T,c,l)):(mod_(e,n),copy_(T,e),copy_(e,n),copy_(n,T))}if(0!=n[0])for(t=modInt(e,n[0]),copyInt_(e,n[0]),n[0]=t;n[0];)e[0]%=n[0],t=e[0],e[0]=n[0],n[0]=t}function inverseMod_(e,t){var n=1+2*Math.max(e.length,t.length);if(!(1&e[0]||1&t[0]))return copyInt_(e,0),0;for(eg_u.length!=n&&(eg_u=new Array(n),eg_v=new Array(n),eg_A=new Array(n),eg_B=new Array(n),eg_C=new Array(n),eg_D=new Array(n)),copy_(eg_u,e),copy_(eg_v,t),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,t),halve_(eg_A),sub_(eg_B,e),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&eg_v[0]);)halve_(eg_v),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,t),halve_(eg_C),sub_(eg_D,e),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(eg_v,eg_u)?(sub_(eg_v,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,eg_v),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,t);return copy_(e,eg_C),equalsInt(eg_v,1)?1:(copyInt_(e,0),0)}}}function inverseModInt(e,t){for(var n=1,i=0;;){if(1==e)return n;if(0==e)return 0;if(i-=n*Math.floor(t/e),t%=e,1==t)return i;if(0==t)return 0;n-=i*Math.floor(e/t),e%=t}}function inverseModInt_(e,t){return inverseModInt(e,t)}function eGCD_(e,t,n,i,a){var r=0,o=Math.max(e.length,t.length);for(eg_u.length!=o&&(eg_u=new Array(o),eg_A=new Array(o),eg_B=new Array(o),eg_C=new Array(o),eg_D=new Array(o));!(1&e[0]||1&t[0]);)halve_(e),halve_(t),r++;for(copy_(eg_u,e),copy_(n,t),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,t),halve_(eg_A),sub_(eg_B,e),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&n[0]);)halve_(n),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,t),halve_(eg_C),sub_(eg_D,e),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(n,eg_u)?(sub_(n,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,n),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,t),sub_(eg_D,e);return multInt_(eg_D,-1),copy_(i,eg_C),copy_(a,eg_D),void leftShift_(n,r)}}}function negative(e){return e[e.length-1]>>bpe-1&1}function greaterShift(e,t,n){var i,a=e.length,r=t.length;for(k=a+n<r?a+n:r,i=r-1-n;i<a&&i>=0;i++)if(e[i]>0)return 1;for(i=a-1+n;i<r;i++)if(t[i]>0)return 0;for(i=k-1;i>=n;i--){if(e[i-n]>t[i])return 1;if(e[i-n]<t[i])return 0}return 0}function greater(e,t){var n,i=e.length<t.length?e.length:t.length;for(n=e.length;n<t.length;n++)if(t[n])return 0;for(n=t.length;n<e.length;n++)if(e[n])return 1;for(n=i-1;n>=0;n--){if(e[n]>t[n])return 1;if(e[n]<t[n])return 0}return 0}function divide_(e,t,n,i){var a,r,o,s,l,c,d,u;for(copy_(i,e),r=t.length;0==t[r-1];r--);for(u=t[r-1],d=0;u;d++)u>>=1;for(d=bpe-d,leftShift_(t,d),leftShift_(i,d),a=i.length;0==i[a-1]&&a>r;a--);for(copyInt_(n,0);!greaterShift(t,i,a-r);)subShift_(i,t,a-r),n[a-r]++;for(o=a-1;o>=r;o--){for(i[o]==t[r-1]?n[o-r]=mask:n[o-r]=Math.floor((i[o]*radix+i[o-1])/t[r-1]);l=(r>1?t[r-2]:0)*n[o-r],c=l>>bpe,l&=mask,s=c+n[o-r]*t[r-1],c=s>>bpe,s&=mask,c==i[o]?s==i[o-1]?l>(o>1?i[o-2]:0):s>i[o-1]:c>i[o];)n[o-r]--;linCombShift_(i,t,-n[o-r],o-r),negative(i)&&(addShift_(i,t,o-r),n[o-r]--)}rightShift_(t,d),rightShift_(i,d)}function carry_(e){var t,n,i,a;for(n=e.length,i=0,t=0;t<n;t++)i+=e[t],a=0,i<0&&(a=-(i>>bpe),i+=a*radix),e[t]=i&mask,i=(i>>bpe)-a}function modInt(e,t){var n,i=0;for(n=e.length-1;n>=0;n--)i=(i*radix+e[n])%t;return i}function int2bigInt(e,t,n){var i;return i=Math.ceil(t/bpe)+1,i=n>i?n:i,buff=new Array(i),copyInt_(buff,e),buff}function str2bigInt(e,t,n){var i,a,r,o,s,l=e.length;if(t==-1){for(r=new Array(0);;){for(o=new Array(r.length+1),a=0;a<r.length;a++)o[a+1]=r[a];if(o[0]=parseInt(e,10),r=o,i=e.indexOf(",",0),i<1)break;if(e=e.substring(i+1),0==e.length)break}return r.length<n?(o=new Array(n),copy_(o,r),o):r}for(r=int2bigInt(0,t*l,0),a=0;a<l&&(i=digitsStr.indexOf(e.substring(a,a+1),0),t<=36&&i>=36&&(i-=26),!(i>=t||i<0));a++)multInt_(r,t),addInt_(r,i);for(l=r.length;l>0&&!r[l-1];l--);for(l=n>l+1?n:l+1,o=new Array(l),s=l<r.length?l:r.length,a=0;a<s;a++)o[a]=r[a];for(;a<l;a++)o[a]=0;return o}function equalsInt(e,t){var n;if(e[0]!=t)return 0;for(n=1;n<e.length;n++)if(e[n])return 0;return 1}function equals(e,t){var n,i=e.length<t.length?e.length:t.length;for(n=0;n<i;n++)if(e[n]!=t[n])return 0;if(e.length>t.length){for(;n<e.length;n++)if(e[n])return 0}else for(;n<t.length;n++)if(t[n])return 0;return 1}function isZero(e){var t;for(t=0;t<e.length;t++)if(e[t])return 0;return 1}function bigInt2str(e,t){var n,i,a="";if(s6.length!=e.length?s6=dup(e):copy_(s6,e),t==-1){for(n=e.length-1;n>0;n--)a+=e[n]+",";a+=e[0]}else for(;!isZero(s6);)i=divInt_(s6,t),a=digitsStr.substring(i,i+1)+a;return 0==a.length&&(a="0"),a}function dup(e){return buff=new Array(e.length),copy_(buff,e),buff}function copy_(e,t){var n,i=e.length<t.length?e.length:t.length;for(n=0;n<i;n++)e[n]=t[n];for(n=i;n<e.length;n++)e[n]=0}function copyInt_(e,t){var n,i;for(i=t,n=0;n<e.length;n++)e[n]=i&mask,i>>=bpe}function addInt_(e,t){var n,i,a,r;for(e[0]+=t,i=e.length,a=0,n=0;n<i;n++)if(a+=e[n],r=0,a<0&&(r=-(a>>bpe),a+=r*radix),e[n]=a&mask,a=(a>>bpe)-r,!a)return}function rightShift_(e,t){var n,i=Math.floor(t/bpe);if(i){for(n=0;n<e.length-i;n++)e[n]=e[n+i];for(;n<e.length;n++)e[n]=0;t%=bpe}for(n=0;n<e.length-1;n++)e[n]=mask&(e[n+1]<<bpe-t|e[n]>>t);e[n]>>=t}function halve_(e){var t;for(t=0;t<e.length-1;t++)e[t]=mask&(e[t+1]<<bpe-1|e[t]>>1);e[t]=e[t]>>1|e[t]&radix>>1}function leftShift_(e,t){var n,i=Math.floor(t/bpe);if(i){for(n=e.length;n>=i;n--)e[n]=e[n-i];for(;n>=0;n--)e[n]=0;t%=bpe}if(t){for(n=e.length-1;n>0;n--)e[n]=mask&(e[n]<<t|e[n-1]>>bpe-t);e[n]=mask&e[n]<<t}}function multInt_(e,t){var n,i,a,r;if(t)for(i=e.length,a=0,n=0;n<i;n++)a+=e[n]*t,r=0,a<0&&(r=-(a>>bpe),a+=r*radix),e[n]=a&mask,a=(a>>bpe)-r}function divInt_(e,t){var n,i,a=0;for(n=e.length-1;n>=0;n--)i=a*radix+e[n],e[n]=Math.floor(i/t),a=i%t;return a}function linComb_(e,t,n,i){var a,r,o,s;for(o=e.length<t.length?e.length:t.length,s=e.length,r=0,a=0;a<o;a++)r+=n*e[a]+i*t[a],e[a]=r&mask,r>>=bpe;for(a=o;a<s;a++)r+=n*e[a],e[a]=r&mask,r>>=bpe}function linCombShift_(e,t,n,i){var a,r,o,s;for(o=e.length<i+t.length?e.length:i+t.length,s=e.length,r=0,a=i;a<o;a++)r+=e[a]+n*t[a-i],e[a]=r&mask,r>>=bpe;for(a=o;r&&a<s;a++)r+=e[a],e[a]=r&mask,r>>=bpe}function addShift_(e,t,n){var i,a,r,o;for(r=e.length<n+t.length?e.length:n+t.length,o=e.length,a=0,i=n;i<r;i++)a+=e[i]+t[i-n],e[i]=a&mask,a>>=bpe;for(i=r;a&&i<o;i++)a+=e[i],e[i]=a&mask,a>>=bpe}function subShift_(e,t,n){var i,a,r,o;for(r=e.length<n+t.length?e.length:n+t.length,o=e.length,a=0,i=n;i<r;i++)a+=e[i]-t[i-n],e[i]=a&mask,a>>=bpe;for(i=r;a&&i<o;i++)a+=e[i],e[i]=a&mask,a>>=bpe}function sub_(e,t){var n,i,a;for(a=e.length<t.length?e.length:t.length,i=0,n=0;n<a;n++)i+=e[n]-t[n],e[n]=i&mask,i>>=bpe;for(n=a;i&&n<e.length;n++)i+=e[n],e[n]=i&mask,i>>=bpe}function add_(e,t){var n,i,a;for(a=e.length<t.length?e.length:t.length,i=0,n=0;n<a;n++)i+=e[n]+t[n],e[n]=i&mask,i>>=bpe;for(n=a;i&&n<e.length;n++)i+=e[n],e[n]=i&mask,i>>=bpe}function mult_(e,t){var n;for(ss.length!=2*e.length&&(ss=new Array(2*e.length)),copyInt_(ss,0),n=0;n<t.length;n++)t[n]&&linCombShift_(ss,e,t[n],n);copy_(e,ss)}function mod_(e,t){s4.length!=e.length?s4=dup(e):copy_(s4,e),s5.length!=e.length&&(s5=dup(e)),divide_(s4,t,s5,e)}function multMod_(e,t,n){var i;for(s0.length!=2*e.length&&(s0=new Array(2*e.length)),copyInt_(s0,0),i=0;i<t.length;i++)t[i]&&linCombShift_(s0,e,t[i],i);mod_(s0,n),copy_(e,s0)}function squareMod_(e,t){var n,i,a,r,o;for(r=e.length;r>0&&!e[r-1];r--);for(o=r>t.length?2*r:2*t.length,s0.length!=o&&(s0=new Array(o)),copyInt_(s0,0),n=0;n<r;n++){for(a=s0[2*n]+e[n]*e[n],s0[2*n]=a&mask,a>>=bpe,i=n+1;i<r;i++)a=s0[n+i]+2*e[n]*e[i]+a,s0[n+i]=a&mask,a>>=bpe;s0[n+r]=a}mod_(s0,t),copy_(e,s0)}function trim(e,t){var n,i;for(n=e.length;n>0&&!e[n-1];n--);return i=new Array(n+t),copy_(i,e),i}function powMod_(e,t,n){var i,a,r,o;if(s7.length!=n.length&&(s7=dup(n)),0!=(1&n[0])){for(copyInt_(s7,0),r=n.length;r>0&&!n[r-1];r--);for(o=radix-inverseModInt(modInt(n,radix),radix),s7[r]=1,multMod_(e,s7,n),s3.length!=e.length?s3=dup(e):copy_(s3,e),i=t.length-1;i>0&!t[i];i--);if(0==t[i])return void copyInt_(e,1);for(a=1<<bpe-1;a&&!(t[i]&a);a>>=1);for(;;){if(!(a>>=1)){if(i--,i<0)return void mont_(e,one,n,o);a=1<<bpe-1}mont_(e,e,n,o),a&t[i]&&mont_(e,s3,n,o)}}else for(copy_(s7,e),copyInt_(e,1);!equalsInt(t,0);)1&t[0]&&multMod_(e,s7,n),divInt_(t,2),squareMod_(s7,n)}function mont_(e,t,n,i){var a,r,o,s,l,c,d=n.length,u=t.length;for(sa.length!=d&&(sa=new Array(d)),copyInt_(sa,0);d>0&&0==n[d-1];d--);for(;u>0&&0==t[u-1];u--);for(c=sa.length-1,a=0;a<d;a++){for(l=sa[0]+e[a]*t[0],s=(l&mask)*i&mask,o=l+s*n[0]>>bpe,l=e[a],r=1;r<u-4;)o+=sa[r]+s*n[r]+l*t[r],sa[r-1]=o&mask,o>>=bpe,r++,o+=sa[r]+s*n[r]+l*t[r],sa[r-1]=o&mask,o>>=bpe,r++,o+=sa[r]+s*n[r]+l*t[r],sa[r-1]=o&mask,o>>=bpe,r++,o+=sa[r]+s*n[r]+l*t[r],sa[r-1]=o&mask,o>>=bpe,r++,o+=sa[r]+s*n[r]+l*t[r],sa[r-1]=o&mask,o>>=bpe,r++;for(;r<u;)o+=sa[r]+s*n[r]+l*t[r],sa[r-1]=o&mask,o>>=bpe,r++;for(;r<d-4;)o+=sa[r]+s*n[r],sa[r-1]=o&mask,o>>=bpe,r++,o+=sa[r]+s*n[r],sa[r-1]=o&mask,o>>=bpe,r++,o+=sa[r]+s*n[r],sa[r-1]=o&mask,o>>=bpe,r++,o+=sa[r]+s*n[r],sa[r-1]=o&mask,o>>=bpe,r++,o+=sa[r]+s*n[r],sa[r-1]=o&mask,o>>=bpe,r++;for(;r<d;)o+=sa[r]+s*n[r],sa[r-1]=o&mask,o>>=bpe,r++;for(;r<c;)o+=sa[r],sa[r-1]=o&mask,o>>=bpe,r++;sa[r-1]=o&mask}greater(n,sa)||sub_(sa,n),copy_(e,sa)}function dT(){return"["+(((new Date).getTime()-_logTimer)/1e3).toFixed(3)+"]"}function checkClick(e,t){return!((1!=e.which||!e.ctrlKey&&!e.metaKey)&&2!=e.which)||(t||e.preventDefault(),!1)}function isInDOM(e,t){return!!e&&(t=t||document.body,e==t||isInDOM(e.parentNode,t))}function checkDragEvent(e){if(!e||e.target&&("IMG"==e.target.tagName||"A"==e.target.tagName))return!1;if(!e.dataTransfer||!e.dataTransfer.types)return!0;for(var t=0;t<e.dataTransfer.types.length;t++)if("Files"==e.dataTransfer.types[t])return!0;
return!1}function cancelEvent(e){return e=e||window.event,e&&(e=e.originalEvent||e,e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.returnValue=!1,e.cancelBubble=!0),!1}function hasOnclick(e){if(e.onclick||e.getAttribute("ng-click"))return!0;var t=$._data(e,"events");return!(!t||!t.click&&!t.mousedown)}function getScrollWidth(){var e=$("<div>").css({position:"absolute",width:100,height:100,overflow:"scroll",top:-9999}).appendTo($(document.body)),t=e[0].offsetWidth-e[0].clientWidth;return e.remove(),t}function onCtrlEnter(e,t){$(e).on("keydown",function(e){if(13==e.keyCode&&(e.ctrlKey||e.metaKey))return t(),cancelEvent(e)})}function setFieldSelection(e,t,n){e=$(e)[0];try{if(e.focus(),void 0!==t&&t!==!1||(t=e.value.length),void 0!==n&&n!==!1||(n=t),e.createTextRange){var i=e.createTextRange();i.collapse(!0),i.moveEnd("character",n),i.moveStart("character",t),i.select()}else e.setSelectionRange&&e.setSelectionRange(t,n)}catch(a){}}function getFieldSelection(e){if(e.selectionStart)return e.selectionStart;if(!document.selection)return 0;var t="",n=document.selection.createRange(),i=n.text,a=n.duplicate(),r=0;try{a.moveToElementText(e)}catch(o){return 0}return n.text=i+t,r=a.text.indexOf(t),n.moveStart("character",-1),n.text="",r}function getRichValue(e){if(!e)return"";var t=[],n=[];getRichElementValue(e,t,n),n.length&&t.push(n.join(""));var i=t.join("\n");return i=i.replace(/\u00A0/g," ")}function getRichValueWithCaret(e){if(!e)return[];var t,n,i=[],a=[],r=!!window.getSelection&&window.getSelection();if(r&&r.rangeCount){var o=r.getRangeAt(0);o.startContainer&&o.startContainer==o.endContainer&&o.startOffset==o.endOffset&&(t=o.startContainer,n=o.startOffset)}getRichElementValue(e,i,a,t,n),a.length&&i.push(a.join(""));var s=i.join("\n"),l=s.indexOf("");return l!=-1&&(s=s.substr(0,l)+s.substr(l+1)),s=s.replace(/\u00A0/g," "),[s,l]}function getRichElementValue(e,t,n,i,a){if(3!=e.nodeType){if(1==e.nodeType){var r,o=i===e,s="DIV"==e.tagName||"P"==e.tagName;s&&n.length||"BR"==e.tagName?(t.push(n.join("")),n.splice(0,n.length)):"IMG"==e.tagName&&e.alt&&n.push(e.alt),o&&!a&&n.push("");for(var r=e.firstChild;r;)getRichElementValue(r,t,n,i,a),r=r.nextSibling;o&&a&&n.push(""),s&&n.length&&(t.push(n.join("")),n.splice(0,n.length))}}else if(i===e){var l=e.nodeValue;n.push(l.substr(0,a)+""+l.substr(a))}else n.push(e.nodeValue)}function setRichFocus(e,t,n){if(e.focus(),!t||t.parentNode!=e||t.nextSibling||n||(e.removeChild(t),t=null),window.getSelection&&document.createRange){var i=document.createRange();t?i.selectNode(t):i.selectNodeContents(e),n||i.collapse(!1);var a=window.getSelection();a.removeAllRanges(),a.addRange(i)}else if(void 0!==document.body.createTextRange){var r=document.body.createTextRange();r.moveToElementText(t||e),n||r.collapse(!1),r.select()}}function getSelectedText(){var e=(window.getSelection&&window.getSelection()||document.getSelection&&document.getSelection()||document.selection&&document.selection.createRange().text||"").toString().replace(/^\s+|\s+$/g,"");return e}function scrollToNode(e,t,n){var i=t.offsetTop-15,a=t.offsetHeight+30,r=e.scrollTop,o=e.clientHeight;r>i?(e.scrollTop=i,$(n).nanoScroller({flash:!0})):r<i+a-o&&(e.scrollTop=i+a-o,$(n).nanoScroller({flash:!0}))}function onContentLoaded(e){e=onAnimationFrameCallback(e),setZeroTimeout(e)}function tsNow(e){var t=+new Date+(window.tsOffset||0);return e?Math.floor(t/1e3):t}function safeReplaceObject(e,t){for(var n in e)t.hasOwnProperty(n)||"$"==n.charAt(0)||delete e[n];for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}function listMergeSorted(e,t){e=e||[],t=t||[];for(var n=angular.copy(e),i=e.length?e[e.length-1]:4294967295,a=0;a<t.length;a++)t[a]<i&&n.push(t[a]);return n}function listUniqSorted(e){e=e||[];for(var t=[],n=!1,i=0;i<e.length;i++)e[i]!==n&&t.push(e[i]),n=e[i];return t}function templateUrl(e){var t={confirm_modal:"desktop",error_modal:"desktop",media_modal_layout:"desktop",slider:"desktop",reply_message:"desktop",full_round:"desktop",message_body:"desktop",message_media:"desktop",message_attach_game:"desktop",forwarded_messages:"desktop",chat_invite_link_modal:"desktop",reply_markup:"desktop",short_message:"desktop",pinned_message:"desktop",channel_edit_modal:"desktop",megagroup_edit_modal:"desktop",inline_results:"desktop",composer_dropdown:"desktop",peer_pinned_message_bar:"desktop"},n=t[e]||(Config.Mobile?"mobile":"desktop");return"partials/"+n+"/"+e+".html"}function encodeEntities(e){return e.replace(/&/g,"&amp;").replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(/([^\#-~| |!])/g,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function calcImageInBox(e,t,n,i,a){var r=n,o=i;return e/t>n/i?o=parseInt(t*n/e):(r=parseInt(e*i/t),r>n&&(o=parseInt(o*n/r),r=n)),a&&r>=e&&o>=t&&(r=e,o=t),{w:r,h:o}}function versionCompare(e,t){"string"!=typeof e&&(e=""),"string"!=typeof t&&(t=""),e=e.replace(/^\s+|\s+$/g,"").split("."),t=t.replace(/^\s+|\s+$/g,"").split(".");var n,i=Math.max(e.length,t.length);for(n=0;n<i;n++)if(e[n]!=t[n])return e[n]>t[n]?1:-1;return 0}function bigint(e){return new BigInteger(e.toString(16),16)}function bigStringInt(e){return new BigInteger(e,10)}function dHexDump(e){for(var t=[],n=0;n<e.length;n++)!n||n%2||(n%16?n%4?t.push(" "):t.push(" "):t.push("\n")),t.push((e[n]<16?"0":"")+e[n].toString(16));console.log(t.join(""))}function bytesToHex(e){e=e||[];for(var t=[],n=0;n<e.length;n++)t.push((e[n]<16?"0":"")+(e[n]||0).toString(16));return t.join("")}function bytesFromHex(e){var t,n=e.length,i=0,a=[];for(e.length%2&&(a.push(parseInt(e.charAt(0),16)),i++),t=i;t<n;t+=2)a.push(parseInt(e.substr(t,2),16));return a}function bytesToBase64(e){for(var t,n="",i=e.length,a=0,r=0;r<i;r++)t=r%3,a|=e[r]<<(16>>>t&24),2!==t&&i-r!==1||(n+=String.fromCharCode(uint6ToBase64(a>>>18&63),uint6ToBase64(a>>>12&63),uint6ToBase64(a>>>6&63),uint6ToBase64(63&a)),a=0);return n.replace(/A(?=A$|$)/g,"=")}function uint6ToBase64(e){return e<26?e+65:e<52?e+71:e<62?e-4:62===e?43:63===e?47:65}function base64ToBlob(e,t){for(var n=1024,i=atob(e),a=i.length,r=Math.ceil(a/n),o=new Array(r),s=0;s<r;++s){for(var l=s*n,c=Math.min(l+n,a),d=new Array(c-l),u=l,p=0;u<c;++p,++u)d[p]=i[u].charCodeAt(0);o[s]=new Uint8Array(d)}return blobConstruct(o,t)}function dataUrlToBlob(e){var t=e.split(","),n=t[1],i=t[0].split(":")[1].split(";")[0],a=base64ToBlob(n,i);return a}function blobConstruct(e,t){var n,i=blobSafeMimeType(t);try{n=new Blob(e,{type:i})}catch(a){var r=new BlobBuilder;angular.forEach(e,function(e){r.append(e)}),n=r.getBlob(i)}return n}function blobSafeMimeType(e){return["image/jpeg","image/png","image/gif","image/webp","image/bmp","video/mp4","video/webm","video/quicktime","audio/ogg","audio/mpeg","audio/mp4"].indexOf(e)==-1?"application/octet-stream":e}function bytesCmp(e,t){var n=e.length;if(n!=t.length)return!1;for(var i=0;i<n;i++)if(e[i]!=t[i])return!1;return!0}function bytesXor(e,t){for(var n=e.length,i=[],a=0;a<n;++a)i[a]=e[a]^t[a];return i}function bytesToWords(e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var t,n=e.length,i=[];for(t=0;t<n;t++)i[t>>>2]|=e[t]<<24-t%4*8;return new CryptoJS.lib.WordArray.init(i,n)}function bytesFromWords(e){for(var t=e.words,n=e.sigBytes,i=[],a=0;a<n;a++)i.push(t[a>>>2]>>>24-a%4*8&255);return i}function bytesFromBigInt(e,t){var n=e.toByteArray();if(t&&n.length<t){for(var i=[],a=0,r=t-n.length;a<r;a++)i[a]=0;n=n instanceof ArrayBuffer?bufferConcat(i,n):i.concat(n)}else for(;!n[0]&&(!t||n.length>t);)n=n.slice(1);return n}function bytesFromLeemonBigInt(e,t){var n=bigInt2str(e,16);return bytesFromHex(n)}function bytesToArrayBuffer(e){return new Uint8Array(e).buffer}function convertToArrayBuffer(e){return e instanceof ArrayBuffer?e:void 0!==e.buffer&&e.buffer.byteLength==e.length*e.BYTES_PER_ELEMENT?e.buffer:bytesToArrayBuffer(e)}function convertToUint8Array(e){return void 0!==e.buffer?e:new Uint8Array(e)}function convertToByteArray(e){if(Array.isArray(e))return e;e=convertToUint8Array(e);for(var t=[],n=0,i=e.length;n<i;n++)t.push(e[n]);return t}function bytesFromArrayBuffer(e){for(var t=e.byteLength,n=new Uint8Array(e),i=[],a=0;a<t;++a)i[a]=n[a];return i}function bufferConcat(e,t){var n=e.byteLength||e.length,i=t.byteLength||t.length,a=new Uint8Array(n+i);return a.set(e instanceof ArrayBuffer?new Uint8Array(e):e,0),a.set(t instanceof ArrayBuffer?new Uint8Array(t):t,n),a.buffer}function longToInts(e){var t=bigStringInt(e).divideAndRemainder(bigint(4294967296));return[t[0].intValue(),t[1].intValue()]}function longToBytes(e){return bytesFromWords({words:longToInts(e),sigBytes:8}).reverse()}function longFromInts(e,t){return bigint(e).shiftLeft(32).add(bigint(t)).toString(10)}function intToUint(e){return e=parseInt(e),e<0&&(e+=4294967296),e}function uintToInt(e){return e>2147483647&&(e-=4294967296),e}function sha1HashSync(e){this.rushaInstance=this.rushaInstance||new Rusha(1048576);var t=rushaInstance.rawDigest(e).buffer;return t}function sha1BytesSync(e){return bytesFromArrayBuffer(sha1HashSync(e))}function sha256HashSync(e){var t=CryptoJS.SHA256(bytesToWords(e)),n=bytesFromWords(t);return n}function rsaEncrypt(e,t){t=addPadding(t,255);var n=new BigInteger(e.modulus,16),i=new BigInteger(e.exponent,16),a=new BigInteger(t),r=a.modPowInt(i,n),o=bytesFromBigInt(r,256);return o}function addPadding(e,t,n){t=t||16;var i=e.byteLength||e.length,a=t-i%t;if(a>0&&a<t){var r=new Array(a);if(n)for(var o=0;o<a;o++)r[o]=0;else(new SecureRandom).nextBytes(r);e=e instanceof ArrayBuffer?bufferConcat(e,r):e.concat(r)}return e}function aesEncryptSync(e,t,n){e.byteLength||e.length;e=addPadding(e);var i=CryptoJS.AES.encrypt(bytesToWords(e),bytesToWords(t),{iv:bytesToWords(n),padding:CryptoJS.pad.NoPadding,mode:CryptoJS.mode.IGE}).ciphertext,a=bytesFromWords(i);return a}function aesDecryptSync(e,t,n){var i=CryptoJS.AES.decrypt({ciphertext:bytesToWords(e)},bytesToWords(t),{iv:bytesToWords(n),padding:CryptoJS.pad.NoPadding,mode:CryptoJS.mode.IGE}),a=bytesFromWords(i);return a}function gzipUncompress(e){var t=new Zlib.Gunzip(e).decompress();return t}function nextRandomInt(e){return Math.floor(Math.random()*e)}function pqPrimeFactorization(e){var t=new BigInteger(e),n=!1;try{n=pqPrimeLeemon(str2bigInt(t.toString(16),16,Math.ceil(64/bpe)+1))}catch(i){console.error("Pq leemon Exception",i)}if(n===!1&&t.bitLength()<=64)try{n=pqPrimeLong(goog.math.Long.fromString(t.toString(16),16))}catch(i){console.error("Pq long Exception",i)}return n===!1&&(n=pqPrimeBigInteger(t)),n}function pqPrimeBigInteger(e){for(var t,n=0,i=0;i<3;i++){for(var a=(15&nextRandomInt(128))+17,r=bigint(nextRandomInt(1e9)+1),o=r.clone(),s=1<<i+18,l=1;l<s;l++){++n;for(var c=r.clone(),d=r.clone(),u=bigint(a);!d.equals(BigInteger.ZERO);)d.and(BigInteger.ONE).equals(BigInteger.ZERO)||(u=u.add(c),u.compareTo(e)>0&&(u=u.subtract(e))),c=c.add(c),c.compareTo(e)>0&&(c=c.subtract(e)),d=d.shiftRight(1);r=u.clone();var p=r.compareTo(o)<0?o.subtract(r):r.subtract(o);if(t=p.gcd(e),!t.equals(BigInteger.ONE))break;0==(l&l-1)&&(o=r.clone())}if(t.compareTo(BigInteger.ONE)>0)break}var f,m,h=e.divide(t);return t.compareTo(h)>0?(f=h,m=t):(f=t,m=h),[bytesFromBigInt(f),bytesFromBigInt(m),n]}function gcdLong(e,t){for(;e.notEquals(goog.math.Long.ZERO)&&t.notEquals(goog.math.Long.ZERO);){for(;t.and(goog.math.Long.ONE).equals(goog.math.Long.ZERO);)t=t.shiftRight(1);for(;e.and(goog.math.Long.ONE).equals(goog.math.Long.ZERO);)e=e.shiftRight(1);e.compare(t)>0?e=e.subtract(t):t=t.subtract(e)}return t.equals(goog.math.Long.ZERO)?e:t}function pqPrimeLong(e){for(var t,n=0,i=0;i<3;i++){for(var a=goog.math.Long.fromInt((15&nextRandomInt(128))+17),r=goog.math.Long.fromInt(nextRandomInt(1e9)+1),o=r,s=1<<i+18,l=1;l<s;l++){++n;for(var c=r,d=r,u=a;d.notEquals(goog.math.Long.ZERO);)d.and(goog.math.Long.ONE).notEquals(goog.math.Long.ZERO)&&(u=u.add(c),u.compare(e)>0&&(u=u.subtract(e))),c=c.add(c),c.compare(e)>0&&(c=c.subtract(e)),d=d.shiftRight(1);r=u;var p=r.compare(o)<0?o.subtract(r):r.subtract(o);if(t=gcdLong(p,e),t.notEquals(goog.math.Long.ONE))break;0==(l&l-1)&&(o=r)}if(t.compare(goog.math.Long.ONE)>0)break}var f,m,h=e.div(t);return t.compare(h)>0?(f=h,m=t):(f=t,m=h),[bytesFromHex(f.toString(16)),bytesFromHex(m.toString(16)),n]}function pqPrimeLeemon(e){var t,n,i,a,r,o,s,l=64,c=Math.ceil(l/bpe)+1,d=0,u=new Array(c),p=new Array(c),f=new Array(c),r=new Array(c),m=new Array(c),h=new Array(c),g=new Array(c);for(t=0;t<3;t++){for(n=(15&nextRandomInt(128))+17,copyInt_(h,nextRandomInt(1e9)+1),copy_(g,h),a=1<<t+18,i=1;i<a;i++){for(++d,copy_(u,h),copy_(p,h),copyInt_(f,n);!isZero(p);)1&p[0]&&(add_(f,u),greater(f,e)&&sub_(f,e)),add_(u,u),greater(u,e)&&sub_(u,e),rightShift_(p,1);if(copy_(h,f),greater(h,g)?(copy_(m,h),sub_(m,g)):(copy_(m,g),sub_(m,h)),eGCD_(m,e,r,u,p),!equalsInt(r,1))break;0==(i&i-1)&&copy_(g,h)}if(greater(r,one))break}return divide_(e,r,h,g),greater(r,h)?(o=h,s=r):(o=r,s=h),[bytesFromLeemonBigInt(o),bytesFromLeemonBigInt(s),d]}function bytesModPow(e,t,n){try{var i=str2bigInt(bytesToHex(e),16),a=str2bigInt(bytesToHex(t),16),r=str2bigInt(bytesToHex(n),16),o=powMod(i,a,r);return bytesFromHex(bigInt2str(o,16))}catch(s){console.error("mod pow error",s)}return bytesFromBigInt(new BigInteger(e).modPow(new BigInteger(t),new BigInteger(n)),256)}function TLSerialization(e){return e=e||{},this.maxLength=e.startMaxLength||2048,this.offset=0,this.createBuffer(),this.mtproto=e.mtproto||!1,this}function TLDeserialization(e,t){return t=t||{},this.offset=0,this.override=t.override||{},this.buffer=e,this.intView=new Uint32Array(this.buffer),this.byteView=new Uint8Array(this.buffer),this.mtproto=t.mtproto||!1,this}function EmojiTooltip(e,t){t=t||{};var n=this;this.btnEl=$(e),this.onEmojiSelected=t.onEmojiSelected,this.onStickerSelected=t.onStickerSelected,this.getStickers=t.getStickers,this.getStickerImage=t.getStickerImage,this.onStickersetSelected=t.onStickersetSelected,this.langpack=t.langpack||{},Config.Navigator.touch||$(this.btnEl).on("mouseenter mouseleave",function(e){n.isOverBtn="mouseenter"==e.type,n.createTooltip(),n.isOverBtn?n.onMouseEnter(!0):n.onMouseLeave(!0)}),$(this.btnEl).on("mousedown",function(e){return n.shown?(clearTimeout(n.hideTimeout),delete n.hideTimeout,n.hide()):(clearTimeout(n.showTimeout),delete n.showTimeout,n.createTooltip(),n.show()),cancelEvent(e)}),$(document).on("mousedown",function(e){n.shown&&n.hide()})}function EmojiPanel(e,t){t=t||{};var n=this;this.containerEl=$(e),this.onEmojiSelected=t.onEmojiSelected,this.containerEl.on("mousedown",function(e){e=e.originalEvent||e;var t,i=$(e.target);return"A"!=i[0].tagName&&(i=$(i[0].parentNode)),(t=i.attr("data-code"))&&(n.onEmojiSelected&&n.onEmojiSelected(t),EmojiHelper.pushPopularEmoji(t)),cancelEvent(e)}),this.update()}function MessageComposer(e,t){var n=this;this.textareaEl=$(e),this.setUpInput(),this.autoCompleteWrapEl=$('<div class="composer_dropdown_wrap"></div>').appendTo(document.body);var i=$("<div></div>").appendTo(this.autoCompleteWrapEl);t.dropdownDirective(i,function(e,t){n.autoCompleteEl=t,n.autoCompleteScope=e,n.setUpAutoComplete()}),this.isActive=!1,this.onTyping=t.onTyping,this.onMessageSubmit=t.onMessageSubmit,this.onDirectionKey=t.onDirectionKey,this.getSendOnEnter=t.getSendOnEnter,this.onFilePaste=t.onFilePaste,this.onCommandSend=t.onCommandSend,this.onInlineResultSend=t.onInlineResultSend,this.mentions=t.mentions,this.commands=t.commands,this.renderToggleCnt=0}function Scroller(e,t){t=t||{};t.classPrefix||"scroller";this.content=$(e),this.useNano=void 0!==t.nano?t.nano:!Config.Mobile,this.maxHeight=t.maxHeight,this.minHeight=t.minHeight,this.useNano?this.setUpNano():this.setUpNative(),this.updateHeight()}!function(e){"use strict";e.console=e.console||{};for(var t,n,i=e.console,a={},r=function(){},o="memory".split(","),s="assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(",");t=o.pop();)i[t]||(i[t]=a);for(;n=s.pop();)i[n]||(i[n]=r)}("undefined"==typeof window?this:window),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n;if(null==this)throw new TypeError('"this" is null or not defined');var i=Object(this),a=i.length>>>0;if(0===a)return-1;var r=+t||0;if(Math.abs(r)===1/0&&(r=0),r>=a)return-1;for(n=Math.max(r>=0?r:a-Math.abs(r),0);n<a;){if(n in i&&i[n]===e)return n;n++}return-1}),Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),"function"!=typeof Object.create&&(Object.create=function(){var e=function(){};return function(t){if(arguments.length>1)throw Error("Second argument not supported");if("object"!=typeof t)throw TypeError("Argument must be an object");e.prototype=t;var n={};return e.prototype=null,n}}()),Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var t=Array.prototype.slice.call(arguments,1),n=this,i=function(){},a=function(){return n.apply(this instanceof i&&e?this:e,t.concat(Array.prototype.slice.call(arguments)))};return i.prototype=this.prototype,a.prototype=new i,a}),function(e){function t(t){var n=++c;return l.push([n,t]),e.postMessage(a,"*"),n}function n(e){if(e&&e>=c)for(var t=0,n=l.length;t<n;t++)if(l[t][0]==e){console.warn("spliced timeout",e,t),l.splice(t,1);break}}function i(t){if(t.source==e&&t.data==a&&(t.stopPropagation(),l.length>0)){var n=l.shift()[1];n()}}var a="zero-timeout-message",r=e.setTimeout,o=e.clearTimeout,s=r(function(){},0),l=[],c=s+1e8;e.addEventListener("message",i,!0),e.setTimeout=function(e,n){return!n||n<=5?t(e):r(e,n)},e.clearTimeout=function(e){return e>=c&&n(e),o(e)},e.setZeroTimeout=t}(this),!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=e.length,n=ae.type(e);return"function"!==n&&!ae.isWindow(e)&&(!(1!==e.nodeType||!t)||("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e))}function i(e,t,n){if(ae.isFunction(t))return ae.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)return ae.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(pe.test(t))return ae.filter(t,e,n);t=ae.filter(t,e)}return ae.grep(e,function(e){return ae.inArray(e,t)>=0!==n})}function a(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function r(e){var t=be[e]={};return ae.each(e.match(ye)||[],function(e,n){t[n]=!0}),t}function o(){me.addEventListener?(me.removeEventListener("DOMContentLoaded",s,!1),e.removeEventListener("load",s,!1)):(me.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(me.addEventListener||"load"===event.type||"complete"===me.readyState)&&(o(),ae.ready())}function l(e,t,n){if(void 0===n&&1===e.nodeType){var i="data-"+t.replace(Ae,"-$1").toLowerCase();if(n=e.getAttribute(i),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:Se.test(n)?ae.parseJSON(n):n)}catch(a){}ae.data(e,t,n)}else n=void 0}return n}function c(e){var t;for(t in e)if(("data"!==t||!ae.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function d(e,t,n,i){if(ae.acceptData(e)){var a,r,o=ae.expando,s=e.nodeType,l=s?ae.cache:e,c=s?e[o]:e[o]&&o;if(c&&l[c]&&(i||l[c].data)||void 0!==n||"string"!=typeof t)return c||(c=s?e[o]=K.pop()||ae.guid++:o),l[c]||(l[c]=s?{}:{toJSON:ae.noop}),("object"==typeof t||"function"==typeof t)&&(i?l[c]=ae.extend(l[c],t):l[c].data=ae.extend(l[c].data,t)),r=l[c],i||(r.data||(r.data={}),r=r.data),void 0!==n&&(r[ae.camelCase(t)]=n),"string"==typeof t?(a=r[t],null==a&&(a=r[ae.camelCase(t)])):a=r,a}}function u(e,t,n){if(ae.acceptData(e)){var i,a,r=e.nodeType,o=r?ae.cache:e,s=r?e[ae.expando]:ae.expando;if(o[s]){if(t&&(i=n?o[s]:o[s].data)){ae.isArray(t)?t=t.concat(ae.map(t,ae.camelCase)):t in i?t=[t]:(t=ae.camelCase(t),t=t in i?[t]:t.split(" ")),a=t.length;for(;a--;)delete i[t[a]];if(n?!c(i):!ae.isEmptyObject(i))return}(n||(delete o[s].data,c(o[s])))&&(r?ae.cleanData([e],!0):ne.deleteExpando||o!=o.window?delete o[s]:o[s]=null)}}}function p(){return!0}function f(){return!1}function m(){try{return me.activeElement}catch(e){}}function h(e){var t=Ne.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function g(e,t){var n,i,a=0,r=typeof e.getElementsByTagName!==Me?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==Me?e.querySelectorAll(t||"*"):void 0;if(!r)for(r=[],n=e.childNodes||e;null!=(i=n[a]);a++)!t||ae.nodeName(i,t)?r.push(i):ae.merge(r,g(i,t));return void 0===t||t&&ae.nodeName(e,t)?ae.merge([e],r):r}function _(e){Ie.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t){return ae.nodeName(e,"table")&&ae.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function y(e){return e.type=(null!==ae.find.attr(e,"type"))+"/"+e.type,e}function b(e){var t=Ge.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function w(e,t){for(var n,i=0;null!=(n=e[i]);i++)ae._data(n,"globalEval",!t||ae._data(t[i],"globalEval"))}function k(e,t){if(1===t.nodeType&&ae.hasData(e)){var n,i,a,r=ae._data(e),o=ae._data(t,r),s=r.events;if(s){delete o.handle,o.events={};for(n in s)for(i=0,a=s[n].length;a>i;i++)ae.event.add(t,n,s[n][i])}o.data&&(o.data=ae.extend({},o.data))}}function M(e,t){var n,i,a;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!ne.noCloneEvent&&t[ae.expando]){a=ae._data(t);for(i in a.events)ae.removeEvent(t,i,a.handle);t.removeAttribute(ae.expando)}"script"===n&&t.text!==e.text?(y(t).text=e.text,b(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),ne.html5Clone&&e.innerHTML&&!ae.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ie.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function S(t,n){var i,a=ae(n.createElement(t)).appendTo(n.body),r=e.getDefaultComputedStyle&&(i=e.getDefaultComputedStyle(a[0]))?i.display:ae.css(a[0],"display");return a.detach(),r}function A(e){var t=me,n=Qe[e];return n||(n=S(e,t),"none"!==n&&n||(Ze=(Ze||ae("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(Ze[0].contentWindow||Ze[0].contentDocument).document,t.write(),t.close(),n=S(e,t),Ze.detach()),Qe[e]=n),n}function C(e,t){return{get:function(){var n=e();if(null!=n)return n?void delete this.get:(this.get=t).apply(this,arguments)}}}function T(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),i=t,a=pt.length;a--;)if(t=pt[a]+n,t in e)return t;return i}function E(e,t){for(var n,i,a,r=[],o=0,s=e.length;s>o;o++)i=e[o],i.style&&(r[o]=ae._data(i,"olddisplay"),n=i.style.display,t?(r[o]||"none"!==n||(i.style.display=""),""===i.style.display&&Ee(i)&&(r[o]=ae._data(i,"olddisplay",A(i.nodeName)))):(a=Ee(i),(n&&"none"!==n||!a)&&ae._data(i,"olddisplay",a?n:ae.css(i,"display"))));for(o=0;s>o;o++)i=e[o],i.style&&(t&&"none"!==i.style.display&&""!==i.style.display||(i.style.display=t?r[o]||"":"none"));return e}function $(e,t,n){var i=lt.exec(t);return i?Math.max(0,i[1]-(n||0))+(i[2]||"px"):t}function I(e,t,n,i,a){for(var r=n===(i?"border":"content")?4:"width"===t?1:0,o=0;4>r;r+=2)"margin"===n&&(o+=ae.css(e,n+Te[r],!0,a)),i?("content"===n&&(o-=ae.css(e,"padding"+Te[r],!0,a)),"margin"!==n&&(o-=ae.css(e,"border"+Te[r]+"Width",!0,a))):(o+=ae.css(e,"padding"+Te[r],!0,a),"padding"!==n&&(o+=ae.css(e,"border"+Te[r]+"Width",!0,a)));return o}function x(e,t,n){var i=!0,a="width"===t?e.offsetWidth:e.offsetHeight,r=et(e),o=ne.boxSizing&&"border-box"===ae.css(e,"boxSizing",!1,r);if(0>=a||null==a){if(a=tt(e,t,r),(0>a||null==a)&&(a=e.style[t]),it.test(a))return a;i=o&&(ne.boxSizingReliable()||a===e.style[t]),a=parseFloat(a)||0}return a+I(e,t,n||(o?"border":"content"),i,r)+"px"}function P(e,t,n,i,a){return new P.prototype.init(e,t,n,i,a)}function D(){return setTimeout(function(){ft=void 0}),ft=ae.now()}function R(e,t){var n,i={height:e},a=0;for(t=t?1:0;4>a;a+=2-t)n=Te[a],i["margin"+n]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function O(e,t,n){for(var i,a=(yt[t]||[]).concat(yt["*"]),r=0,o=a.length;o>r;r++)if(i=a[r].call(n,t,e))return i}function N(e,t,n){var i,a,r,o,s,l,c,d,u=this,p={},f=e.style,m=e.nodeType&&Ee(e),h=ae._data(e,"fxshow");n.queue||(s=ae._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,ae.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[f.overflow,f.overflowX,f.overflowY],c=ae.css(e,"display"),d="none"===c?ae._data(e,"olddisplay")||A(e.nodeName):c,"inline"===d&&"none"===ae.css(e,"float")&&(ne.inlineBlockNeedsLayout&&"inline"!==A(e.nodeName)?f.zoom=1:f.display="inline-block")),n.overflow&&(f.overflow="hidden",ne.shrinkWrapBlocks()||u.always(function(){f.overflow=n.overflow[0],f.overflowX=n.overflow[1],f.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],ht.exec(a)){if(delete t[i],r=r||"toggle"===a,a===(m?"hide":"show")){if("show"!==a||!h||void 0===h[i])continue;m=!0}p[i]=h&&h[i]||ae.style(e,i)}else c=void 0;if(ae.isEmptyObject(p))"inline"===("none"===c?A(e.nodeName):c)&&(f.display=c);else{h?"hidden"in h&&(m=h.hidden):h=ae._data(e,"fxshow",{}),r&&(h.hidden=!m),m?ae(e).show():u.done(function(){ae(e).hide()}),u.done(function(){var t;ae._removeData(e,"fxshow");for(t in p)ae.style(e,t,p[t])});for(i in p)o=O(m?h[i]:0,i,u),i in h||(h[i]=o.start,m&&(o.end=o.start,o.start="width"===i||"height"===i?1:0))}}function L(e,t){var n,i,a,r,o;for(n in e)if(i=ae.camelCase(n),a=t[i],r=e[n],ae.isArray(r)&&(a=r[1],r=e[n]=r[0]),n!==i&&(e[i]=r,delete e[n]),o=ae.cssHooks[i],o&&"expand"in o){r=o.expand(r),delete e[i];for(n in r)n in e||(e[n]=r[n],t[n]=a)}else t[i]=a}function F(e,t,n){var i,a,r=0,o=vt.length,s=ae.Deferred().always(function(){delete l.elem}),l=function(){if(a)return!1;for(var t=ft||D(),n=Math.max(0,c.startTime+c.duration-t),i=n/c.duration||0,r=1-i,o=0,l=c.tweens.length;l>o;o++)c.tweens[o].run(r);return s.notifyWith(e,[c,r,n]),1>r&&l?n:(s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:ae.extend({},t),opts:ae.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:ft||D(),duration:n.duration,tweens:[],createTween:function(t,n){var i=ae.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(i),i},stop:function(t){var n=0,i=t?c.tweens.length:0;if(a)return this;for(a=!0;i>n;n++)c.tweens[n].run(1);return t?s.resolveWith(e,[c,t]):s.rejectWith(e,[c,t]),this}}),d=c.props;for(L(d,c.opts.specialEasing);o>r;r++)if(i=vt[r].call(c,e,d,c.opts))return i;return ae.map(d,O,c),ae.isFunction(c.opts.start)&&c.opts.start.call(e,c),ae.fx.timer(ae.extend(l,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function U(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,a=0,r=t.toLowerCase().match(ye)||[];if(ae.isFunction(n))for(;i=r[a++];)"+"===i.charAt(0)?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function B(e,t,n,i){function a(s){var l;return r[s]=!0,ae.each(e[s]||[],function(e,s){var c=s(t,n,i);return"string"!=typeof c||o||r[c]?o?!(l=c):void 0:(t.dataTypes.unshift(c),a(c),!1)}),l}var r={},o=e===Vt;return a(t.dataTypes[0])||!r["*"]&&a("*")}function H(e,t){var n,i,a=ae.ajaxSettings.flatOptions||{};for(i in t)void 0!==t[i]&&((a[i]?e:n||(n={}))[i]=t[i]);return n&&ae.extend(!0,e,n),e}function j(e,t,n){for(var i,a,r,o,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===a&&(a=e.mimeType||t.getResponseHeader("Content-Type"));if(a)for(o in s)if(s[o]&&s[o].test(a)){l.unshift(o);break}if(l[0]in n)r=l[0];else{for(o in n){if(!l[0]||e.converters[o+" "+l[0]]){r=o;break}i||(i=o)}r=r||i}return r?(r!==l[0]&&l.unshift(r),n[r]):void 0}function V(e,t,n,i){var a,r,o,s,l,c={},d=e.dataTypes.slice();if(d[1])for(o in e.converters)c[o.toLowerCase()]=e.converters[o];for(r=d.shift();r;)if(e.responseFields[r]&&(n[e.responseFields[r]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=r,r=d.shift())if("*"===r)r=l;else if("*"!==l&&l!==r){if(o=c[l+" "+r]||c["* "+r],!o)for(a in c)if(s=a.split(" "),s[1]===r&&(o=c[l+" "+s[0]]||c["* "+s[0]])){o===!0?o=c[a]:c[a]!==!0&&(r=s[0],d.unshift(s[1]));break}if(o!==!0)if(o&&e["throws"])t=o(t);else try{t=o(t)}catch(u){return{state:"parsererror",error:o?u:"No conversion from "+l+" to "+r}}}return{state:"success",data:t}}function q(e,t,n,i){var a;if(ae.isArray(t))ae.each(t,function(t,a){n||Gt.test(e)?i(e,a):q(e+"["+("object"==typeof a?t:"")+"]",a,n,i)});else if(n||"object"!==ae.type(t))i(e,t);else for(a in t)q(e+"["+a+"]",t[a],n,i)}function z(){try{return new e.XMLHttpRequest}catch(t){}}function W(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function G(e){return ae.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}var K=[],Y=K.slice,X=K.concat,J=K.push,Z=K.indexOf,Q={},ee=Q.toString,te=Q.hasOwnProperty,ne={},ie="1.11.1",ae=function(e,t){return new ae.fn.init(e,t)},re=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,oe=/^-ms-/,se=/-([\da-z])/gi,le=function(e,t){return t.toUpperCase()};ae.fn=ae.prototype={jquery:ie,constructor:ae,selector:"",length:0,toArray:function(){return Y.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:Y.call(this)},pushStack:function(e){var t=ae.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return ae.each(this,e,t)},map:function(e){return this.pushStack(ae.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(Y.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:J,sort:K.sort,splice:K.splice},ae.extend=ae.fn.extend=function(){var e,t,n,i,a,r,o=arguments[0]||{},s=1,l=arguments.length,c=!1;for("boolean"==typeof o&&(c=o,o=arguments[s]||{},s++),"object"==typeof o||ae.isFunction(o)||(o={}),s===l&&(o=this,s--);l>s;s++)if(null!=(a=arguments[s]))for(i in a)e=o[i],n=a[i],o!==n&&(c&&n&&(ae.isPlainObject(n)||(t=ae.isArray(n)))?(t?(t=!1,r=e&&ae.isArray(e)?e:[]):r=e&&ae.isPlainObject(e)?e:{},o[i]=ae.extend(c,r,n)):void 0!==n&&(o[i]=n));return o},ae.extend({expando:"jQuery"+(ie+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===ae.type(e)},isArray:Array.isArray||function(e){return"array"===ae.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!ae.isArray(e)&&e-parseFloat(e)>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==ae.type(e)||e.nodeType||ae.isWindow(e))return!1;try{if(e.constructor&&!te.call(e,"constructor")&&!te.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(ne.ownLast)for(t in e)return te.call(e,t);for(t in e);return void 0===t||te.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Q[ee.call(e)]||"object":typeof e},globalEval:function(t){t&&ae.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(oe,"ms-").replace(se,le)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,i){var a,r=0,o=e.length,s=n(e);if(i){if(s)for(;o>r&&(a=t.apply(e[r],i),a!==!1);r++);else for(r in e)if(a=t.apply(e[r],i),a===!1)break;
}else if(s)for(;o>r&&(a=t.call(e[r],r,e[r]),a!==!1);r++);else for(r in e)if(a=t.call(e[r],r,e[r]),a===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(re,"")},makeArray:function(e,t){var i=t||[];return null!=e&&(n(Object(e))?ae.merge(i,"string"==typeof e?[e]:e):J.call(i,e)),i},inArray:function(e,t,n){var i;if(t){if(Z)return Z.call(t,e,n);for(i=t.length,n=n?0>n?Math.max(0,i+n):n:0;i>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,i=0,a=e.length;n>i;)e[a++]=t[i++];if(n!==n)for(;void 0!==t[i];)e[a++]=t[i++];return e.length=a,e},grep:function(e,t,n){for(var i,a=[],r=0,o=e.length,s=!n;o>r;r++)i=!t(e[r],r),i!==s&&a.push(e[r]);return a},map:function(e,t,i){var a,r=0,o=e.length,s=n(e),l=[];if(s)for(;o>r;r++)a=t(e[r],r,i),null!=a&&l.push(a);else for(r in e)a=t(e[r],r,i),null!=a&&l.push(a);return X.apply([],l)},guid:1,proxy:function(e,t){var n,i,a;return"string"==typeof t&&(a=e[t],t=e,e=a),ae.isFunction(e)?(n=Y.call(arguments,2),i=function(){return e.apply(t||this,n.concat(Y.call(arguments)))},i.guid=e.guid=e.guid||ae.guid++,i):void 0},now:function(){return+new Date},support:ne}),ae.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Q["[object "+t+"]"]=t.toLowerCase()});var ce=function(e){function t(e,t,n,i){var a,r,o,s,l,c,u,f,m,h;if((t?t.ownerDocument||t:B)!==P&&x(t),t=t||P,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(R&&!i){if(a=ve.exec(e))if(o=a[1]){if(9===s){if(r=t.getElementById(o),!r||!r.parentNode)return n;if(r.id===o)return n.push(r),n}else if(t.ownerDocument&&(r=t.ownerDocument.getElementById(o))&&F(t,r)&&r.id===o)return n.push(r),n}else{if(a[2])return Q.apply(n,t.getElementsByTagName(e)),n;if((o=a[3])&&w.getElementsByClassName&&t.getElementsByClassName)return Q.apply(n,t.getElementsByClassName(o)),n}if(w.qsa&&(!O||!O.test(e))){if(f=u=U,m=t,h=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=A(e),(u=t.getAttribute("id"))?f=u.replace(be,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",l=c.length;l--;)c[l]=f+p(c[l]);m=ye.test(e)&&d(t.parentNode)||t,h=c.join(",")}if(h)try{return Q.apply(n,m.querySelectorAll(h)),n}catch(g){}finally{u||t.removeAttribute("id")}}}return T(e.replace(le,"$1"),t,n,i)}function n(){function e(n,i){return t.push(n+" ")>k.cacheLength&&delete e[t.shift()],e[n+" "]=i}var t=[];return e}function i(e){return e[U]=!0,e}function a(e){var t=P.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function r(e,t){for(var n=e.split("|"),i=e.length;i--;)k.attrHandle[n[i]]=t}function o(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return i(function(t){return t=+t,i(function(n,i){for(var a,r=e([],n.length,t),o=r.length;o--;)n[a=r[o]]&&(n[a]=!(i[a]=n[a]))})})}function d(e){return e&&typeof e.getElementsByTagName!==G&&e}function u(){}function p(e){for(var t=0,n=e.length,i="";n>t;t++)i+=e[t].value;return i}function f(e,t,n){var i=t.dir,a=n&&"parentNode"===i,r=j++;return t.first?function(t,n,r){for(;t=t[i];)if(1===t.nodeType||a)return e(t,n,r)}:function(t,n,o){var s,l,c=[H,r];if(o){for(;t=t[i];)if((1===t.nodeType||a)&&e(t,n,o))return!0}else for(;t=t[i];)if(1===t.nodeType||a){if(l=t[U]||(t[U]={}),(s=l[i])&&s[0]===H&&s[1]===r)return c[2]=s[2];if(l[i]=c,c[2]=e(t,n,o))return!0}}}function m(e){return e.length>1?function(t,n,i){for(var a=e.length;a--;)if(!e[a](t,n,i))return!1;return!0}:e[0]}function h(e,n,i){for(var a=0,r=n.length;r>a;a++)t(e,n[a],i);return i}function g(e,t,n,i,a){for(var r,o=[],s=0,l=e.length,c=null!=t;l>s;s++)(r=e[s])&&(!n||n(r,i,a))&&(o.push(r),c&&t.push(s));return o}function _(e,t,n,a,r,o){return a&&!a[U]&&(a=_(a)),r&&!r[U]&&(r=_(r,o)),i(function(i,o,s,l){var c,d,u,p=[],f=[],m=o.length,_=i||h(t||"*",s.nodeType?[s]:s,[]),v=!e||!i&&t?_:g(_,p,e,s,l),y=n?r||(i?e:m||a)?[]:o:v;if(n&&n(v,y,s,l),a)for(c=g(y,f),a(c,[],s,l),d=c.length;d--;)(u=c[d])&&(y[f[d]]=!(v[f[d]]=u));if(i){if(r||e){if(r){for(c=[],d=y.length;d--;)(u=y[d])&&c.push(v[d]=u);r(null,y=[],c,l)}for(d=y.length;d--;)(u=y[d])&&(c=r?te.call(i,u):p[d])>-1&&(i[c]=!(o[c]=u))}}else y=g(y===o?y.splice(m,y.length):y),r?r(null,o,y,l):Q.apply(o,y)})}function v(e){for(var t,n,i,a=e.length,r=k.relative[e[0].type],o=r||k.relative[" "],s=r?1:0,l=f(function(e){return e===t},o,!0),c=f(function(e){return te.call(t,e)>-1},o,!0),d=[function(e,n,i){return!r&&(i||n!==E)||((t=n).nodeType?l(e,n,i):c(e,n,i))}];a>s;s++)if(n=k.relative[e[s].type])d=[f(m(d),n)];else{if(n=k.filter[e[s].type].apply(null,e[s].matches),n[U]){for(i=++s;a>i&&!k.relative[e[i].type];i++);return _(s>1&&m(d),s>1&&p(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(le,"$1"),n,i>s&&v(e.slice(s,i)),a>i&&v(e=e.slice(i)),a>i&&p(e))}d.push(n)}return m(d)}function y(e,n){var a=n.length>0,r=e.length>0,o=function(i,o,s,l,c){var d,u,p,f=0,m="0",h=i&&[],_=[],v=E,y=i||r&&k.find.TAG("*",c),b=H+=null==v?1:Math.random()||.1,w=y.length;for(c&&(E=o!==P&&o);m!==w&&null!=(d=y[m]);m++){if(r&&d){for(u=0;p=e[u++];)if(p(d,o,s)){l.push(d);break}c&&(H=b)}a&&((d=!p&&d)&&f--,i&&h.push(d))}if(f+=m,a&&m!==f){for(u=0;p=n[u++];)p(h,_,o,s);if(i){if(f>0)for(;m--;)h[m]||_[m]||(_[m]=J.call(l));_=g(_)}Q.apply(l,_),c&&!i&&_.length>0&&f+n.length>1&&t.uniqueSort(l)}return c&&(H=b,E=v),h};return a?i(o):o}var b,w,k,M,S,A,C,T,E,$,I,x,P,D,R,O,N,L,F,U="sizzle"+-new Date,B=e.document,H=0,j=0,V=n(),q=n(),z=n(),W=function(e,t){return e===t&&(I=!0),0},G="undefined",K=1<<31,Y={}.hasOwnProperty,X=[],J=X.pop,Z=X.push,Q=X.push,ee=X.slice,te=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},ne="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ie="[\\x20\\t\\r\\n\\f]",ae="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",re=ae.replace("w","w#"),oe="\\["+ie+"*("+ae+")(?:"+ie+"*([*^$|!~]?=)"+ie+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+re+"))|)"+ie+"*\\]",se=":("+ae+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+oe+")*)|.*)\\)|)",le=new RegExp("^"+ie+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ie+"+$","g"),ce=new RegExp("^"+ie+"*,"+ie+"*"),de=new RegExp("^"+ie+"*([>+~]|"+ie+")"+ie+"*"),ue=new RegExp("="+ie+"*([^\\]'\"]*?)"+ie+"*\\]","g"),pe=new RegExp(se),fe=new RegExp("^"+re+"$"),me={ID:new RegExp("^#("+ae+")"),CLASS:new RegExp("^\\.("+ae+")"),TAG:new RegExp("^("+ae.replace("w","w*")+")"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+se),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ie+"*(even|odd|(([+-]|)(\\d*)n|)"+ie+"*(?:([+-]|)"+ie+"*(\\d+)|))"+ie+"*\\)|)","i"),bool:new RegExp("^(?:"+ne+")$","i"),needsContext:new RegExp("^"+ie+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ie+"*((?:-\\d)?\\d*)"+ie+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,_e=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,be=/'|\\/g,we=new RegExp("\\\\([\\da-f]{1,6}"+ie+"?|("+ie+")|.)","ig"),ke=function(e,t,n){var i="0x"+t-65536;return i!==i||n?t:0>i?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)};try{Q.apply(X=ee.call(B.childNodes),B.childNodes),X[B.childNodes.length].nodeType}catch(Me){Q={apply:X.length?function(e,t){Z.apply(e,ee.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}w=t.support={},S=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},x=t.setDocument=function(e){var t,n=e?e.ownerDocument||e:B,i=n.defaultView;return n!==P&&9===n.nodeType&&n.documentElement?(P=n,D=n.documentElement,R=!S(n),i&&i!==i.top&&(i.addEventListener?i.addEventListener("unload",function(){x()},!1):i.attachEvent&&i.attachEvent("onunload",function(){x()})),w.attributes=a(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=a(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=_e.test(n.getElementsByClassName)&&a(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),w.getById=a(function(e){return D.appendChild(e).id=U,!n.getElementsByName||!n.getElementsByName(U).length}),w.getById?(k.find.ID=function(e,t){if(typeof t.getElementById!==G&&R){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},k.filter.ID=function(e){var t=e.replace(we,ke);return function(e){return e.getAttribute("id")===t}}):(delete k.find.ID,k.filter.ID=function(e){var t=e.replace(we,ke);return function(e){var n=typeof e.getAttributeNode!==G&&e.getAttributeNode("id");return n&&n.value===t}}),k.find.TAG=w.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==G?t.getElementsByTagName(e):void 0}:function(e,t){var n,i=[],a=0,r=t.getElementsByTagName(e);if("*"===e){for(;n=r[a++];)1===n.nodeType&&i.push(n);return i}return r},k.find.CLASS=w.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==G&&R?t.getElementsByClassName(e):void 0},N=[],O=[],(w.qsa=_e.test(n.querySelectorAll))&&(a(function(e){e.innerHTML="<select msallowclip=''><option selected=''></option></select>",e.querySelectorAll("[msallowclip^='']").length&&O.push("[*^$]="+ie+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||O.push("\\["+ie+"*(?:value|"+ne+")"),e.querySelectorAll(":checked").length||O.push(":checked")}),a(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&O.push("name"+ie+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||O.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),O.push(",.*:")})),(w.matchesSelector=_e.test(L=D.matches||D.webkitMatchesSelector||D.mozMatchesSelector||D.oMatchesSelector||D.msMatchesSelector))&&a(function(e){w.disconnectedMatch=L.call(e,"div"),L.call(e,"[s!='']:x"),N.push("!=",se)}),O=O.length&&new RegExp(O.join("|")),N=N.length&&new RegExp(N.join("|")),t=_e.test(D.compareDocumentPosition),F=t||_e.test(D.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},W=t?function(e,t){if(e===t)return I=!0,0;var i=!e.compareDocumentPosition-!t.compareDocumentPosition;return i?i:(i=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&i||!w.sortDetached&&t.compareDocumentPosition(e)===i?e===n||e.ownerDocument===B&&F(B,e)?-1:t===n||t.ownerDocument===B&&F(B,t)?1:$?te.call($,e)-te.call($,t):0:4&i?-1:1)}:function(e,t){if(e===t)return I=!0,0;var i,a=0,r=e.parentNode,s=t.parentNode,l=[e],c=[t];if(!r||!s)return e===n?-1:t===n?1:r?-1:s?1:$?te.call($,e)-te.call($,t):0;if(r===s)return o(e,t);for(i=e;i=i.parentNode;)l.unshift(i);for(i=t;i=i.parentNode;)c.unshift(i);for(;l[a]===c[a];)a++;return a?o(l[a],c[a]):l[a]===B?-1:c[a]===B?1:0},n):P},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==P&&x(e),n=n.replace(ue,"='$1']"),!(!w.matchesSelector||!R||N&&N.test(n)||O&&O.test(n)))try{var i=L.call(e,n);if(i||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(a){}return t(n,P,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==P&&x(e),F(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==P&&x(e);var n=k.attrHandle[t.toLowerCase()],i=n&&Y.call(k.attrHandle,t.toLowerCase())?n(e,t,!R):void 0;return void 0!==i?i:w.attributes||!R?e.getAttribute(t):(i=e.getAttributeNode(t))&&i.specified?i.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],i=0,a=0;if(I=!w.detectDuplicates,$=!w.sortStable&&e.slice(0),e.sort(W),I){for(;t=e[a++];)t===e[a]&&(i=n.push(a));for(;i--;)e.splice(n[i],1)}return $=null,e},M=t.getText=function(e){var t,n="",i=0,a=e.nodeType;if(a){if(1===a||9===a||11===a){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=M(e)}else if(3===a||4===a)return e.nodeValue}else for(;t=e[i++];)n+=M(t);return n},k=t.selectors={cacheLength:50,createPseudo:i,match:me,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(we,ke),e[3]=(e[3]||e[4]||e[5]||"").replace(we,ke),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return me.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&pe.test(n)&&(t=A(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(we,ke).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=V[e+" "];return t||(t=new RegExp("(^|"+ie+")"+e+"("+ie+"|$)"))&&V(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==G&&e.getAttribute("class")||"")})},ATTR:function(e,n,i){return function(a){var r=t.attr(a,e);return null==r?"!="===n:!n||(r+="","="===n?r===i:"!="===n?r!==i:"^="===n?i&&0===r.indexOf(i):"*="===n?i&&r.indexOf(i)>-1:"$="===n?i&&r.slice(-i.length)===i:"~="===n?(" "+r+" ").indexOf(i)>-1:"|="===n&&(r===i||r.slice(0,i.length+1)===i+"-"))}},CHILD:function(e,t,n,i,a){var r="nth"!==e.slice(0,3),o="last"!==e.slice(-4),s="of-type"===t;return 1===i&&0===a?function(e){return!!e.parentNode}:function(t,n,l){var c,d,u,p,f,m,h=r!==o?"nextSibling":"previousSibling",g=t.parentNode,_=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(g){if(r){for(;h;){for(u=t;u=u[h];)if(s?u.nodeName.toLowerCase()===_:1===u.nodeType)return!1;m=h="only"===e&&!m&&"nextSibling"}return!0}if(m=[o?g.firstChild:g.lastChild],o&&v){for(d=g[U]||(g[U]={}),c=d[e]||[],f=c[0]===H&&c[1],p=c[0]===H&&c[2],u=f&&g.childNodes[f];u=++f&&u&&u[h]||(p=f=0)||m.pop();)if(1===u.nodeType&&++p&&u===t){d[e]=[H,f,p];break}}else if(v&&(c=(t[U]||(t[U]={}))[e])&&c[0]===H)p=c[1];else for(;(u=++f&&u&&u[h]||(p=f=0)||m.pop())&&((s?u.nodeName.toLowerCase()!==_:1!==u.nodeType)||!++p||(v&&((u[U]||(u[U]={}))[e]=[H,p]),u!==t)););return p-=a,p===i||p%i===0&&p/i>=0}}},PSEUDO:function(e,n){var a,r=k.pseudos[e]||k.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return r[U]?r(n):r.length>1?(a=[e,e,"",n],k.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,t){for(var i,a=r(e,n),o=a.length;o--;)i=te.call(e,a[o]),e[i]=!(t[i]=a[o])}):function(e){return r(e,0,a)}):r}},pseudos:{not:i(function(e){var t=[],n=[],a=C(e.replace(le,"$1"));return a[U]?i(function(e,t,n,i){for(var r,o=a(e,null,i,[]),s=e.length;s--;)(r=o[s])&&(e[s]=!(t[s]=r))}):function(e,i,r){return t[0]=e,a(t,null,r,n),!n.pop()}}),has:i(function(e){return function(n){return t(e,n).length>0}}),contains:i(function(e){return function(t){return(t.textContent||t.innerText||M(t)).indexOf(e)>-1}}),lang:i(function(e){return fe.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(we,ke).toLowerCase(),function(t){var n;do if(n=R?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===D},focus:function(e){return e===P.activeElement&&(!P.hasFocus||P.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!k.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var i=0>n?n+t:n;--i>=0;)e.push(i);return e}),gt:c(function(e,t,n){for(var i=0>n?n+t:n;++i<t;)e.push(i);return e})}},k.pseudos.nth=k.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})k.pseudos[b]=s(b);for(b in{submit:!0,reset:!0})k.pseudos[b]=l(b);return u.prototype=k.filters=k.pseudos,k.setFilters=new u,A=t.tokenize=function(e,n){var i,a,r,o,s,l,c,d=q[e+" "];if(d)return n?0:d.slice(0);for(s=e,l=[],c=k.preFilter;s;){(!i||(a=ce.exec(s)))&&(a&&(s=s.slice(a[0].length)||s),l.push(r=[])),i=!1,(a=de.exec(s))&&(i=a.shift(),r.push({value:i,type:a[0].replace(le," ")}),s=s.slice(i.length));for(o in k.filter)!(a=me[o].exec(s))||c[o]&&!(a=c[o](a))||(i=a.shift(),r.push({value:i,type:o,matches:a}),s=s.slice(i.length));if(!i)break}return n?s.length:s?t.error(e):q(e,l).slice(0)},C=t.compile=function(e,t){var n,i=[],a=[],r=z[e+" "];if(!r){for(t||(t=A(e)),n=t.length;n--;)r=v(t[n]),r[U]?i.push(r):a.push(r);r=z(e,y(a,i)),r.selector=e}return r},T=t.select=function(e,t,n,i){var a,r,o,s,l,c="function"==typeof e&&e,u=!i&&A(e=c.selector||e);if(n=n||[],1===u.length){if(r=u[0]=u[0].slice(0),r.length>2&&"ID"===(o=r[0]).type&&w.getById&&9===t.nodeType&&R&&k.relative[r[1].type]){if(t=(k.find.ID(o.matches[0].replace(we,ke),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(r.shift().value.length)}for(a=me.needsContext.test(e)?0:r.length;a--&&(o=r[a],!k.relative[s=o.type]);)if((l=k.find[s])&&(i=l(o.matches[0].replace(we,ke),ye.test(r[0].type)&&d(t.parentNode)||t))){if(r.splice(a,1),e=i.length&&p(r),!e)return Q.apply(n,i),n;break}}return(c||C(e,u))(i,t,!R,n,ye.test(e)&&d(t.parentNode)||t),n},w.sortStable=U.split("").sort(W).join("")===U,w.detectDuplicates=!!I,x(),w.sortDetached=a(function(e){return 1&e.compareDocumentPosition(P.createElement("div"))}),a(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||r("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&a(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||r("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),a(function(e){return null==e.getAttribute("disabled")})||r(ne,function(e,t,n){var i;return n?void 0:e[t]===!0?t.toLowerCase():(i=e.getAttributeNode(t))&&i.specified?i.value:null}),t}(e);ae.find=ce,ae.expr=ce.selectors,ae.expr[":"]=ae.expr.pseudos,ae.unique=ce.uniqueSort,ae.text=ce.getText,ae.isXMLDoc=ce.isXML,ae.contains=ce.contains;var de=ae.expr.match.needsContext,ue=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,pe=/^.[^:#\[\.,]*$/;ae.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?ae.find.matchesSelector(i,e)?[i]:[]:ae.find.matches(e,ae.grep(t,function(e){return 1===e.nodeType}))},ae.fn.extend({find:function(e){var t,n=[],i=this,a=i.length;if("string"!=typeof e)return this.pushStack(ae(e).filter(function(){for(t=0;a>t;t++)if(ae.contains(i[t],this))return!0}));for(t=0;a>t;t++)ae.find(e,i[t],n);return n=this.pushStack(a>1?ae.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(i(this,e||[],!1))},not:function(e){return this.pushStack(i(this,e||[],!0))},is:function(e){return!!i(this,"string"==typeof e&&de.test(e)?ae(e):e||[],!1).length}});var fe,me=e.document,he=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ge=ae.fn.init=function(e,t){var n,i;if(!e)return this;if("string"==typeof e){if(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:he.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||fe).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof ae?t[0]:t,ae.merge(this,ae.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:me,!0)),ue.test(n[1])&&ae.isPlainObject(t))for(n in t)ae.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if(i=me.getElementById(n[2]),i&&i.parentNode){if(i.id!==n[2])return fe.find(e);this.length=1,this[0]=i}return this.context=me,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):ae.isFunction(e)?"undefined"!=typeof fe.ready?fe.ready(e):e(ae):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),ae.makeArray(e,this))};ge.prototype=ae.fn,fe=ae(me);var _e=/^(?:parents|prev(?:Until|All))/,ve={children:!0,contents:!0,next:!0,prev:!0};ae.extend({dir:function(e,t,n){for(var i=[],a=e[t];a&&9!==a.nodeType&&(void 0===n||1!==a.nodeType||!ae(a).is(n));)1===a.nodeType&&i.push(a),a=a[t];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),ae.fn.extend({has:function(e){var t,n=ae(e,this),i=n.length;return this.filter(function(){for(t=0;i>t;t++)if(ae.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,i=0,a=this.length,r=[],o=de.test(e)||"string"!=typeof e?ae(e,t||this.context):0;a>i;i++)for(n=this[i];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(o?o.index(n)>-1:1===n.nodeType&&ae.find.matchesSelector(n,e))){r.push(n);break}return this.pushStack(r.length>1?ae.unique(r):r)},index:function(e){return e?"string"==typeof e?ae.inArray(this[0],ae(e)):ae.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ae.unique(ae.merge(this.get(),ae(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ae.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ae.dir(e,"parentNode")},parentsUntil:function(e,t,n){return ae.dir(e,"parentNode",n)},next:function(e){return a(e,"nextSibling")},prev:function(e){return a(e,"previousSibling")},nextAll:function(e){return ae.dir(e,"nextSibling")},prevAll:function(e){return ae.dir(e,"previousSibling")},nextUntil:function(e,t,n){return ae.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return ae.dir(e,"previousSibling",n)},siblings:function(e){return ae.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return ae.sibling(e.firstChild)},contents:function(e){return ae.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:ae.merge([],e.childNodes)}},function(e,t){ae.fn[e]=function(n,i){var a=ae.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(a=ae.filter(i,a)),this.length>1&&(ve[e]||(a=ae.unique(a)),_e.test(e)&&(a=a.reverse())),this.pushStack(a)}});var ye=/\S+/g,be={};ae.Callbacks=function(e){e="string"==typeof e?be[e]||r(e):ae.extend({},e);var t,n,i,a,o,s,l=[],c=!e.once&&[],d=function(r){for(n=e.memory&&r,i=!0,o=s||0,s=0,a=l.length,t=!0;l&&a>o;o++)if(l[o].apply(r[0],r[1])===!1&&e.stopOnFalse){n=!1;break}t=!1,l&&(c?c.length&&d(c.shift()):n?l=[]:u.disable())},u={add:function(){if(l){var i=l.length;!function r(t){ae.each(t,function(t,n){var i=ae.type(n);"function"===i?e.unique&&u.has(n)||l.push(n):n&&n.length&&"string"!==i&&r(n)})}(arguments),t?a=l.length:n&&(s=i,d(n))}return this},remove:function(){return l&&ae.each(arguments,function(e,n){for(var i;(i=ae.inArray(n,l,i))>-1;)l.splice(i,1),t&&(a>=i&&a--,o>=i&&o--)}),this},has:function(e){return e?ae.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],a=0,this},disable:function(){return l=c=n=void 0,this},disabled:function(){return!l},lock:function(){return c=void 0,n||u.disable(),this},locked:function(){return!c},fireWith:function(e,n){return!l||i&&!c||(n=n||[],n=[e,n.slice?n.slice():n],t?c.push(n):d(n)),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!i}};return u},ae.extend({Deferred:function(e){var t=[["resolve","done",ae.Callbacks("once memory"),"resolved"],["reject","fail",ae.Callbacks("once memory"),"rejected"],["notify","progress",ae.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return a.done(arguments).fail(arguments),this},then:function(){var e=arguments;return ae.Deferred(function(n){ae.each(t,function(t,r){var o=ae.isFunction(e[t])&&e[t];a[r[1]](function(){var e=o&&o.apply(this,arguments);e&&ae.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[r[0]+"With"](this===i?n.promise():this,o?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?ae.extend(e,i):i}},a={};return i.pipe=i.then,ae.each(t,function(e,r){var o=r[2],s=r[3];i[r[1]]=o.add,s&&o.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),a[r[0]]=function(){return a[r[0]+"With"](this===a?i:this,arguments),this},a[r[0]+"With"]=o.fireWith}),i.promise(a),e&&e.call(a,a),a},when:function(e){var t,n,i,a=0,r=Y.call(arguments),o=r.length,s=1!==o||e&&ae.isFunction(e.promise)?o:0,l=1===s?e:ae.Deferred(),c=function(e,n,i){return function(a){n[e]=this,i[e]=arguments.length>1?Y.call(arguments):a,i===t?l.notifyWith(n,i):--s||l.resolveWith(n,i)}};if(o>1)for(t=new Array(o),n=new Array(o),i=new Array(o);o>a;a++)r[a]&&ae.isFunction(r[a].promise)?r[a].promise().done(c(a,i,r)).fail(l.reject).progress(c(a,n,t)):--s;return s||l.resolveWith(i,r),l.promise()}});var we;ae.fn.ready=function(e){return ae.ready.promise().done(e),this},ae.extend({isReady:!1,readyWait:1,holdReady:function(e){e?ae.readyWait++:ae.ready(!0)},ready:function(e){if(e===!0?!--ae.readyWait:!ae.isReady){if(!me.body)return setTimeout(ae.ready);ae.isReady=!0,e!==!0&&--ae.readyWait>0||(we.resolveWith(me,[ae]),ae.fn.triggerHandler&&(ae(me).triggerHandler("ready"),ae(me).off("ready")))}}}),ae.ready.promise=function(t){if(!we)if(we=ae.Deferred(),"complete"===me.readyState)setTimeout(ae.ready);else if(me.addEventListener)me.addEventListener("DOMContentLoaded",s,!1),e.addEventListener("load",s,!1);else{me.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&me.documentElement}catch(i){}n&&n.doScroll&&!function a(){if(!ae.isReady){try{n.doScroll("left")}catch(e){return setTimeout(a,50)}o(),ae.ready()}}()}return we.promise(t)};var ke,Me="undefined";for(ke in ae(ne))break;ne.ownLast="0"!==ke,ne.inlineBlockNeedsLayout=!1,ae(function(){var e,t,n,i;n=me.getElementsByTagName("body")[0],n&&n.style&&(t=me.createElement("div"),i=me.createElement("div"),i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),typeof t.style.zoom!==Me&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",ne.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(i))}),function(){var e=me.createElement("div");if(null==ne.deleteExpando){ne.deleteExpando=!0;try{delete e.test}catch(t){ne.deleteExpando=!1}}e=null}(),ae.acceptData=function(e){var t=ae.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)};var Se=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Ae=/([A-Z])/g;ae.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?ae.cache[e[ae.expando]]:e[ae.expando],!!e&&!c(e)},data:function(e,t,n){return d(e,t,n)},removeData:function(e,t){return u(e,t)},_data:function(e,t,n){return d(e,t,n,!0)},_removeData:function(e,t){return u(e,t,!0)}}),ae.fn.extend({data:function(e,t){var n,i,a,r=this[0],o=r&&r.attributes;if(void 0===e){if(this.length&&(a=ae.data(r),1===r.nodeType&&!ae._data(r,"parsedAttrs"))){for(n=o.length;n--;)o[n]&&(i=o[n].name,0===i.indexOf("data-")&&(i=ae.camelCase(i.slice(5)),l(r,i,a[i])));ae._data(r,"parsedAttrs",!0)}return a}return"object"==typeof e?this.each(function(){ae.data(this,e)}):arguments.length>1?this.each(function(){ae.data(this,e,t)}):r?l(r,e,ae.data(r,e)):void 0},removeData:function(e){return this.each(function(){ae.removeData(this,e)})}}),ae.extend({queue:function(e,t,n){var i;return e?(t=(t||"fx")+"queue",i=ae._data(e,t),n&&(!i||ae.isArray(n)?i=ae._data(e,t,ae.makeArray(n)):i.push(n)),i||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=ae.queue(e,t),i=n.length,a=n.shift(),r=ae._queueHooks(e,t),o=function(){ae.dequeue(e,t)};"inprogress"===a&&(a=n.shift(),i--),a&&("fx"===t&&n.unshift("inprogress"),delete r.stop,a.call(e,o,r)),!i&&r&&r.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ae._data(e,n)||ae._data(e,n,{empty:ae.Callbacks("once memory").add(function(){ae._removeData(e,t+"queue"),ae._removeData(e,n)})})}}),ae.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?ae.queue(this[0],e):void 0===t?this:this.each(function(){var n=ae.queue(this,e,t);ae._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&ae.dequeue(this,e)})},dequeue:function(e){return this.each(function(){ae.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,i=1,a=ae.Deferred(),r=this,o=this.length,s=function(){--i||a.resolveWith(r,[r])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";o--;)n=ae._data(r[o],e+"queueHooks"),n&&n.empty&&(i++,n.empty.add(s));return s(),a.promise(t)}});var Ce=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Te=["Top","Right","Bottom","Left"],Ee=function(e,t){return e=t||e,"none"===ae.css(e,"display")||!ae.contains(e.ownerDocument,e)},$e=ae.access=function(e,t,n,i,a,r,o){var s=0,l=e.length,c=null==n;if("object"===ae.type(n)){a=!0;for(s in n)ae.access(e,t,s,n[s],!0,r,o)}else if(void 0!==i&&(a=!0,ae.isFunction(i)||(o=!0),c&&(o?(t.call(e,i),t=null):(c=t,t=function(e,t,n){return c.call(ae(e),n)})),t))for(;l>s;s++)t(e[s],n,o?i:i.call(e[s],s,t(e[s],n)));return a?e:c?t.call(e):l?t(e[0],n):r},Ie=/^(?:checkbox|radio)$/i;!function(){var e=me.createElement("input"),t=me.createElement("div"),n=me.createDocumentFragment();if(t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",ne.leadingWhitespace=3===t.firstChild.nodeType,ne.tbody=!t.getElementsByTagName("tbody").length,ne.htmlSerialize=!!t.getElementsByTagName("link").length,ne.html5Clone="<:nav></:nav>"!==me.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),ne.appendChecked=e.checked,t.innerHTML="<textarea>x</textarea>",ne.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",ne.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,ne.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){ne.noCloneEvent=!1}),t.cloneNode(!0).click()),null==ne.deleteExpando){ne.deleteExpando=!0;try{delete t.test}catch(i){ne.deleteExpando=!1}}}(),function(){var t,n,i=me.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(ne[t+"Bubbles"]=n in e)||(i.setAttribute(n,"t"),ne[t+"Bubbles"]=i.attributes[n].expando===!1);i=null}();var xe=/^(?:input|select|textarea)$/i,Pe=/^key/,De=/^(?:mouse|pointer|contextmenu)|click/,Re=/^(?:focusinfocus|focusoutblur)$/,Oe=/^([^.]*)(?:\.(.+)|)$/;ae.event={global:{},add:function(e,t,n,i,a){var r,o,s,l,c,d,u,p,f,m,h,g=ae._data(e);if(g){
for(n.handler&&(l=n,n=l.handler,a=l.selector),n.guid||(n.guid=ae.guid++),(o=g.events)||(o=g.events={}),(d=g.handle)||(d=g.handle=function(e){return typeof ae===Me||e&&ae.event.triggered===e.type?void 0:ae.event.dispatch.apply(d.elem,arguments)},d.elem=e),t=(t||"").match(ye)||[""],s=t.length;s--;)r=Oe.exec(t[s])||[],f=h=r[1],m=(r[2]||"").split(".").sort(),f&&(c=ae.event.special[f]||{},f=(a?c.delegateType:c.bindType)||f,c=ae.event.special[f]||{},u=ae.extend({type:f,origType:h,data:i,handler:n,guid:n.guid,selector:a,needsContext:a&&ae.expr.match.needsContext.test(a),namespace:m.join(".")},l),(p=o[f])||(p=o[f]=[],p.delegateCount=0,c.setup&&c.setup.call(e,i,m,d)!==!1||(e.addEventListener?e.addEventListener(f,d,!1):e.attachEvent&&e.attachEvent("on"+f,d))),c.add&&(c.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),a?p.splice(p.delegateCount++,0,u):p.push(u),ae.event.global[f]=!0);e=null}},remove:function(e,t,n,i,a){var r,o,s,l,c,d,u,p,f,m,h,g=ae.hasData(e)&&ae._data(e);if(g&&(d=g.events)){for(t=(t||"").match(ye)||[""],c=t.length;c--;)if(s=Oe.exec(t[c])||[],f=h=s[1],m=(s[2]||"").split(".").sort(),f){for(u=ae.event.special[f]||{},f=(i?u.delegateType:u.bindType)||f,p=d[f]||[],s=s[2]&&new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=r=p.length;r--;)o=p[r],!a&&h!==o.origType||n&&n.guid!==o.guid||s&&!s.test(o.namespace)||i&&i!==o.selector&&("**"!==i||!o.selector)||(p.splice(r,1),o.selector&&p.delegateCount--,u.remove&&u.remove.call(e,o));l&&!p.length&&(u.teardown&&u.teardown.call(e,m,g.handle)!==!1||ae.removeEvent(e,f,g.handle),delete d[f])}else for(f in d)ae.event.remove(e,f+t[c],n,i,!0);ae.isEmptyObject(d)&&(delete g.handle,ae._removeData(e,"events"))}},trigger:function(t,n,i,a){var r,o,s,l,c,d,u,p=[i||me],f=te.call(t,"type")?t.type:t,m=te.call(t,"namespace")?t.namespace.split("."):[];if(s=d=i=i||me,3!==i.nodeType&&8!==i.nodeType&&!Re.test(f+ae.event.triggered)&&(f.indexOf(".")>=0&&(m=f.split("."),f=m.shift(),m.sort()),o=f.indexOf(":")<0&&"on"+f,t=t[ae.expando]?t:new ae.Event(f,"object"==typeof t&&t),t.isTrigger=a?2:3,t.namespace=m.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:ae.makeArray(n,[t]),c=ae.event.special[f]||{},a||!c.trigger||c.trigger.apply(i,n)!==!1)){if(!a&&!c.noBubble&&!ae.isWindow(i)){for(l=c.delegateType||f,Re.test(l+f)||(s=s.parentNode);s;s=s.parentNode)p.push(s),d=s;d===(i.ownerDocument||me)&&p.push(d.defaultView||d.parentWindow||e)}for(u=0;(s=p[u++])&&!t.isPropagationStopped();)t.type=u>1?l:c.bindType||f,r=(ae._data(s,"events")||{})[t.type]&&ae._data(s,"handle"),r&&r.apply(s,n),r=o&&s[o],r&&r.apply&&ae.acceptData(s)&&(t.result=r.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=f,!a&&!t.isDefaultPrevented()&&(!c._default||c._default.apply(p.pop(),n)===!1)&&ae.acceptData(i)&&o&&i[f]&&!ae.isWindow(i)){d=i[o],d&&(i[o]=null),ae.event.triggered=f;try{i[f]()}catch(h){}ae.event.triggered=void 0,d&&(i[o]=d)}return t.result}},dispatch:function(e){e=ae.event.fix(e);var t,n,i,a,r,o=[],s=Y.call(arguments),l=(ae._data(this,"events")||{})[e.type]||[],c=ae.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(o=ae.event.handlers.call(this,e,l),t=0;(a=o[t++])&&!e.isPropagationStopped();)for(e.currentTarget=a.elem,r=0;(i=a.handlers[r++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,n=((ae.event.special[i.origType]||{}).handle||i.handler).apply(a.elem,s),void 0!==n&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,i,a,r,o=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(a=[],r=0;s>r;r++)i=t[r],n=i.selector+" ",void 0===a[n]&&(a[n]=i.needsContext?ae(n,this).index(l)>=0:ae.find(n,this,null,[l]).length),a[n]&&a.push(i);a.length&&o.push({elem:l,handlers:a})}return s<t.length&&o.push({elem:this,handlers:t.slice(s)}),o},fix:function(e){if(e[ae.expando])return e;var t,n,i,a=e.type,r=e,o=this.fixHooks[a];for(o||(this.fixHooks[a]=o=De.test(a)?this.mouseHooks:Pe.test(a)?this.keyHooks:{}),i=o.props?this.props.concat(o.props):this.props,e=new ae.Event(r),t=i.length;t--;)n=i[t],e[n]=r[n];return e.target||(e.target=r.srcElement||me),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,o.filter?o.filter(e,r):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,i,a,r=t.button,o=t.fromElement;return null==e.pageX&&null!=t.clientX&&(i=e.target.ownerDocument||me,a=i.documentElement,n=i.body,e.pageX=t.clientX+(a&&a.scrollLeft||n&&n.scrollLeft||0)-(a&&a.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(a&&a.scrollTop||n&&n.scrollTop||0)-(a&&a.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&o&&(e.relatedTarget=o===e.target?t.toElement:o),e.which||void 0===r||(e.which=1&r?1:2&r?3:4&r?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==m()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===m()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return ae.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(e){return ae.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,i){var a=ae.extend(new ae.Event,n,{type:e,isSimulated:!0,originalEvent:{}});i?ae.event.trigger(a,null,t):ae.event.dispatch.call(t,a),a.isDefaultPrevented()&&n.preventDefault()}},ae.removeEvent=me.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var i="on"+t;e.detachEvent&&(typeof e[i]===Me&&(e[i]=null),e.detachEvent(i,n))},ae.Event=function(e,t){return this instanceof ae.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?p:f):this.type=e,t&&ae.extend(this,t),this.timeStamp=e&&e.timeStamp||ae.now(),void(this[ae.expando]=!0)):new ae.Event(e,t)},ae.Event.prototype={isDefaultPrevented:f,isPropagationStopped:f,isImmediatePropagationStopped:f,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=p,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=p,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=p,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},ae.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){ae.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,i=this,a=e.relatedTarget,r=e.handleObj;return(!a||a!==i&&!ae.contains(i,a))&&(e.type=r.origType,n=r.handler.apply(this,arguments),e.type=t),n}}}),ne.submitBubbles||(ae.event.special.submit={setup:function(){return!ae.nodeName(this,"form")&&void ae.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=ae.nodeName(t,"input")||ae.nodeName(t,"button")?t.form:void 0;n&&!ae._data(n,"submitBubbles")&&(ae.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),ae._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&ae.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return!ae.nodeName(this,"form")&&void ae.event.remove(this,"._submit")}}),ne.changeBubbles||(ae.event.special.change={setup:function(){return xe.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(ae.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),ae.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),ae.event.simulate("change",this,e,!0)})),!1):void ae.event.add(this,"beforeactivate._change",function(e){var t=e.target;xe.test(t.nodeName)&&!ae._data(t,"changeBubbles")&&(ae.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||ae.event.simulate("change",this.parentNode,e,!0)}),ae._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return ae.event.remove(this,"._change"),!xe.test(this.nodeName)}}),ne.focusinBubbles||ae.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){ae.event.simulate(t,e.target,ae.event.fix(e),!0)};ae.event.special[t]={setup:function(){var i=this.ownerDocument||this,a=ae._data(i,t);a||i.addEventListener(e,n,!0),ae._data(i,t,(a||0)+1)},teardown:function(){var i=this.ownerDocument||this,a=ae._data(i,t)-1;a?ae._data(i,t,a):(i.removeEventListener(e,n,!0),ae._removeData(i,t))}}}),ae.fn.extend({on:function(e,t,n,i,a){var r,o;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=void 0);for(r in e)this.on(r,t,n,e[r],a);return this}if(null==n&&null==i?(i=t,n=t=void 0):null==i&&("string"==typeof t?(i=n,n=void 0):(i=n,n=t,t=void 0)),i===!1)i=f;else if(!i)return this;return 1===a&&(o=i,i=function(e){return ae().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=ae.guid++)),this.each(function(){ae.event.add(this,e,i,n,t)})},one:function(e,t,n,i){return this.on(e,t,n,i,1)},off:function(e,t,n){var i,a;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,ae(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(a in e)this.off(a,t,e[a]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=f),this.each(function(){ae.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){ae.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?ae.event.trigger(e,t,n,!0):void 0}});var Ne="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Le=/ jQuery\d+="(?:null|\d+)"/g,Fe=new RegExp("<(?:"+Ne+")[\\s/>]","i"),Ue=/^\s+/,Be=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,He=/<([\w:]+)/,je=/<tbody/i,Ve=/<|&#?\w+;/,qe=/<(?:script|style|link)/i,ze=/checked\s*(?:[^=]|=\s*.checked.)/i,We=/^$|\/(?:java|ecma)script/i,Ge=/^true\/(.*)/,Ke=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ye={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:ne.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},Xe=h(me),Je=Xe.appendChild(me.createElement("div"));Ye.optgroup=Ye.option,Ye.tbody=Ye.tfoot=Ye.colgroup=Ye.caption=Ye.thead,Ye.th=Ye.td,ae.extend({clone:function(e,t,n){var i,a,r,o,s,l=ae.contains(e.ownerDocument,e);if(ne.html5Clone||ae.isXMLDoc(e)||!Fe.test("<"+e.nodeName+">")?r=e.cloneNode(!0):(Je.innerHTML=e.outerHTML,Je.removeChild(r=Je.firstChild)),!(ne.noCloneEvent&&ne.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ae.isXMLDoc(e)))for(i=g(r),s=g(e),o=0;null!=(a=s[o]);++o)i[o]&&M(a,i[o]);if(t)if(n)for(s=s||g(e),i=i||g(r),o=0;null!=(a=s[o]);o++)k(a,i[o]);else k(e,r);return i=g(r,"script"),i.length>0&&w(i,!l&&g(e,"script")),i=s=a=null,r},buildFragment:function(e,t,n,i){for(var a,r,o,s,l,c,d,u=e.length,p=h(t),f=[],m=0;u>m;m++)if(r=e[m],r||0===r)if("object"===ae.type(r))ae.merge(f,r.nodeType?[r]:r);else if(Ve.test(r)){for(s=s||p.appendChild(t.createElement("div")),l=(He.exec(r)||["",""])[1].toLowerCase(),d=Ye[l]||Ye._default,s.innerHTML=d[1]+r.replace(Be,"<$1></$2>")+d[2],a=d[0];a--;)s=s.lastChild;if(!ne.leadingWhitespace&&Ue.test(r)&&f.push(t.createTextNode(Ue.exec(r)[0])),!ne.tbody)for(r="table"!==l||je.test(r)?"<table>"!==d[1]||je.test(r)?0:s:s.firstChild,a=r&&r.childNodes.length;a--;)ae.nodeName(c=r.childNodes[a],"tbody")&&!c.childNodes.length&&r.removeChild(c);for(ae.merge(f,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=p.lastChild}else f.push(t.createTextNode(r));for(s&&p.removeChild(s),ne.appendChecked||ae.grep(g(f,"input"),_),m=0;r=f[m++];)if((!i||-1===ae.inArray(r,i))&&(o=ae.contains(r.ownerDocument,r),s=g(p.appendChild(r),"script"),o&&w(s),n))for(a=0;r=s[a++];)We.test(r.type||"")&&n.push(r);return s=null,p},cleanData:function(e,t){for(var n,i,a,r,o=0,s=ae.expando,l=ae.cache,c=ne.deleteExpando,d=ae.event.special;null!=(n=e[o]);o++)if((t||ae.acceptData(n))&&(a=n[s],r=a&&l[a])){if(r.events)for(i in r.events)d[i]?ae.event.remove(n,i):ae.removeEvent(n,i,r.handle);l[a]&&(delete l[a],c?delete n[s]:typeof n.removeAttribute!==Me?n.removeAttribute(s):n[s]=null,K.push(a))}}}),ae.fn.extend({text:function(e){return $e(this,function(e){return void 0===e?ae.text(this):this.empty().append((this[0]&&this[0].ownerDocument||me).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=v(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=v(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,i=e?ae.filter(e,this):this,a=0;null!=(n=i[a]);a++)t||1!==n.nodeType||ae.cleanData(g(n)),n.parentNode&&(t&&ae.contains(n.ownerDocument,n)&&w(g(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&ae.cleanData(g(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&ae.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ae.clone(this,e,t)})},html:function(e){return $e(this,function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Le,""):void 0;if(!("string"!=typeof e||qe.test(e)||!ne.htmlSerialize&&Fe.test(e)||!ne.leadingWhitespace&&Ue.test(e)||Ye[(He.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Be,"<$1></$2>");try{for(;i>n;n++)t=this[n]||{},1===t.nodeType&&(ae.cleanData(g(t,!1)),t.innerHTML=e);t=0}catch(a){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,ae.cleanData(g(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=X.apply([],e);var n,i,a,r,o,s,l=0,c=this.length,d=this,u=c-1,p=e[0],f=ae.isFunction(p);if(f||c>1&&"string"==typeof p&&!ne.checkClone&&ze.test(p))return this.each(function(n){var i=d.eq(n);f&&(e[0]=p.call(this,n,i.html())),i.domManip(e,t)});if(c&&(s=ae.buildFragment(e,this[0].ownerDocument,!1,this),n=s.firstChild,1===s.childNodes.length&&(s=n),n)){for(r=ae.map(g(s,"script"),y),a=r.length;c>l;l++)i=s,l!==u&&(i=ae.clone(i,!0,!0),a&&ae.merge(r,g(i,"script"))),t.call(this[l],i,l);if(a)for(o=r[r.length-1].ownerDocument,ae.map(r,b),l=0;a>l;l++)i=r[l],We.test(i.type||"")&&!ae._data(i,"globalEval")&&ae.contains(o,i)&&(i.src?ae._evalUrl&&ae._evalUrl(i.src):ae.globalEval((i.text||i.textContent||i.innerHTML||"").replace(Ke,"")));s=n=null}return this}}),ae.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){ae.fn[e]=function(e){for(var n,i=0,a=[],r=ae(e),o=r.length-1;o>=i;i++)n=i===o?this:this.clone(!0),ae(r[i])[t](n),J.apply(a,n.get());return this.pushStack(a)}});var Ze,Qe={};!function(){var e;ne.shrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,i;return n=me.getElementsByTagName("body")[0],n&&n.style?(t=me.createElement("div"),i=me.createElement("div"),i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),typeof t.style.zoom!==Me&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",t.appendChild(me.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(i),e):void 0}}();var et,tt,nt=/^margin/,it=new RegExp("^("+Ce+")(?!px)[a-z%]+$","i"),at=/^(top|right|bottom|left)$/;e.getComputedStyle?(et=function(e){return e.ownerDocument.defaultView.getComputedStyle(e,null)},tt=function(e,t,n){var i,a,r,o,s=e.style;return n=n||et(e),o=n?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==o||ae.contains(e.ownerDocument,e)||(o=ae.style(e,t)),it.test(o)&&nt.test(t)&&(i=s.width,a=s.minWidth,r=s.maxWidth,s.minWidth=s.maxWidth=s.width=o,o=n.width,s.width=i,s.minWidth=a,s.maxWidth=r)),void 0===o?o:o+""}):me.documentElement.currentStyle&&(et=function(e){return e.currentStyle},tt=function(e,t,n){var i,a,r,o,s=e.style;return n=n||et(e),o=n?n[t]:void 0,null==o&&s&&s[t]&&(o=s[t]),it.test(o)&&!at.test(t)&&(i=s.left,a=e.runtimeStyle,r=a&&a.left,r&&(a.left=e.currentStyle.left),s.left="fontSize"===t?"1em":o,o=s.pixelLeft+"px",s.left=i,r&&(a.left=r)),void 0===o?o:o+""||"auto"}),!function(){function t(){var t,n,i,a;n=me.getElementsByTagName("body")[0],n&&n.style&&(t=me.createElement("div"),i=me.createElement("div"),i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),t.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",r=o=!1,l=!0,e.getComputedStyle&&(r="1%"!==(e.getComputedStyle(t,null)||{}).top,o="4px"===(e.getComputedStyle(t,null)||{width:"4px"}).width,a=t.appendChild(me.createElement("div")),a.style.cssText=t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",a.style.marginRight=a.style.width="0",t.style.width="1px",l=!parseFloat((e.getComputedStyle(a,null)||{}).marginRight)),t.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=t.getElementsByTagName("td"),a[0].style.cssText="margin:0;border:0;padding:0;display:none",s=0===a[0].offsetHeight,s&&(a[0].style.display="",a[1].style.display="none",s=0===a[0].offsetHeight),n.removeChild(i))}var n,i,a,r,o,s,l;n=me.createElement("div"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=n.getElementsByTagName("a")[0],(i=a&&a.style)&&(i.cssText="float:left;opacity:.5",ne.opacity="0.5"===i.opacity,ne.cssFloat=!!i.cssFloat,n.style.backgroundClip="content-box",n.cloneNode(!0).style.backgroundClip="",ne.clearCloneStyle="content-box"===n.style.backgroundClip,ne.boxSizing=""===i.boxSizing||""===i.MozBoxSizing||""===i.WebkitBoxSizing,ae.extend(ne,{reliableHiddenOffsets:function(){return null==s&&t(),s},boxSizingReliable:function(){return null==o&&t(),o},pixelPosition:function(){return null==r&&t(),r},reliableMarginRight:function(){return null==l&&t(),l}}))}(),ae.swap=function(e,t,n,i){var a,r,o={};for(r in t)o[r]=e.style[r],e.style[r]=t[r];a=n.apply(e,i||[]);for(r in t)e.style[r]=o[r];return a};var rt=/alpha\([^)]*\)/i,ot=/opacity\s*=\s*([^)]*)/,st=/^(none|table(?!-c[ea]).+)/,lt=new RegExp("^("+Ce+")(.*)$","i"),ct=new RegExp("^([+-])=("+Ce+")","i"),dt={position:"absolute",visibility:"hidden",display:"block"},ut={letterSpacing:"0",fontWeight:"400"},pt=["Webkit","O","Moz","ms"];ae.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=tt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":ne.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var a,r,o,s=ae.camelCase(t),l=e.style;if(t=ae.cssProps[s]||(ae.cssProps[s]=T(l,s)),o=ae.cssHooks[t]||ae.cssHooks[s],void 0===n)return o&&"get"in o&&void 0!==(a=o.get(e,!1,i))?a:l[t];if(r=typeof n,"string"===r&&(a=ct.exec(n))&&(n=(a[1]+1)*a[2]+parseFloat(ae.css(e,t)),r="number"),null!=n&&n===n&&("number"!==r||ae.cssNumber[s]||(n+="px"),ne.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),!(o&&"set"in o&&void 0===(n=o.set(e,n,i)))))try{l[t]=n}catch(c){}}},css:function(e,t,n,i){var a,r,o,s=ae.camelCase(t);return t=ae.cssProps[s]||(ae.cssProps[s]=T(e.style,s)),o=ae.cssHooks[t]||ae.cssHooks[s],o&&"get"in o&&(r=o.get(e,!0,n)),void 0===r&&(r=tt(e,t,i)),"normal"===r&&t in ut&&(r=ut[t]),""===n||n?(a=parseFloat(r),n===!0||ae.isNumeric(a)?a||0:r):r}}),ae.each(["height","width"],function(e,t){ae.cssHooks[t]={get:function(e,n,i){return n?st.test(ae.css(e,"display"))&&0===e.offsetWidth?ae.swap(e,dt,function(){return x(e,t,i)}):x(e,t,i):void 0},set:function(e,n,i){var a=i&&et(e);return $(e,n,i?I(e,t,i,ne.boxSizing&&"border-box"===ae.css(e,"boxSizing",!1,a),a):0)}}}),ne.opacity||(ae.cssHooks.opacity={get:function(e,t){return ot.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,i=e.currentStyle,a=ae.isNumeric(t)?"alpha(opacity="+100*t+")":"",r=i&&i.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===ae.trim(r.replace(rt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||i&&!i.filter)||(n.filter=rt.test(r)?r.replace(rt,a):r+" "+a)}}),ae.cssHooks.marginRight=C(ne.reliableMarginRight,function(e,t){return t?ae.swap(e,{display:"inline-block"},tt,[e,"marginRight"]):void 0}),ae.each({margin:"",padding:"",border:"Width"},function(e,t){ae.cssHooks[e+t]={expand:function(n){for(var i=0,a={},r="string"==typeof n?n.split(" "):[n];4>i;i++)a[e+Te[i]+t]=r[i]||r[i-2]||r[0];return a}},nt.test(e)||(ae.cssHooks[e+t].set=$)}),ae.fn.extend({css:function(e,t){return $e(this,function(e,t,n){var i,a,r={},o=0;if(ae.isArray(t)){for(i=et(e),a=t.length;a>o;o++)r[t[o]]=ae.css(e,t[o],!1,i);return r}return void 0!==n?ae.style(e,t,n):ae.css(e,t)},e,t,arguments.length>1)},show:function(){return E(this,!0)},hide:function(){return E(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ee(this)?ae(this).show():ae(this).hide()})}}),ae.Tween=P,P.prototype={constructor:P,init:function(e,t,n,i,a,r){this.elem=e,this.prop=n,this.easing=a||"swing",this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=r||(ae.cssNumber[n]?"":"px")},cur:function(){var e=P.propHooks[this.prop];return e&&e.get?e.get(this):P.propHooks._default.get(this)},run:function(e){var t,n=P.propHooks[this.prop];return this.pos=t=this.options.duration?ae.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):P.propHooks._default.set(this),this}},P.prototype.init.prototype=P.prototype,P.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=ae.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){ae.fx.step[e.prop]?ae.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[ae.cssProps[e.prop]]||ae.cssHooks[e.prop])?ae.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},P.propHooks.scrollTop=P.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ae.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},ae.fx=P.prototype.init,ae.fx.step={};var ft,mt,ht=/^(?:toggle|show|hide)$/,gt=new RegExp("^(?:([+-])=|)("+Ce+")([a-z%]*)$","i"),_t=/queueHooks$/,vt=[N],yt={"*":[function(e,t){var n=this.createTween(e,t),i=n.cur(),a=gt.exec(t),r=a&&a[3]||(ae.cssNumber[e]?"":"px"),o=(ae.cssNumber[e]||"px"!==r&&+i)&&gt.exec(ae.css(n.elem,e)),s=1,l=20;if(o&&o[3]!==r){r=r||o[3],a=a||[],o=+i||1;do s=s||".5",o/=s,ae.style(n.elem,e,o+r);while(s!==(s=n.cur()/i)&&1!==s&&--l)}return a&&(o=n.start=+o||+i||0,n.unit=r,n.end=a[1]?o+(a[1]+1)*a[2]:+a[2]),n}]};ae.Animation=ae.extend(F,{tweener:function(e,t){ae.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,i=0,a=e.length;a>i;i++)n=e[i],yt[n]=yt[n]||[],yt[n].unshift(t)},prefilter:function(e,t){t?vt.unshift(e):vt.push(e)}}),ae.speed=function(e,t,n){var i=e&&"object"==typeof e?ae.extend({},e):{complete:n||!n&&t||ae.isFunction(e)&&e,duration:e,easing:n&&t||t&&!ae.isFunction(t)&&t};return i.duration=ae.fx.off?0:"number"==typeof i.duration?i.duration:i.duration in ae.fx.speeds?ae.fx.speeds[i.duration]:ae.fx.speeds._default,(null==i.queue||i.queue===!0)&&(i.queue="fx"),i.old=i.complete,i.complete=function(){ae.isFunction(i.old)&&i.old.call(this),i.queue&&ae.dequeue(this,i.queue)},i},ae.fn.extend({fadeTo:function(e,t,n,i){return this.filter(Ee).css("opacity",0).show().end().animate({opacity:t},e,n,i)},animate:function(e,t,n,i){var a=ae.isEmptyObject(e),r=ae.speed(t,n,i),o=function(){var t=F(this,ae.extend({},e),r);(a||ae._data(this,"finish"))&&t.stop(!0)};return o.finish=o,a||r.queue===!1?this.each(o):this.queue(r.queue,o)},stop:function(e,t,n){var i=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,a=null!=e&&e+"queueHooks",r=ae.timers,o=ae._data(this);if(a)o[a]&&o[a].stop&&i(o[a]);else for(a in o)o[a]&&o[a].stop&&_t.test(a)&&i(o[a]);for(a=r.length;a--;)r[a].elem!==this||null!=e&&r[a].queue!==e||(r[a].anim.stop(n),t=!1,r.splice(a,1));(t||!n)&&ae.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=ae._data(this),i=n[e+"queue"],a=n[e+"queueHooks"],r=ae.timers,o=i?i.length:0;for(n.finish=!0,ae.queue(this,e,[]),a&&a.stop&&a.stop.call(this,!0),t=r.length;t--;)r[t].elem===this&&r[t].queue===e&&(r[t].anim.stop(!0),r.splice(t,1));for(t=0;o>t;t++)i[t]&&i[t].finish&&i[t].finish.call(this);delete n.finish})}}),ae.each(["toggle","show","hide"],function(e,t){var n=ae.fn[t];ae.fn[t]=function(e,i,a){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(R(t,!0),e,i,a)}}),ae.each({slideDown:R("show"),slideUp:R("hide"),slideToggle:R("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){ae.fn[e]=function(e,n,i){return this.animate(t,e,n,i)}}),ae.timers=[],ae.fx.tick=function(){var e,t=ae.timers,n=0;for(ft=ae.now();n<t.length;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||ae.fx.stop(),ft=void 0},ae.fx.timer=function(e){ae.timers.push(e),e()?ae.fx.start():ae.timers.pop()},ae.fx.interval=13,ae.fx.start=function(){mt||(mt=setInterval(ae.fx.tick,ae.fx.interval))},ae.fx.stop=function(){clearInterval(mt),mt=null},ae.fx.speeds={slow:600,fast:200,_default:400},ae.fn.delay=function(e,t){return e=ae.fx?ae.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var i=setTimeout(t,e);n.stop=function(){clearTimeout(i)}})},function(){var e,t,n,i,a;t=me.createElement("div"),t.setAttribute("className","t"),t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",i=t.getElementsByTagName("a")[0],n=me.createElement("select"),a=n.appendChild(me.createElement("option")),e=t.getElementsByTagName("input")[0],i.style.cssText="top:1px",ne.getSetAttribute="t"!==t.className,ne.style=/top/.test(i.getAttribute("style")),ne.hrefNormalized="/a"===i.getAttribute("href"),ne.checkOn=!!e.value,ne.optSelected=a.selected,ne.enctype=!!me.createElement("form").enctype,n.disabled=!0,ne.optDisabled=!a.disabled,e=me.createElement("input"),e.setAttribute("value",""),ne.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),ne.radioValue="t"===e.value}();var bt=/\r/g;ae.fn.extend({val:function(e){var t,n,i,a=this[0];return arguments.length?(i=ae.isFunction(e),this.each(function(n){var a;1===this.nodeType&&(a=i?e.call(this,n,ae(this).val()):e,null==a?a="":"number"==typeof a?a+="":ae.isArray(a)&&(a=ae.map(a,function(e){return null==e?"":e+""})),t=ae.valHooks[this.type]||ae.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,a,"value")||(this.value=a))})):a?(t=ae.valHooks[a.type]||ae.valHooks[a.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(a,"value"))?n:(n=a.value,"string"==typeof n?n.replace(bt,""):null==n?"":n)):void 0}}),ae.extend({valHooks:{option:{get:function(e){var t=ae.find.attr(e,"value");return null!=t?t:ae.trim(ae.text(e))}},select:{get:function(e){for(var t,n,i=e.options,a=e.selectedIndex,r="select-one"===e.type||0>a,o=r?null:[],s=r?a+1:i.length,l=0>a?s:r?a:0;s>l;l++)if(n=i[l],!(!n.selected&&l!==a||(ne.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&ae.nodeName(n.parentNode,"optgroup"))){if(t=ae(n).val(),r)return t;o.push(t)}return o},set:function(e,t){for(var n,i,a=e.options,r=ae.makeArray(t),o=a.length;o--;)if(i=a[o],ae.inArray(ae.valHooks.option.get(i),r)>=0)try{i.selected=n=!0}catch(s){i.scrollHeight}else i.selected=!1;return n||(e.selectedIndex=-1),a}}}}),ae.each(["radio","checkbox"],function(){ae.valHooks[this]={set:function(e,t){return ae.isArray(t)?e.checked=ae.inArray(ae(e).val(),t)>=0:void 0}},ne.checkOn||(ae.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var wt,kt,Mt=ae.expr.attrHandle,St=/^(?:checked|selected)$/i,At=ne.getSetAttribute,Ct=ne.input;ae.fn.extend({attr:function(e,t){return $e(this,ae.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){ae.removeAttr(this,e)})}}),ae.extend({attr:function(e,t,n){var i,a,r=e.nodeType;if(e&&3!==r&&8!==r&&2!==r)return typeof e.getAttribute===Me?ae.prop(e,t,n):(1===r&&ae.isXMLDoc(e)||(t=t.toLowerCase(),i=ae.attrHooks[t]||(ae.expr.match.bool.test(t)?kt:wt)),void 0===n?i&&"get"in i&&null!==(a=i.get(e,t))?a:(a=ae.find.attr(e,t),null==a?void 0:a):null!==n?i&&"set"in i&&void 0!==(a=i.set(e,n,t))?a:(e.setAttribute(t,n+""),n):void ae.removeAttr(e,t))},removeAttr:function(e,t){var n,i,a=0,r=t&&t.match(ye);if(r&&1===e.nodeType)for(;n=r[a++];)i=ae.propFix[n]||n,ae.expr.match.bool.test(n)?Ct&&At||!St.test(n)?e[i]=!1:e[ae.camelCase("default-"+n)]=e[i]=!1:ae.attr(e,n,""),e.removeAttribute(At?n:i)},attrHooks:{type:{set:function(e,t){if(!ne.radioValue&&"radio"===t&&ae.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),kt={set:function(e,t,n){return t===!1?ae.removeAttr(e,n):Ct&&At||!St.test(n)?e.setAttribute(!At&&ae.propFix[n]||n,n):e[ae.camelCase("default-"+n)]=e[n]=!0,n}},ae.each(ae.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Mt[t]||ae.find.attr;Mt[t]=Ct&&At||!St.test(t)?function(e,t,i){var a,r;return i||(r=Mt[t],Mt[t]=a,a=null!=n(e,t,i)?t.toLowerCase():null,Mt[t]=r),a}:function(e,t,n){return n?void 0:e[ae.camelCase("default-"+t)]?t.toLowerCase():null}}),Ct&&At||(ae.attrHooks.value={set:function(e,t,n){return ae.nodeName(e,"input")?void(e.defaultValue=t):wt&&wt.set(e,t,n)}}),At||(wt={set:function(e,t,n){var i=e.getAttributeNode(n);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(n)),
i.value=t+="","value"===n||t===e.getAttribute(n)?t:void 0}},Mt.id=Mt.name=Mt.coords=function(e,t,n){var i;return n?void 0:(i=e.getAttributeNode(t))&&""!==i.value?i.value:null},ae.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:void 0},set:wt.set},ae.attrHooks.contenteditable={set:function(e,t,n){wt.set(e,""!==t&&t,n)}},ae.each(["width","height"],function(e,t){ae.attrHooks[t]={set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}}})),ne.style||(ae.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Tt=/^(?:input|select|textarea|button|object)$/i,Et=/^(?:a|area)$/i;ae.fn.extend({prop:function(e,t){return $e(this,ae.prop,e,t,arguments.length>1)},removeProp:function(e){return e=ae.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),ae.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var i,a,r,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return r=1!==o||!ae.isXMLDoc(e),r&&(t=ae.propFix[t]||t,a=ae.propHooks[t]),void 0!==n?a&&"set"in a&&void 0!==(i=a.set(e,n,t))?i:e[t]=n:a&&"get"in a&&null!==(i=a.get(e,t))?i:e[t]},propHooks:{tabIndex:{get:function(e){var t=ae.find.attr(e,"tabindex");return t?parseInt(t,10):Tt.test(e.nodeName)||Et.test(e.nodeName)&&e.href?0:-1}}}}),ne.hrefNormalized||ae.each(["href","src"],function(e,t){ae.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),ne.optSelected||(ae.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),ae.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ae.propFix[this.toLowerCase()]=this}),ne.enctype||(ae.propFix.enctype="encoding");var $t=/[\t\r\n\f]/g;ae.fn.extend({addClass:function(e){var t,n,i,a,r,o,s=0,l=this.length,c="string"==typeof e&&e;if(ae.isFunction(e))return this.each(function(t){ae(this).addClass(e.call(this,t,this.className))});if(c)for(t=(e||"").match(ye)||[];l>s;s++)if(n=this[s],i=1===n.nodeType&&(n.className?(" "+n.className+" ").replace($t," "):" ")){for(r=0;a=t[r++];)i.indexOf(" "+a+" ")<0&&(i+=a+" ");o=ae.trim(i),n.className!==o&&(n.className=o)}return this},removeClass:function(e){var t,n,i,a,r,o,s=0,l=this.length,c=0===arguments.length||"string"==typeof e&&e;if(ae.isFunction(e))return this.each(function(t){ae(this).removeClass(e.call(this,t,this.className))});if(c)for(t=(e||"").match(ye)||[];l>s;s++)if(n=this[s],i=1===n.nodeType&&(n.className?(" "+n.className+" ").replace($t," "):"")){for(r=0;a=t[r++];)for(;i.indexOf(" "+a+" ")>=0;)i=i.replace(" "+a+" "," ");o=e?ae.trim(i):"",n.className!==o&&(n.className=o)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(ae.isFunction(e)?function(n){ae(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,i=0,a=ae(this),r=e.match(ye)||[];t=r[i++];)a.hasClass(t)?a.removeClass(t):a.addClass(t);else(n===Me||"boolean"===n)&&(this.className&&ae._data(this,"__className__",this.className),this.className=this.className||e===!1?"":ae._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,i=this.length;i>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace($t," ").indexOf(t)>=0)return!0;return!1}}),ae.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){ae.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ae.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,i){return this.on(t,e,n,i)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var It=ae.now(),xt=/\?/,Pt=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;ae.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,i=null,a=ae.trim(t+"");return a&&!ae.trim(a.replace(Pt,function(e,t,a,r){return n&&t&&(i=0),0===i?e:(n=a||t,i+=!r-!a,"")}))?Function("return "+a)():ae.error("Invalid JSON: "+t)},ae.parseXML=function(t){var n,i;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(i=new DOMParser,n=i.parseFromString(t,"text/xml")):(n=new ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(a){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||ae.error("Invalid XML: "+t),n};var Dt,Rt,Ot=/#.*$/,Nt=/([?&])_=[^&]*/,Lt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ft=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ut=/^(?:GET|HEAD)$/,Bt=/^\/\//,Ht=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,jt={},Vt={},qt="*/".concat("*");try{Rt=location.href}catch(zt){Rt=me.createElement("a"),Rt.href="",Rt=Rt.href}Dt=Ht.exec(Rt.toLowerCase())||[],ae.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rt,type:"GET",isLocal:Ft.test(Dt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":qt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":ae.parseJSON,"text xml":ae.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?H(H(e,ae.ajaxSettings),t):H(ae.ajaxSettings,e)},ajaxPrefilter:U(jt),ajaxTransport:U(Vt),ajax:function(e,t){function n(e,t,n,i){var a,d,_,v,b,k=t;2!==y&&(y=2,s&&clearTimeout(s),c=void 0,o=i||"",w.readyState=e>0?4:0,a=e>=200&&300>e||304===e,n&&(v=j(u,w,n)),v=V(u,v,w,a),a?(u.ifModified&&(b=w.getResponseHeader("Last-Modified"),b&&(ae.lastModified[r]=b),b=w.getResponseHeader("etag"),b&&(ae.etag[r]=b)),204===e||"HEAD"===u.type?k="nocontent":304===e?k="notmodified":(k=v.state,d=v.data,_=v.error,a=!_)):(_=k,(e||!k)&&(k="error",0>e&&(e=0))),w.status=e,w.statusText=(t||k)+"",a?m.resolveWith(p,[d,k,w]):m.rejectWith(p,[w,k,_]),w.statusCode(g),g=void 0,l&&f.trigger(a?"ajaxSuccess":"ajaxError",[w,u,a?d:_]),h.fireWith(p,[w,k]),l&&(f.trigger("ajaxComplete",[w,u]),--ae.active||ae.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var i,a,r,o,s,l,c,d,u=ae.ajaxSetup({},t),p=u.context||u,f=u.context&&(p.nodeType||p.jquery)?ae(p):ae.event,m=ae.Deferred(),h=ae.Callbacks("once memory"),g=u.statusCode||{},_={},v={},y=0,b="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===y){if(!d)for(d={};t=Lt.exec(o);)d[t[1].toLowerCase()]=t[2];t=d[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===y?o:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return y||(e=v[n]=v[n]||e,_[e]=t),this},overrideMimeType:function(e){return y||(u.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>y)for(t in e)g[t]=[g[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||b;return c&&c.abort(t),n(0,t),this}};if(m.promise(w).complete=h.add,w.success=w.done,w.error=w.fail,u.url=((e||u.url||Rt)+"").replace(Ot,"").replace(Bt,Dt[1]+"//"),u.type=t.method||t.type||u.method||u.type,u.dataTypes=ae.trim(u.dataType||"*").toLowerCase().match(ye)||[""],null==u.crossDomain&&(i=Ht.exec(u.url.toLowerCase()),u.crossDomain=!(!i||i[1]===Dt[1]&&i[2]===Dt[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(Dt[3]||("http:"===Dt[1]?"80":"443")))),u.data&&u.processData&&"string"!=typeof u.data&&(u.data=ae.param(u.data,u.traditional)),B(jt,u,t,w),2===y)return w;l=u.global,l&&0===ae.active++&&ae.event.trigger("ajaxStart"),u.type=u.type.toUpperCase(),u.hasContent=!Ut.test(u.type),r=u.url,u.hasContent||(u.data&&(r=u.url+=(xt.test(r)?"&":"?")+u.data,delete u.data),u.cache===!1&&(u.url=Nt.test(r)?r.replace(Nt,"$1_="+It++):r+(xt.test(r)?"&":"?")+"_="+It++)),u.ifModified&&(ae.lastModified[r]&&w.setRequestHeader("If-Modified-Since",ae.lastModified[r]),ae.etag[r]&&w.setRequestHeader("If-None-Match",ae.etag[r])),(u.data&&u.hasContent&&u.contentType!==!1||t.contentType)&&w.setRequestHeader("Content-Type",u.contentType),w.setRequestHeader("Accept",u.dataTypes[0]&&u.accepts[u.dataTypes[0]]?u.accepts[u.dataTypes[0]]+("*"!==u.dataTypes[0]?", "+qt+"; q=0.01":""):u.accepts["*"]);for(a in u.headers)w.setRequestHeader(a,u.headers[a]);if(u.beforeSend&&(u.beforeSend.call(p,w,u)===!1||2===y))return w.abort();b="abort";for(a in{success:1,error:1,complete:1})w[a](u[a]);if(c=B(Vt,u,t,w)){w.readyState=1,l&&f.trigger("ajaxSend",[w,u]),u.async&&u.timeout>0&&(s=setTimeout(function(){w.abort("timeout")},u.timeout));try{y=1,c.send(_,n)}catch(k){if(!(2>y))throw k;n(-1,k)}}else n(-1,"No Transport");return w},getJSON:function(e,t,n){return ae.get(e,t,n,"json")},getScript:function(e,t){return ae.get(e,void 0,t,"script")}}),ae.each(["get","post"],function(e,t){ae[t]=function(e,n,i,a){return ae.isFunction(n)&&(a=a||i,i=n,n=void 0),ae.ajax({url:e,type:t,dataType:a,data:n,success:i})}}),ae.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ae.fn[t]=function(e){return this.on(t,e)}}),ae._evalUrl=function(e){return ae.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},ae.fn.extend({wrapAll:function(e){if(ae.isFunction(e))return this.each(function(t){ae(this).wrapAll(e.call(this,t))});if(this[0]){var t=ae(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return this.each(ae.isFunction(e)?function(t){ae(this).wrapInner(e.call(this,t))}:function(){var t=ae(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ae.isFunction(e);return this.each(function(n){ae(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){ae.nodeName(this,"body")||ae(this).replaceWith(this.childNodes)}).end()}}),ae.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!ne.reliableHiddenOffsets()&&"none"===(e.style&&e.style.display||ae.css(e,"display"))},ae.expr.filters.visible=function(e){return!ae.expr.filters.hidden(e)};var Wt=/%20/g,Gt=/\[\]$/,Kt=/\r?\n/g,Yt=/^(?:submit|button|image|reset|file)$/i,Xt=/^(?:input|select|textarea|keygen)/i;ae.param=function(e,t){var n,i=[],a=function(e,t){t=ae.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=ae.ajaxSettings&&ae.ajaxSettings.traditional),ae.isArray(e)||e.jquery&&!ae.isPlainObject(e))ae.each(e,function(){a(this.name,this.value)});else for(n in e)q(n,e[n],t,a);return i.join("&").replace(Wt,"+")},ae.fn.extend({serialize:function(){return ae.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ae.prop(this,"elements");return e?ae.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ae(this).is(":disabled")&&Xt.test(this.nodeName)&&!Yt.test(e)&&(this.checked||!Ie.test(e))}).map(function(e,t){var n=ae(this).val();return null==n?null:ae.isArray(n)?ae.map(n,function(e){return{name:t.name,value:e.replace(Kt,"\r\n")}}):{name:t.name,value:n.replace(Kt,"\r\n")}}).get()}}),ae.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&z()||W()}:z;var Jt=0,Zt={},Qt=ae.ajaxSettings.xhr();e.ActiveXObject&&ae(e).on("unload",function(){for(var e in Zt)Zt[e](void 0,!0)}),ne.cors=!!Qt&&"withCredentials"in Qt,Qt=ne.ajax=!!Qt,Qt&&ae.ajaxTransport(function(e){if(!e.crossDomain||ne.cors){var t;return{send:function(n,i){var a,r=e.xhr(),o=++Jt;if(r.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)r[a]=e.xhrFields[a];e.mimeType&&r.overrideMimeType&&r.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(a in n)void 0!==n[a]&&r.setRequestHeader(a,n[a]+"");r.send(e.hasContent&&e.data||null),t=function(n,a){var s,l,c;if(t&&(a||4===r.readyState))if(delete Zt[o],t=void 0,r.onreadystatechange=ae.noop,a)4!==r.readyState&&r.abort();else{c={},s=r.status,"string"==typeof r.responseText&&(c.text=r.responseText);try{l=r.statusText}catch(d){l=""}s||!e.isLocal||e.crossDomain?1223===s&&(s=204):s=c.text?200:404}c&&i(s,l,c,r.getAllResponseHeaders())},e.async?4===r.readyState?setTimeout(t):r.onreadystatechange=Zt[o]=t:t()},abort:function(){t&&t(void 0,!0)}}}}),ae.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return ae.globalEval(e),e}}}),ae.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),ae.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=me.head||ae("head")[0]||me.documentElement;return{send:function(i,a){t=me.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||a(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var en=[],tn=/(=)\?(?=&|$)|\?\?/;ae.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=en.pop()||ae.expando+"_"+It++;return this[e]=!0,e}}),ae.ajaxPrefilter("json jsonp",function(t,n,i){var a,r,o,s=t.jsonp!==!1&&(tn.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&tn.test(t.data)&&"data");return s||"jsonp"===t.dataTypes[0]?(a=t.jsonpCallback=ae.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(tn,"$1"+a):t.jsonp!==!1&&(t.url+=(xt.test(t.url)?"&":"?")+t.jsonp+"="+a),t.converters["script json"]=function(){return o||ae.error(a+" was not called"),o[0]},t.dataTypes[0]="json",r=e[a],e[a]=function(){o=arguments},i.always(function(){e[a]=r,t[a]&&(t.jsonpCallback=n.jsonpCallback,en.push(a)),o&&ae.isFunction(r)&&r(o[0]),o=r=void 0}),"script"):void 0}),ae.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||me;var i=ue.exec(e),a=!n&&[];return i?[t.createElement(i[1])]:(i=ae.buildFragment([e],t,a),a&&a.length&&ae(a).remove(),ae.merge([],i.childNodes))};var nn=ae.fn.load;ae.fn.load=function(e,t,n){if("string"!=typeof e&&nn)return nn.apply(this,arguments);var i,a,r,o=this,s=e.indexOf(" ");return s>=0&&(i=ae.trim(e.slice(s,e.length)),e=e.slice(0,s)),ae.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(r="POST"),o.length>0&&ae.ajax({url:e,type:r,dataType:"html",data:t}).done(function(e){a=arguments,o.html(i?ae("<div>").append(ae.parseHTML(e)).find(i):e)}).complete(n&&function(e,t){o.each(n,a||[e.responseText,t,e])}),this},ae.expr.filters.animated=function(e){return ae.grep(ae.timers,function(t){return e===t.elem}).length};var an=e.document.documentElement;ae.offset={setOffset:function(e,t,n){var i,a,r,o,s,l,c,d=ae.css(e,"position"),u=ae(e),p={};"static"===d&&(e.style.position="relative"),s=u.offset(),r=ae.css(e,"top"),l=ae.css(e,"left"),c=("absolute"===d||"fixed"===d)&&ae.inArray("auto",[r,l])>-1,c?(i=u.position(),o=i.top,a=i.left):(o=parseFloat(r)||0,a=parseFloat(l)||0),ae.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(p.top=t.top-s.top+o),null!=t.left&&(p.left=t.left-s.left+a),"using"in t?t.using.call(e,p):u.css(p)}},ae.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){ae.offset.setOffset(this,e,t)});var t,n,i={top:0,left:0},a=this[0],r=a&&a.ownerDocument;return r?(t=r.documentElement,ae.contains(t,a)?(typeof a.getBoundingClientRect!==Me&&(i=a.getBoundingClientRect()),n=G(r),{top:i.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:i.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):i):void 0},position:function(){if(this[0]){var e,t,n={top:0,left:0},i=this[0];return"fixed"===ae.css(i,"position")?t=i.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),ae.nodeName(e[0],"html")||(n=e.offset()),n.top+=ae.css(e[0],"borderTopWidth",!0),n.left+=ae.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-ae.css(i,"marginTop",!0),left:t.left-n.left-ae.css(i,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||an;e&&!ae.nodeName(e,"html")&&"static"===ae.css(e,"position");)e=e.offsetParent;return e||an})}}),ae.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);ae.fn[e]=function(i){return $e(this,function(e,i,a){var r=G(e);return void 0===a?r?t in r?r[t]:r.document.documentElement[i]:e[i]:void(r?r.scrollTo(n?ae(r).scrollLeft():a,n?a:ae(r).scrollTop()):e[i]=a)},e,i,arguments.length,null)}}),ae.each(["top","left"],function(e,t){ae.cssHooks[t]=C(ne.pixelPosition,function(e,n){return n?(n=tt(e,t),it.test(n)?ae(e).position()[t]+"px":n):void 0})}),ae.each({Height:"height",Width:"width"},function(e,t){ae.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,i){ae.fn[i]=function(i,a){var r=arguments.length&&(n||"boolean"!=typeof i),o=n||(i===!0||a===!0?"margin":"border");return $e(this,function(t,n,i){var a;return ae.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(a=t.documentElement,Math.max(t.body["scroll"+e],a["scroll"+e],t.body["offset"+e],a["offset"+e],a["client"+e])):void 0===i?ae.css(t,n,o):ae.style(t,n,i,o)},t,r?i:void 0,r,null)}})}),ae.fn.size=function(){return this.length},ae.fn.andSelf=ae.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return ae});var rn=e.jQuery,on=e.$;return ae.noConflict=function(t){return e.$===ae&&(e.$=on),t&&e.jQuery===ae&&(e.jQuery=rn),ae},typeof t===Me&&(e.jQuery=e.$=ae),ae}),Config=window.Config||{},Config.App={id:2496,hash:"8da85b0d5bfe62527e5b244c209159c3",version:"0.7.0",domains:["web.telegram.org","zhukov.github.io"]},Config.Modes={test:location.search.indexOf("test=1")>0,debug:location.search.indexOf("debug=1")>0,http:location.search.indexOf("http=1")>0,ssl:location.search.indexOf("ssl=1")>0||"https:"==location.protocol&&location.search.indexOf("ssl=0")==-1,force_mobile:location.search.indexOf("mobile=1")>0,force_desktop:location.search.indexOf("desktop=1")>0,nacl:location.search.indexOf("nacl=0")==-1,webcrypto:location.search.indexOf("webcrypto=0")==-1,packed:"app:"==location.protocol||"chrome-extension:"==location.protocol,ios_standalone:window.navigator.standalone&&navigator.userAgent.match(/iOS|iPhone|iPad/),chrome_packed:window.chrome&&chrome.app&&chrome.app.window&&!0||!1,animations:!0,memory_only:!1,allow_tmpfs:location.search.indexOf("tmpfs=yeahImSureIknowWhatImDoing")>0||!1,push_api:location.search.indexOf("push=1")==-1},Config.Navigator={osX:(navigator.platform||"").toLowerCase().indexOf("mac")!=-1||(navigator.userAgent||"").toLowerCase().indexOf("mac")!=-1,msie:(navigator.userAgent||"").search(/MSIE | Trident\/|Edge\//)!=-1,retina:window.devicePixelRatio>1,ffos:navigator.userAgent.search(/mobi.+Gecko/i)!=-1,ffos2p:navigator.userAgent.search(/mobi.+Gecko\/[34567]/i)!=-1,touch:screen.width<=768||"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,mobile:screen.width&&screen.width<480||navigator.userAgent.search(/iOS|iPhone OS|Android|BlackBerry|BB10|Series ?[64]0|J2ME|MIDP|opera mini|opera mobi|mobi.+Gecko|Windows Phone/i)!=-1},Config.I18n={locale:"en-us",supported:["en-us","es-es","de-de","it-it","nl-nl","pt-br"],languages:{"en-us":"English","de-de":"Deutsch","es-es":"Español","it-it":"Italiano","ru-ru":"Русский","nl-nl":"Nederlands","pt-br":"Português (Brazil)"},aliases:{en:"en-us",de:"de-de",es:"es-es",it:"it-it",ru:"ru-ru",nl:"nl-nl"},messages:{},fallback_messages:{}},Config.ExtCredentials={gmaps:{api_key:"AIzaSyC72t5GDcP-dob20d-ARwSwOQ41-zgbArg"}},Config.Schema=Config.Schema||{},Config.Schema.MTProto={constructors:[{id:"481674261",predicate:"vector",params:[],type:"Vector t"},{id:"85337187",predicate:"resPQ",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"pq",type:"bytes"},{name:"server_public_key_fingerprints",type:"Vector<long>"}],type:"ResPQ"},{id:"-2083955988",predicate:"p_q_inner_data",params:[{name:"pq",type:"bytes"},{name:"p",type:"bytes"},{name:"q",type:"bytes"},{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce",type:"int256"}],type:"P_Q_inner_data"},{id:"2043348061",predicate:"server_DH_params_fail",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash",type:"int128"}],type:"Server_DH_Params"},{id:"-790100132",predicate:"server_DH_params_ok",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"encrypted_answer",type:"bytes"}],type:"Server_DH_Params"},{id:"-1249309254",predicate:"server_DH_inner_data",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"g",type:"int"},{name:"dh_prime",type:"bytes"},{name:"g_a",type:"bytes"},{name:"server_time",type:"int"}],type:"Server_DH_inner_data"},{id:"1715713620",predicate:"client_DH_inner_data",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"retry_id",type:"long"},{name:"g_b",type:"bytes"}],type:"Client_DH_Inner_Data"},{id:"1003222836",predicate:"dh_gen_ok",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash1",type:"int128"}],type:"Set_client_DH_params_answer"},{id:"1188831161",predicate:"dh_gen_retry",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash2",type:"int128"}],type:"Set_client_DH_params_answer"},{id:"-1499615742",predicate:"dh_gen_fail",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash3",type:"int128"}],type:"Set_client_DH_params_answer"},{id:"-212046591",predicate:"rpc_result",params:[{name:"req_msg_id",type:"long"},{name:"result",type:"Object"}],type:"RpcResult"},{id:"558156313",predicate:"rpc_error",params:[{name:"error_code",type:"int"},{name:"error_message",type:"string"}],type:"RpcError"},{id:"1579864942",predicate:"rpc_answer_unknown",params:[],type:"RpcDropAnswer"},{id:"-847714938",predicate:"rpc_answer_dropped_running",params:[],type:"RpcDropAnswer"},{id:"-1539647305",predicate:"rpc_answer_dropped",params:[{name:"msg_id",type:"long"},{name:"seq_no",type:"int"},{name:"bytes",type:"int"}],type:"RpcDropAnswer"},{id:"155834844",predicate:"future_salt",params:[{name:"valid_since",type:"int"},{name:"valid_until",type:"int"},{name:"salt",type:"long"}],type:"FutureSalt"},{id:"-1370486635",predicate:"future_salts",params:[{name:"req_msg_id",type:"long"},{name:"now",type:"int"},{name:"salts",type:"vector<future_salt>"}],type:"FutureSalts"},{id:"880243653",predicate:"pong",params:[{name:"msg_id",type:"long"},{name:"ping_id",type:"long"}],type:"Pong"},{id:"-501201412",predicate:"destroy_session_ok",params:[{name:"session_id",type:"long"}],type:"DestroySessionRes"},{id:"1658015945",predicate:"destroy_session_none",params:[{name:"session_id",type:"long"}],type:"DestroySessionRes"},{id:"-1631450872",predicate:"new_session_created",params:[{name:"first_msg_id",type:"long"},{name:"unique_id",type:"long"},{name:"server_salt",type:"long"}],type:"NewSession"},{id:"1945237724",predicate:"msg_container",params:[{name:"messages",type:"vector<%Message>"}],type:"MessageContainer"},{id:"1538843921",predicate:"message",params:[{name:"msg_id",type:"long"},{name:"seqno",type:"int"},{name:"bytes",type:"int"},{name:"body",type:"Object"}],type:"Message"},{id:"-530561358",predicate:"msg_copy",params:[{name:"orig_message",type:"Message"}],type:"MessageCopy"},{id:"812830625",predicate:"gzip_packed",params:[{name:"packed_data",type:"bytes"}],type:"Object"},{id:"1658238041",predicate:"msgs_ack",params:[{name:"msg_ids",type:"Vector<long>"}],type:"MsgsAck"},{id:"-1477445615",predicate:"bad_msg_notification",params:[{name:"bad_msg_id",type:"long"},{name:"bad_msg_seqno",type:"int"},{name:"error_code",type:"int"}],type:"BadMsgNotification"},{id:"-307542917",predicate:"bad_server_salt",params:[{name:"bad_msg_id",type:"long"},{name:"bad_msg_seqno",type:"int"},{name:"error_code",type:"int"},{name:"new_server_salt",type:"long"}],type:"BadMsgNotification"},{id:"2105940488",predicate:"msg_resend_req",params:[{name:"msg_ids",type:"Vector<long>"}],type:"MsgResendReq"},{id:"-630588590",predicate:"msgs_state_req",params:[{name:"msg_ids",type:"Vector<long>"}],type:"MsgsStateReq"},{id:"81704317",predicate:"msgs_state_info",params:[{name:"req_msg_id",type:"long"},{name:"info",type:"bytes"}],type:"MsgsStateInfo"},{id:"-1933520591",predicate:"msgs_all_info",params:[{name:"msg_ids",type:"Vector<long>"},{name:"info",type:"bytes"}],type:"MsgsAllInfo"},{id:"661470918",predicate:"msg_detailed_info",params:[{name:"msg_id",type:"long"},{name:"answer_msg_id",type:"long"},{name:"bytes",type:"int"},{name:"status",type:"int"}],type:"MsgDetailedInfo"},{id:"-2137147681",predicate:"msg_new_detailed_info",params:[{name:"answer_msg_id",type:"long"},{name:"bytes",type:"int"},{name:"status",type:"int"}],type:"MsgDetailedInfo"}],methods:[{id:"1615239032",method:"req_pq",params:[{name:"nonce",type:"int128"}],type:"ResPQ"},{id:"-686627650",method:"req_DH_params",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"p",type:"bytes"},{name:"q",type:"bytes"},{name:"public_key_fingerprint",type:"long"},{name:"encrypted_data",type:"bytes"}],type:"Server_DH_Params"},{id:"-184262881",method:"set_client_DH_params",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"encrypted_data",type:"bytes"}],type:"Set_client_DH_params_answer"},{id:"1491380032",method:"rpc_drop_answer",params:[{name:"req_msg_id",type:"long"}],type:"RpcDropAnswer"},{id:"-1188971260",method:"get_future_salts",params:[{name:"num",type:"int"}],type:"FutureSalts"},{id:"2059302892",method:"ping",params:[{name:"ping_id",type:"long"}],type:"Pong"},{id:"-213746804",method:"ping_delay_disconnect",params:[{name:"ping_id",type:"long"},{name:"disconnect_delay",type:"int"}],type:"Pong"},{id:"-414113498",method:"destroy_session",params:[{name:"session_id",type:"long"}],type:"DestroySessionRes"},{id:"-1835453025",method:"http_wait",params:[{name:"max_delay",type:"int"},{name:"wait_after",type:"int"},{name:"max_wait",type:"int"}],type:"HttpWait"}]},Config.TLD=["abogado","ac","academy","accountants","active","actor","ad","adult","ae","aero","af","ag","agency","ai","airforce","al","allfinanz","alsace","am","amsterdam","an","android","ao","apartments","aq","aquarelle","ar","archi","army","arpa","as","asia","associates","at","attorney","au","auction","audio","autos","aw","ax","axa","az","ba","band","bank","bar","barclaycard","barclays","bargains","bayern","bb","bd","be","beer","berlin","best","bf","bg","bh","bi","bid","bike","bingo","bio","biz","bj","black","blackfriday","bloomberg","blue","bm","bmw","bn","bnpparibas","bo","boo","boutique","br","brussels","bs","bt","budapest","build","builders","business","buzz","bv","bw","by","bz","bzh","ca","cab","cal","camera","camp","cancerresearch","canon","capetown","capital","caravan","cards","care","career","careers","cartier","casa","cash","cat","catering","cc","cd","center","ceo","cern","cf","cg","ch","channel","chat","cheap","christmas","chrome","church","ci","citic","city","ck","cl","claims","cleaning","click","clinic","clothing","club","cm","cn","co","coach","codes","coffee","college","cologne","com","community","company","computer","condos","construction","consulting","contractors","cooking","cool","coop","country","cr","credit","creditcard","cricket","crs","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cz","dabur","dad","dance","dating","day","dclk","de","deals","degree","delivery","democrat","dental","dentist","desi","design","dev","diamonds","diet","digital","direct","directory","discount","dj","dk","dm","dnp","do","docs","domains","doosan","durban","dvag","dz","eat","ec","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","equipment","er","es","esq","estate","et","eu","eurovision","eus","events","everbank","exchange","expert","exposed","fail","farm","fashion","feedback","fi","finance","financial","firmdale","fish","fishing","fit","fitness","fj","fk","flights","florist","flowers","flsmidth","fly","fm","fo","foo","forsale","foundation","fr","frl","frogans","fund","furniture","futbol","ga","gal","gallery","garden","gb","gbiz","gd","ge","gent","gf","gg","ggee","gh","gi","gift","gifts","gives","gl","glass","gle","global","globo","gm","gmail","gmo","gmx","gn","goog","google","gop","gov","gp","gq","gr","graphics","gratis","green","gripe","gs","gt","gu","guide","guitars","guru","gw","gy","hamburg","hangout","haus","healthcare","help","here","hermes","hiphop","hiv","hk","hm","hn","holdings","holiday","homes","horse","host","hosting","house","how","hr","ht","hu","ibm","id","ie","ifm","il","im","immo","immobilien","in","industries","info","ing","ink","institute","insure","int","international","investments","io","iq","ir","irish","is","it","iwc","jcb","je","jetzt","jm","jo","jobs","joburg","jp","juegos","kaufen","kddi","ke","kg","kh","ki","kim","kitchen","kiwi","km","kn","koeln","kp","kr","krd","kred","kw","ky","kyoto","kz","la","lacaixa","land","lat","latrobe","lawyer","lb","lc","lds","lease","legal","lgbt","li","lidl","life","lighting","limited","limo","link","lk","loans","london","lotte","lotto","lr","ls","lt","ltda","lu","luxe","luxury","lv","ly","ma","madrid","maison","management","mango","market","marketing","marriott","mc","md","me","media","meet","melbourne","meme","memorial","menu","mg","mh","miami","mil","mini","mk","ml","mm","mn","mo","mobi","moda","moe","monash","money","mormon","mortgage","moscow","motorcycles","mov","mp","mq","mr","ms","mt","mu","museum","mv","mw","mx","my","mz","na","nagoya","name","navy","nc","ne","net","network","neustar","new","nexus","nf","ng","ngo","nhk","ni","nico","ninja","nl","no","np","nr","nra","nrw","ntt","nu","nyc","nz","okinawa","om","one","ong","onl","ooo","org","organic","osaka","otsuka","ovh","pa","paris","partners","parts","party","pe","pf","pg","ph","pharmacy","photo","photography","photos","physio","pics","pictures","pink","pizza","pk","pl","place","plumbing","pm","pn","pohl","poker","porn","post","pr","praxi","press","pro","prod","productions","prof","properties","property","ps","pt","pub","pw","py","qa","qpon","quebec","re","realtor","recipes","red","rehab","reise","reisen","reit","ren","rentals","repair","report","republican","rest","restaurant","reviews","rich","rio","rip","ro","rocks","rodeo","rs","rsvp","ru","ruhr","rw","ryukyu","sa","saarland","sale","samsung","sarl","saxo","sb","sc","sca","scb","schmidt","schule","schwarz","science","scot","sd","se","services","sew","sexy","sg","sh","shiksha","shoes","shriram","si","singles","sj","sk","sky","sl","sm","sn","so","social","software","sohu","solar","solutions","soy","space","spiegel","sr","st","style","su","supplies","supply","support","surf","surgery","suzuki","sv","sx","sy","sydney","systems","sz","taipei","tatar","tattoo","tax","tc","td","technology","tel","temasek","tennis","tf","tg","th","tienda","tips","tires","tirol","tj","tk","tl","tm","tn","to","today","tokyo","tools","top","toshiba","town","toys","tp","tr","trade","training","travel","trust","tt","tui","tv","tw","tz","ua","ug","uk","university","uno","uol","us","uy","uz","va","vacations","vc","ve","vegas","ventures","versicherung","vet","vg","vi","viajes","video","villas","vision","vlaanderen","vn","vodka","vote","voting","voto","voyage","vu","wales","wang","watch","webcam","website","wed","wedding","wf","whoswho","wien","wiki","williamhill","wme","work","works","world","ws","wtc","wtf","佛山","集团","在线","한국","ভরত","八卦","موقع","公益","公司","移动","我爱你","москва","қаз","онлайн","сайт","срб","淡马锡","орг","삼성","சிகப","商标","商店","商城","дети","мкд","中文网","中信","中国","中國","谷歌","భరత","ල","ભરત","भरत","网店","सगठन","网络","укр","香港","台湾","台灣","手机","мон","الجزائر","عمان","ایران","امارات","بازار","الاردن","بھارت","المغرب","السعودية","مليسيا","شبكة","გე","机构","组织机构","ไทย","سورية","рус","рф","تونس","みんな","グーグル","世界","ਭਰਤ","网址","游戏","vermögensberater","vermögensberatung","企业","مصر","قطر","广东","இலங","இநி","新加坡","فلسطين","政务","xxx","xyz","yachts","yandex","ye","yoga","yokohama","youtube","yt","za","zip","zm","zone","zuerich","zw"],
Config.Schema.API={constructors:[{id:"-1132882121",predicate:"boolFalse",params:[],type:"Bool"},{id:"-1720552011",predicate:"boolTrue",params:[],type:"Bool"},{id:"1072550713",predicate:"true",params:[],type:"True"},{id:"481674261",predicate:"vector",params:[],type:"Vector t"},{id:"-994444869",predicate:"error",params:[{name:"code",type:"int"},{name:"text",type:"string"}],type:"Error"},{id:"1450380236",predicate:"null",params:[],type:"Null"},{id:"2134579434",predicate:"inputPeerEmpty",params:[],type:"InputPeer"},{id:"2107670217",predicate:"inputPeerSelf",params:[],type:"InputPeer"},{id:"396093539",predicate:"inputPeerChat",params:[{name:"chat_id",type:"int"}],type:"InputPeer"},{id:"-1182234929",predicate:"inputUserEmpty",params:[],type:"InputUser"},{id:"-138301121",predicate:"inputUserSelf",params:[],type:"InputUser"},{id:"-208488460",predicate:"inputPhoneContact",params:[{name:"client_id",type:"long"},{name:"phone",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"InputContact"},{id:"-181407105",predicate:"inputFile",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"name",type:"string"},{name:"md5_checksum",type:"string"}],type:"InputFile"},{id:"-1771768449",predicate:"inputMediaEmpty",params:[],type:"InputMedia"},{id:"792191537",predicate:"inputMediaUploadedPhoto",params:[{name:"flags",type:"#"},{name:"file",type:"InputFile"},{name:"caption",type:"string"},{name:"stickers",type:"flags.0?Vector<InputDocument>"},{name:"ttl_seconds",type:"flags.1?int"}],type:"InputMedia"},{id:"-2114308294",predicate:"inputMediaPhoto",params:[{name:"flags",type:"#"},{name:"id",type:"InputPhoto"},{name:"caption",type:"string"},{name:"ttl_seconds",type:"flags.0?int"}],type:"InputMedia"},{id:"-104578748",predicate:"inputMediaGeoPoint",params:[{name:"geo_point",type:"InputGeoPoint"}],type:"InputMedia"},{id:"-1494984313",predicate:"inputMediaContact",params:[{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"InputMedia"},{id:"480546647",predicate:"inputChatPhotoEmpty",params:[],type:"InputChatPhoto"},{id:"-1837345356",predicate:"inputChatUploadedPhoto",params:[{name:"file",type:"InputFile"}],type:"InputChatPhoto"},{id:"-1991004873",predicate:"inputChatPhoto",params:[{name:"id",type:"InputPhoto"}],type:"InputChatPhoto"},{id:"-457104426",predicate:"inputGeoPointEmpty",params:[],type:"InputGeoPoint"},{id:"-206066487",predicate:"inputGeoPoint",params:[{name:"lat",type:"double"},{name:"long",type:"double"}],type:"InputGeoPoint"},{id:"483901197",predicate:"inputPhotoEmpty",params:[],type:"InputPhoto"},{id:"-74070332",predicate:"inputPhoto",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputPhoto"},{id:"342061462",predicate:"inputFileLocation",params:[{name:"volume_id",type:"long"},{name:"local_id",type:"int"},{name:"secret",type:"long"}],type:"InputFileLocation"},{id:"1996904104",predicate:"inputAppEvent",params:[{name:"time",type:"double"},{name:"type",type:"string"},{name:"peer",type:"long"},{name:"data",type:"string"}],type:"InputAppEvent"},{id:"-1649296275",predicate:"peerUser",params:[{name:"user_id",type:"int"}],type:"Peer"},{id:"-1160714821",predicate:"peerChat",params:[{name:"chat_id",type:"int"}],type:"Peer"},{id:"-1432995067",predicate:"storage.fileUnknown",params:[],type:"storage.FileType"},{id:"1086091090",predicate:"storage.filePartial",params:[],type:"storage.FileType"},{id:"8322574",predicate:"storage.fileJpeg",params:[],type:"storage.FileType"},{id:"-891180321",predicate:"storage.fileGif",params:[],type:"storage.FileType"},{id:"172975040",predicate:"storage.filePng",params:[],type:"storage.FileType"},{id:"-1373745011",predicate:"storage.filePdf",params:[],type:"storage.FileType"},{id:"1384777335",predicate:"storage.fileMp3",params:[],type:"storage.FileType"},{id:"1258941372",predicate:"storage.fileMov",params:[],type:"storage.FileType"},{id:"-1278304028",predicate:"storage.fileMp4",params:[],type:"storage.FileType"},{id:"276907596",predicate:"storage.fileWebp",params:[],type:"storage.FileType"},{id:"2086234950",predicate:"fileLocationUnavailable",params:[{name:"volume_id",type:"long"},{name:"local_id",type:"int"},{name:"secret",type:"long"}],type:"FileLocation"},{id:"1406570614",predicate:"fileLocation",params:[{name:"dc_id",type:"int"},{name:"volume_id",type:"long"},{name:"local_id",type:"int"},{name:"secret",type:"long"}],type:"FileLocation"},{id:"537022650",predicate:"userEmpty",params:[{name:"id",type:"int"}],type:"User"},{id:"1326562017",predicate:"userProfilePhotoEmpty",params:[],type:"UserProfilePhoto"},{id:"-715532088",predicate:"userProfilePhoto",params:[{name:"photo_id",type:"long"},{name:"photo_small",type:"FileLocation"},{name:"photo_big",type:"FileLocation"}],type:"UserProfilePhoto"},{id:"164646985",predicate:"userStatusEmpty",params:[],type:"UserStatus"},{id:"-306628279",predicate:"userStatusOnline",params:[{name:"expires",type:"int"}],type:"UserStatus"},{id:"9203775",predicate:"userStatusOffline",params:[{name:"was_online",type:"int"}],type:"UserStatus"},{id:"-1683826688",predicate:"chatEmpty",params:[{name:"id",type:"int"}],type:"Chat"},{id:"-652419756",predicate:"chat",params:[{name:"flags",type:"#"},{name:"creator",type:"flags.0?true"},{name:"kicked",type:"flags.1?true"},{name:"left",type:"flags.2?true"},{name:"admins_enabled",type:"flags.3?true"},{name:"admin",type:"flags.4?true"},{name:"deactivated",type:"flags.5?true"},{name:"id",type:"int"},{name:"title",type:"string"},{name:"photo",type:"ChatPhoto"},{name:"participants_count",type:"int"},{name:"date",type:"int"},{name:"version",type:"int"},{name:"migrated_to",type:"flags.6?InputChannel"}],type:"Chat"},{id:"120753115",predicate:"chatForbidden",params:[{name:"id",type:"int"},{name:"title",type:"string"}],type:"Chat"},{id:"771925524",predicate:"chatFull",params:[{name:"id",type:"int"},{name:"participants",type:"ChatParticipants"},{name:"chat_photo",type:"Photo"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"exported_invite",type:"ExportedChatInvite"},{name:"bot_info",type:"Vector<BotInfo>"}],type:"ChatFull"},{id:"-925415106",predicate:"chatParticipant",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChatParticipant"},{id:"-57668565",predicate:"chatParticipantsForbidden",params:[{name:"flags",type:"#"},{name:"chat_id",type:"int"},{name:"self_participant",type:"flags.0?ChatParticipant"}],type:"ChatParticipants"},{id:"1061556205",predicate:"chatParticipants",params:[{name:"chat_id",type:"int"},{name:"participants",type:"Vector<ChatParticipant>"},{name:"version",type:"int"}],type:"ChatParticipants"},{id:"935395612",predicate:"chatPhotoEmpty",params:[],type:"ChatPhoto"},{id:"1632839530",predicate:"chatPhoto",params:[{name:"photo_small",type:"FileLocation"},{name:"photo_big",type:"FileLocation"}],type:"ChatPhoto"},{id:"-2082087340",predicate:"messageEmpty",params:[{name:"id",type:"int"}],type:"Message"},{id:"1157215293",predicate:"message",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"mentioned",type:"flags.4?true"},{name:"media_unread",type:"flags.5?true"},{name:"silent",type:"flags.13?true"},{name:"post",type:"flags.14?true"},{name:"id",type:"int"},{name:"from_id",type:"flags.8?int"},{name:"to_id",type:"Peer"},{name:"fwd_from",type:"flags.2?MessageFwdHeader"},{name:"via_bot_id",type:"flags.11?int"},{name:"reply_to_msg_id",type:"flags.3?int"},{name:"date",type:"int"},{name:"message",type:"string"},{name:"media",type:"flags.9?MessageMedia"},{name:"reply_markup",type:"flags.6?ReplyMarkup"},{name:"entities",type:"flags.7?Vector<MessageEntity>"},{name:"views",type:"flags.10?int"},{name:"edit_date",type:"flags.15?int"},{name:"post_author",type:"flags.16?string"},{name:"grouped_id",type:"flags.17?long"}],type:"Message"},{id:"-1642487306",predicate:"messageService",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"mentioned",type:"flags.4?true"},{name:"media_unread",type:"flags.5?true"},{name:"silent",type:"flags.13?true"},{name:"post",type:"flags.14?true"},{name:"id",type:"int"},{name:"from_id",type:"flags.8?int"},{name:"to_id",type:"Peer"},{name:"reply_to_msg_id",type:"flags.3?int"},{name:"date",type:"int"},{name:"action",type:"MessageAction"}],type:"Message"},{id:"1038967584",predicate:"messageMediaEmpty",params:[],type:"MessageMedia"},{id:"-1256047857",predicate:"messageMediaPhoto",params:[{name:"flags",type:"#"},{name:"photo",type:"flags.0?Photo"},{name:"caption",type:"flags.1?string"},{name:"ttl_seconds",type:"flags.2?int"}],type:"MessageMedia"},{id:"1457575028",predicate:"messageMediaGeo",params:[{name:"geo",type:"GeoPoint"}],type:"MessageMedia"},{id:"1585262393",predicate:"messageMediaContact",params:[{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"user_id",type:"int"}],type:"MessageMedia"},{id:"-1618676578",predicate:"messageMediaUnsupported",params:[],type:"MessageMedia"},{id:"-1230047312",predicate:"messageActionEmpty",params:[],type:"MessageAction"},{id:"-1503425638",predicate:"messageActionChatCreate",params:[{name:"title",type:"string"},{name:"users",type:"Vector<int>"}],type:"MessageAction"},{id:"-1247687078",predicate:"messageActionChatEditTitle",params:[{name:"title",type:"string"}],type:"MessageAction"},{id:"2144015272",predicate:"messageActionChatEditPhoto",params:[{name:"photo",type:"Photo"}],type:"MessageAction"},{id:"-1780220945",predicate:"messageActionChatDeletePhoto",params:[],type:"MessageAction"},{id:"1217033015",predicate:"messageActionChatAddUser",params:[{name:"users",type:"Vector<int>"}],type:"MessageAction"},{id:"-1297179892",predicate:"messageActionChatDeleteUser",params:[{name:"user_id",type:"int"}],type:"MessageAction"},{id:"-455150117",predicate:"dialog",params:[{name:"flags",type:"#"},{name:"pinned",type:"flags.2?true"},{name:"peer",type:"Peer"},{name:"top_message",type:"int"},{name:"read_inbox_max_id",type:"int"},{name:"read_outbox_max_id",type:"int"},{name:"unread_count",type:"int"},{name:"unread_mentions_count",type:"int"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"pts",type:"flags.0?int"},{name:"draft",type:"flags.1?DraftMessage"}],type:"Dialog"},{id:"590459437",predicate:"photoEmpty",params:[{name:"id",type:"long"}],type:"Photo"},{id:"-1836524247",predicate:"photo",params:[{name:"flags",type:"#"},{name:"has_stickers",type:"flags.0?true"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"sizes",type:"Vector<PhotoSize>"}],type:"Photo"},{id:"236446268",predicate:"photoSizeEmpty",params:[{name:"type",type:"string"}],type:"PhotoSize"},{id:"2009052699",predicate:"photoSize",params:[{name:"type",type:"string"},{name:"location",type:"FileLocation"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"size",type:"int"}],type:"PhotoSize"},{id:"-374917894",predicate:"photoCachedSize",params:[{name:"type",type:"string"},{name:"location",type:"FileLocation"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"bytes",type:"bytes"}],type:"PhotoSize"},{id:"286776671",predicate:"geoPointEmpty",params:[],type:"GeoPoint"},{id:"541710092",predicate:"geoPoint",params:[{name:"long",type:"double"},{name:"lat",type:"double"}],type:"GeoPoint"},{id:"-2128698738",predicate:"auth.checkedPhone",params:[{name:"phone_registered",type:"Bool"}],type:"auth.CheckedPhone"},{id:"1577067778",predicate:"auth.sentCode",params:[{name:"flags",type:"#"},{name:"phone_registered",type:"flags.0?true"},{name:"type",type:"auth.SentCodeType"},{name:"phone_code_hash",type:"string"},{name:"next_type",type:"flags.1?auth.CodeType"},{name:"timeout",type:"flags.2?int"}],type:"auth.SentCode"},{id:"-855308010",predicate:"auth.authorization",params:[{name:"flags",type:"#"},{name:"tmp_sessions",type:"flags.0?int"},{name:"user",type:"User"}],type:"auth.Authorization"},{id:"-543777747",predicate:"auth.exportedAuthorization",params:[{name:"id",type:"int"},{name:"bytes",type:"bytes"}],type:"auth.ExportedAuthorization"},{id:"-1195615476",predicate:"inputNotifyPeer",params:[{name:"peer",type:"InputPeer"}],type:"InputNotifyPeer"},{id:"423314455",predicate:"inputNotifyUsers",params:[],type:"InputNotifyPeer"},{id:"1251338318",predicate:"inputNotifyChats",params:[],type:"InputNotifyPeer"},{id:"-1540769658",predicate:"inputNotifyAll",params:[],type:"InputNotifyPeer"},{id:"-265263912",predicate:"inputPeerNotifyEventsEmpty",params:[],type:"InputPeerNotifyEvents"},{id:"-395694988",predicate:"inputPeerNotifyEventsAll",params:[],type:"InputPeerNotifyEvents"},{id:"949182130",predicate:"inputPeerNotifySettings",params:[{name:"flags",type:"#"},{name:"show_previews",type:"flags.0?true"},{name:"silent",type:"flags.1?true"},{name:"mute_until",type:"int"},{name:"sound",type:"string"}],type:"InputPeerNotifySettings"},{id:"-1378534221",predicate:"peerNotifyEventsEmpty",params:[],type:"PeerNotifyEvents"},{id:"1830677896",predicate:"peerNotifyEventsAll",params:[],type:"PeerNotifyEvents"},{id:"1889961234",predicate:"peerNotifySettingsEmpty",params:[],type:"PeerNotifySettings"},{id:"-1697798976",predicate:"peerNotifySettings",params:[{name:"flags",type:"#"},{name:"show_previews",type:"flags.0?true"},{name:"silent",type:"flags.1?true"},{name:"mute_until",type:"int"},{name:"sound",type:"string"}],type:"PeerNotifySettings"},{id:"-2122045747",predicate:"peerSettings",params:[{name:"flags",type:"#"},{name:"report_spam",type:"flags.0?true"}],type:"PeerSettings"},{id:"-860866985",predicate:"wallPaper",params:[{name:"id",type:"int"},{name:"title",type:"string"},{name:"sizes",type:"Vector<PhotoSize>"},{name:"color",type:"int"}],type:"WallPaper"},{id:"1490799288",predicate:"inputReportReasonSpam",params:[],type:"ReportReason"},{id:"505595789",predicate:"inputReportReasonViolence",params:[],type:"ReportReason"},{id:"777640226",predicate:"inputReportReasonPornography",params:[],type:"ReportReason"},{id:"-512463606",predicate:"inputReportReasonOther",params:[{name:"text",type:"string"}],type:"ReportReason"},{id:"253890367",predicate:"userFull",params:[{name:"flags",type:"#"},{name:"blocked",type:"flags.0?true"},{name:"phone_calls_available",type:"flags.4?true"},{name:"phone_calls_private",type:"flags.5?true"},{name:"user",type:"User"},{name:"about",type:"flags.1?string"},{name:"link",type:"contacts.Link"},{name:"profile_photo",type:"flags.2?Photo"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"bot_info",type:"flags.3?BotInfo"},{name:"common_chats_count",type:"int"}],type:"UserFull"},{id:"-116274796",predicate:"contact",params:[{name:"user_id",type:"int"},{name:"mutual",type:"Bool"}],type:"Contact"},{id:"-805141448",predicate:"importedContact",params:[{name:"user_id",type:"int"},{name:"client_id",type:"long"}],type:"ImportedContact"},{id:"1444661369",predicate:"contactBlocked",params:[{name:"user_id",type:"int"},{name:"date",type:"int"}],type:"ContactBlocked"},{id:"-748155807",predicate:"contactStatus",params:[{name:"user_id",type:"int"},{name:"status",type:"UserStatus"}],type:"ContactStatus"},{id:"986597452",predicate:"contacts.link",params:[{name:"my_link",type:"ContactLink"},{name:"foreign_link",type:"ContactLink"},{name:"user",type:"User"}],type:"contacts.Link"},{id:"-1219778094",predicate:"contacts.contactsNotModified",params:[],type:"contacts.Contacts"},{id:"-353862078",predicate:"contacts.contacts",params:[{name:"contacts",type:"Vector<Contact>"},{name:"saved_count",type:"int"},{name:"users",type:"Vector<User>"}],type:"contacts.Contacts"},{id:"2010127419",predicate:"contacts.importedContacts",params:[{name:"imported",type:"Vector<ImportedContact>"},{name:"popular_invites",type:"Vector<PopularContact>"},{name:"retry_contacts",type:"Vector<long>"},{name:"users",type:"Vector<User>"}],type:"contacts.ImportedContacts"},{id:"471043349",predicate:"contacts.blocked",params:[{name:"blocked",type:"Vector<ContactBlocked>"},{name:"users",type:"Vector<User>"}],type:"contacts.Blocked"},{id:"-1878523231",predicate:"contacts.blockedSlice",params:[{name:"count",type:"int"},{name:"blocked",type:"Vector<ContactBlocked>"},{name:"users",type:"Vector<User>"}],type:"contacts.Blocked"},{id:"364538944",predicate:"messages.dialogs",params:[{name:"dialogs",type:"Vector<Dialog>"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Dialogs"},{id:"1910543603",predicate:"messages.dialogsSlice",params:[{name:"count",type:"int"},{name:"dialogs",type:"Vector<Dialog>"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Dialogs"},{id:"-1938715001",predicate:"messages.messages",params:[{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Messages"},{id:"189033187",predicate:"messages.messagesSlice",params:[{name:"count",type:"int"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Messages"},{id:"1694474197",predicate:"messages.chats",params:[{name:"chats",type:"Vector<Chat>"}],type:"messages.Chats"},{id:"-438840932",predicate:"messages.chatFull",params:[{name:"full_chat",type:"ChatFull"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.ChatFull"},{id:"-1269012015",predicate:"messages.affectedHistory",params:[{name:"pts",type:"int"},{name:"pts_count",type:"int"},{name:"offset",type:"int"}],type:"messages.AffectedHistory"},{id:"1474492012",predicate:"inputMessagesFilterEmpty",params:[],type:"MessagesFilter"},{id:"-1777752804",predicate:"inputMessagesFilterPhotos",params:[],type:"MessagesFilter"},{id:"-1614803355",predicate:"inputMessagesFilterVideo",params:[],type:"MessagesFilter"},{id:"1458172132",predicate:"inputMessagesFilterPhotoVideo",params:[],type:"MessagesFilter"},{id:"-1629621880",predicate:"inputMessagesFilterDocument",params:[],type:"MessagesFilter"},{id:"2129714567",predicate:"inputMessagesFilterUrl",params:[],type:"MessagesFilter"},{id:"-3644025",predicate:"inputMessagesFilterGif",params:[],type:"MessagesFilter"},{id:"522914557",predicate:"updateNewMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"1318109142",predicate:"updateMessageID",params:[{name:"id",type:"int"},{name:"random_id",type:"long"}],type:"Update"},{id:"-1576161051",predicate:"updateDeleteMessages",params:[{name:"messages",type:"Vector<int>"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"1548249383",predicate:"updateUserTyping",params:[{name:"user_id",type:"int"},{name:"action",type:"SendMessageAction"}],type:"Update"},{id:"-1704596961",predicate:"updateChatUserTyping",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"action",type:"SendMessageAction"}],type:"Update"},{id:"125178264",predicate:"updateChatParticipants",params:[{name:"participants",type:"ChatParticipants"}],type:"Update"},{id:"469489699",predicate:"updateUserStatus",params:[{name:"user_id",type:"int"},{name:"status",type:"UserStatus"}],type:"Update"},{id:"-1489818765",predicate:"updateUserName",params:[{name:"user_id",type:"int"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"username",type:"string"}],type:"Update"},{id:"-1791935732",predicate:"updateUserPhoto",params:[{name:"user_id",type:"int"},{name:"date",type:"int"},{name:"photo",type:"UserProfilePhoto"},{name:"previous",type:"Bool"}],type:"Update"},{id:"628472761",predicate:"updateContactRegistered",params:[{name:"user_id",type:"int"},{name:"date",type:"int"}],type:"Update"},{id:"-1657903163",predicate:"updateContactLink",params:[{name:"user_id",type:"int"},{name:"my_link",type:"ContactLink"},{name:"foreign_link",type:"ContactLink"}],type:"Update"},{id:"-1519637954",predicate:"updates.state",params:[{name:"pts",type:"int"},{name:"qts",type:"int"},{name:"date",type:"int"},{name:"seq",type:"int"},{name:"unread_count",type:"int"}],type:"updates.State"},{id:"1567990072",predicate:"updates.differenceEmpty",params:[{name:"date",type:"int"},{name:"seq",type:"int"}],type:"updates.Difference"},{id:"16030880",predicate:"updates.difference",params:[{name:"new_messages",type:"Vector<Message>"},{name:"new_encrypted_messages",type:"Vector<EncryptedMessage>"},{name:"other_updates",type:"Vector<Update>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"state",type:"updates.State"}],type:"updates.Difference"},{id:"-1459938943",predicate:"updates.differenceSlice",params:[{name:"new_messages",type:"Vector<Message>"},{name:"new_encrypted_messages",type:"Vector<EncryptedMessage>"},{name:"other_updates",type:"Vector<Update>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"intermediate_state",type:"updates.State"}],type:"updates.Difference"},{id:"-484987010",predicate:"updatesTooLong",params:[],type:"Updates"},{id:"-1857044719",predicate:"updateShortMessage",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"mentioned",type:"flags.4?true"},{name:"media_unread",type:"flags.5?true"},{name:"silent",type:"flags.13?true"},{name:"id",type:"int"},{name:"user_id",type:"int"},{name:"message",type:"string"},{name:"pts",type:"int"},{name:"pts_count",type:"int"},{name:"date",type:"int"},{name:"fwd_from",type:"flags.2?MessageFwdHeader"},{name:"via_bot_id",type:"flags.11?int"},{name:"reply_to_msg_id",type:"flags.3?int"},{name:"entities",type:"flags.7?Vector<MessageEntity>"}],type:"Updates"},{id:"377562760",predicate:"updateShortChatMessage",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"mentioned",type:"flags.4?true"},{name:"media_unread",type:"flags.5?true"},{name:"silent",type:"flags.13?true"},{name:"id",type:"int"},{name:"from_id",type:"int"},{name:"chat_id",type:"int"},{name:"message",type:"string"},{name:"pts",type:"int"},{name:"pts_count",type:"int"},{name:"date",type:"int"},{name:"fwd_from",type:"flags.2?MessageFwdHeader"},{name:"via_bot_id",type:"flags.11?int"},{name:"reply_to_msg_id",type:"flags.3?int"},{name:"entities",type:"flags.7?Vector<MessageEntity>"}],type:"Updates"},{id:"2027216577",predicate:"updateShort",params:[{name:"update",type:"Update"},{name:"date",type:"int"}],type:"Updates"},{id:"1918567619",predicate:"updatesCombined",params:[{name:"updates",type:"Vector<Update>"},{name:"users",type:"Vector<User>"},{name:"chats",type:"Vector<Chat>"},{name:"date",type:"int"},{name:"seq_start",type:"int"},{name:"seq",type:"int"}],type:"Updates"},{id:"1957577280",predicate:"updates",params:[{name:"updates",type:"Vector<Update>"},{name:"users",type:"Vector<User>"},{name:"chats",type:"Vector<Chat>"},{name:"date",type:"int"},{name:"seq",type:"int"}],type:"Updates"},{id:"-1916114267",predicate:"photos.photos",params:[{name:"photos",type:"Vector<Photo>"},{name:"users",type:"Vector<User>"}],type:"photos.Photos"},{id:"352657236",predicate:"photos.photosSlice",params:[{name:"count",type:"int"},{name:"photos",type:"Vector<Photo>"},{name:"users",type:"Vector<User>"}],type:"photos.Photos"},{id:"539045032",predicate:"photos.photo",params:[{name:"photo",type:"Photo"},{name:"users",type:"Vector<User>"}],type:"photos.Photo"},{id:"157948117",predicate:"upload.file",params:[{name:"type",type:"storage.FileType"},{name:"mtime",type:"int"},{name:"bytes",type:"bytes"}],type:"upload.File"},{id:"98092748",predicate:"dcOption",params:[{name:"flags",type:"#"},{name:"ipv6",type:"flags.0?true"},{name:"media_only",type:"flags.1?true"},{name:"tcpo_only",type:"flags.2?true"},{name:"cdn",type:"flags.3?true"},{name:"static",type:"flags.4?true"},{name:"id",type:"int"},{name:"ip_address",type:"string"},{name:"port",type:"int"}],type:"DcOption"},{id:"-1669068444",predicate:"config",params:[{name:"flags",type:"#"},{name:"phonecalls_enabled",type:"flags.1?true"},{name:"default_p2p_contacts",type:"flags.3?true"},{name:"date",type:"int"},{name:"expires",type:"int"},{name:"test_mode",type:"Bool"},{name:"this_dc",type:"int"},{name:"dc_options",type:"Vector<DcOption>"},{name:"chat_size_max",type:"int"},{name:"megagroup_size_max",type:"int"},{name:"forwarded_count_max",type:"int"},{name:"online_update_period_ms",type:"int"},{name:"offline_blur_timeout_ms",type:"int"},{name:"offline_idle_timeout_ms",type:"int"},{name:"online_cloud_timeout_ms",type:"int"},{name:"notify_cloud_delay_ms",type:"int"},{name:"notify_default_delay_ms",type:"int"},{name:"chat_big_size",type:"int"},{name:"push_chat_period_ms",type:"int"},{name:"push_chat_limit",type:"int"},{name:"saved_gifs_limit",type:"int"},{name:"edit_time_limit",type:"int"},{name:"rating_e_decay",type:"int"},{name:"stickers_recent_limit",type:"int"},{name:"stickers_faved_limit",type:"int"},{name:"channels_read_media_period",type:"int"},{name:"tmp_sessions",type:"flags.0?int"},{name:"pinned_dialogs_count_max",type:"int"},{name:"call_receive_timeout_ms",type:"int"},{name:"call_ring_timeout_ms",type:"int"},{name:"call_connect_timeout_ms",type:"int"},{name:"call_packet_timeout_ms",type:"int"},{name:"me_url_prefix",type:"string"},{name:"suggested_lang_code",type:"flags.2?string"},{name:"lang_pack_version",type:"flags.2?int"},{name:"disabled_features",type:"Vector<DisabledFeature>"}],type:"Config"},{id:"-1910892683",predicate:"nearestDc",params:[{name:"country",type:"string"},{name:"this_dc",type:"int"},{name:"nearest_dc",type:"int"}],type:"NearestDc"},{id:"-1987579119",predicate:"help.appUpdate",params:[{name:"id",type:"int"},{name:"critical",type:"Bool"},{name:"url",type:"string"},{name:"text",type:"string"}],type:"help.AppUpdate"},{id:"-1000708810",predicate:"help.noAppUpdate",params:[],type:"help.AppUpdate"},{id:"415997816",predicate:"help.inviteText",params:[{name:"message",type:"string"}],type:"help.InviteText"},{id:"1662091044",predicate:"wallPaperSolid",params:[{name:"id",type:"int"},{name:"title",type:"string"},{name:"bg_color",type:"int"},{name:"color",type:"int"}],type:"WallPaper"},{id:"314359194",predicate:"updateNewEncryptedMessage",params:[{name:"message",type:"EncryptedMessage"},{name:"qts",type:"int"}],type:"Update"},{id:"386986326",predicate:"updateEncryptedChatTyping",params:[{name:"chat_id",type:"int"}],type:"Update"},{id:"-1264392051",predicate:"updateEncryption",params:[{name:"chat",type:"EncryptedChat"},{name:"date",type:"int"}],type:"Update"},{id:"956179895",predicate:"updateEncryptedMessagesRead",params:[{name:"chat_id",type:"int"},{name:"max_date",type:"int"},{name:"date",type:"int"}],type:"Update"},{id:"-1417756512",predicate:"encryptedChatEmpty",params:[{name:"id",type:"int"}],type:"EncryptedChat"},{id:"1006044124",predicate:"encryptedChatWaiting",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"}],type:"EncryptedChat"},{id:"-931638658",predicate:"encryptedChatRequested",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a",type:"bytes"}],type:"EncryptedChat"},{id:"-94974410",predicate:"encryptedChat",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a_or_b",type:"bytes"},{name:"key_fingerprint",type:"long"}],type:"EncryptedChat"},{id:"332848423",predicate:"encryptedChatDiscarded",params:[{name:"id",type:"int"}],type:"EncryptedChat"},{id:"-247351839",predicate:"inputEncryptedChat",params:[{name:"chat_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputEncryptedChat"},{id:"-1038136962",predicate:"encryptedFileEmpty",params:[],type:"EncryptedFile"},{id:"1248893260",predicate:"encryptedFile",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"size",type:"int"},{name:"dc_id",type:"int"},{name:"key_fingerprint",type:"int"}],type:"EncryptedFile"},{id:"406307684",predicate:"inputEncryptedFileEmpty",params:[],type:"InputEncryptedFile"},{id:"1690108678",predicate:"inputEncryptedFileUploaded",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"md5_checksum",type:"string"},{name:"key_fingerprint",type:"int"}],type:"InputEncryptedFile"},{id:"1511503333",predicate:"inputEncryptedFile",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputEncryptedFile"},{id:"-182231723",predicate:"inputEncryptedFileLocation",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputFileLocation"},{id:"-317144808",predicate:"encryptedMessage",params:[{name:"random_id",type:"long"},{name:"chat_id",type:"int"},{name:"date",type:"int"},{name:"bytes",type:"bytes"},{name:"file",type:"EncryptedFile"}],type:"EncryptedMessage"},{id:"594758406",predicate:"encryptedMessageService",params:[{name:"random_id",type:"long"},{name:"chat_id",type:"int"},{name:"date",type:"int"},{name:"bytes",type:"bytes"}],type:"EncryptedMessage"},{id:"-1058912715",predicate:"messages.dhConfigNotModified",params:[{name:"random",type:"bytes"}],type:"messages.DhConfig"},{id:"740433629",predicate:"messages.dhConfig",params:[{name:"g",type:"int"},{name:"p",type:"bytes"},{name:"version",type:"int"},{name:"random",type:"bytes"}],type:"messages.DhConfig"},{id:"1443858741",predicate:"messages.sentEncryptedMessage",params:[{name:"date",type:"int"}],type:"messages.SentEncryptedMessage"},{id:"-1802240206",predicate:"messages.sentEncryptedFile",params:[{name:"date",type:"int"},{name:"file",type:"EncryptedFile"}],type:"messages.SentEncryptedMessage"},{id:"-95482955",predicate:"inputFileBig",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"name",type:"string"}],type:"InputFile"},{id:"767652808",predicate:"inputEncryptedFileBigUploaded",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"key_fingerprint",type:"int"}],type:"InputEncryptedFile"},{id:"-364179876",predicate:"updateChatParticipantAdd",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"},{name:"version",type:"int"}],type:"Update"},{id:"1851755554",predicate:"updateChatParticipantDelete",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"version",type:"int"}],type:"Update"},{id:"-1906403213",predicate:"updateDcOptions",params:[{name:"dc_options",type:"Vector<DcOption>"}],type:"Update"},{id:"-476700163",predicate:"inputMediaUploadedDocument",params:[{name:"flags",type:"#"},{name:"nosound_video",type:"flags.3?true"},{name:"file",type:"InputFile"},{name:"thumb",type:"flags.2?InputFile"},{name:"mime_type",type:"string"},{name:"attributes",type:"Vector<DocumentAttribute>"},{name:"caption",type:"string"},{name:"stickers",type:"flags.0?Vector<InputDocument>"},{name:"ttl_seconds",type:"flags.1?int"}],type:"InputMedia"},{id:"1523279502",predicate:"inputMediaDocument",params:[{name:"flags",type:"#"},{name:"id",type:"InputDocument"},{name:"caption",type:"string"},{name:"ttl_seconds",type:"flags.0?int"}],type:"InputMedia"},{id:"2084836563",predicate:"messageMediaDocument",params:[{name:"flags",type:"#"},{name:"document",type:"flags.0?Document"},{name:"caption",type:"flags.1?string"},{name:"ttl_seconds",type:"flags.2?int"}],type:"MessageMedia"},{id:"1928391342",predicate:"inputDocumentEmpty",params:[],type:"InputDocument"},{id:"410618194",predicate:"inputDocument",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputDocument"},{id:"1125058340",predicate:"inputDocumentFileLocation",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"version",type:"int"}],type:"InputFileLocation"},{id:"922273905",predicate:"documentEmpty",params:[{name:"id",type:"long"}],type:"Document"},{id:"-2027738169",predicate:"document",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"mime_type",type:"string"},{name:"size",type:"int"},{name:"thumb",type:"PhotoSize"},{name:"dc_id",type:"int"},{name:"version",type:"int"},{name:"attributes",type:"Vector<DocumentAttribute>"
}],type:"Document"},{id:"398898678",predicate:"help.support",params:[{name:"phone_number",type:"string"},{name:"user",type:"User"}],type:"help.Support"},{id:"-1613493288",predicate:"notifyPeer",params:[{name:"peer",type:"Peer"}],type:"NotifyPeer"},{id:"-1261946036",predicate:"notifyUsers",params:[],type:"NotifyPeer"},{id:"-1073230141",predicate:"notifyChats",params:[],type:"NotifyPeer"},{id:"1959820384",predicate:"notifyAll",params:[],type:"NotifyPeer"},{id:"-2131957734",predicate:"updateUserBlocked",params:[{name:"user_id",type:"int"},{name:"blocked",type:"Bool"}],type:"Update"},{id:"-1094555409",predicate:"updateNotifySettings",params:[{name:"peer",type:"NotifyPeer"},{name:"notify_settings",type:"PeerNotifySettings"}],type:"Update"},{id:"381645902",predicate:"sendMessageTypingAction",params:[],type:"SendMessageAction"},{id:"-44119819",predicate:"sendMessageCancelAction",params:[],type:"SendMessageAction"},{id:"-1584933265",predicate:"sendMessageRecordVideoAction",params:[],type:"SendMessageAction"},{id:"-378127636",predicate:"sendMessageUploadVideoAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-718310409",predicate:"sendMessageRecordAudioAction",params:[],type:"SendMessageAction"},{id:"-212740181",predicate:"sendMessageUploadAudioAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-774682074",predicate:"sendMessageUploadPhotoAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-1441998364",predicate:"sendMessageUploadDocumentAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"393186209",predicate:"sendMessageGeoLocationAction",params:[],type:"SendMessageAction"},{id:"1653390447",predicate:"sendMessageChooseContactAction",params:[],type:"SendMessageAction"},{id:"-1290580579",predicate:"contacts.found",params:[{name:"my_results",type:"Vector<Peer>"},{name:"results",type:"Vector<Peer>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"contacts.Found"},{id:"-337352679",predicate:"updateServiceNotification",params:[{name:"flags",type:"#"},{name:"popup",type:"flags.0?true"},{name:"inbox_date",type:"flags.1?int"},{name:"type",type:"string"},{name:"message",type:"string"},{name:"media",type:"MessageMedia"},{name:"entities",type:"Vector<MessageEntity>"}],type:"Update"},{id:"-496024847",predicate:"userStatusRecently",params:[],type:"UserStatus"},{id:"129960444",predicate:"userStatusLastWeek",params:[],type:"UserStatus"},{id:"2011940674",predicate:"userStatusLastMonth",params:[],type:"UserStatus"},{id:"-298113238",predicate:"updatePrivacy",params:[{name:"key",type:"PrivacyKey"},{name:"rules",type:"Vector<PrivacyRule>"}],type:"Update"},{id:"1335282456",predicate:"inputPrivacyKeyStatusTimestamp",params:[],type:"InputPrivacyKey"},{id:"-1137792208",predicate:"privacyKeyStatusTimestamp",params:[],type:"PrivacyKey"},{id:"218751099",predicate:"inputPrivacyValueAllowContacts",params:[],type:"InputPrivacyRule"},{id:"407582158",predicate:"inputPrivacyValueAllowAll",params:[],type:"InputPrivacyRule"},{id:"320652927",predicate:"inputPrivacyValueAllowUsers",params:[{name:"users",type:"Vector<InputUser>"}],type:"InputPrivacyRule"},{id:"195371015",predicate:"inputPrivacyValueDisallowContacts",params:[],type:"InputPrivacyRule"},{id:"-697604407",predicate:"inputPrivacyValueDisallowAll",params:[],type:"InputPrivacyRule"},{id:"-1877932953",predicate:"inputPrivacyValueDisallowUsers",params:[{name:"users",type:"Vector<InputUser>"}],type:"InputPrivacyRule"},{id:"-123988",predicate:"privacyValueAllowContacts",params:[],type:"PrivacyRule"},{id:"1698855810",predicate:"privacyValueAllowAll",params:[],type:"PrivacyRule"},{id:"1297858060",predicate:"privacyValueAllowUsers",params:[{name:"users",type:"Vector<int>"}],type:"PrivacyRule"},{id:"-125240806",predicate:"privacyValueDisallowContacts",params:[],type:"PrivacyRule"},{id:"-1955338397",predicate:"privacyValueDisallowAll",params:[],type:"PrivacyRule"},{id:"209668535",predicate:"privacyValueDisallowUsers",params:[{name:"users",type:"Vector<int>"}],type:"PrivacyRule"},{id:"1430961007",predicate:"account.privacyRules",params:[{name:"rules",type:"Vector<PrivacyRule>"},{name:"users",type:"Vector<User>"}],type:"account.PrivacyRules"},{id:"-1194283041",predicate:"accountDaysTTL",params:[{name:"days",type:"int"}],type:"AccountDaysTTL"},{id:"314130811",predicate:"updateUserPhone",params:[{name:"user_id",type:"int"},{name:"phone",type:"string"}],type:"Update"},{id:"1815593308",predicate:"documentAttributeImageSize",params:[{name:"w",type:"int"},{name:"h",type:"int"}],type:"DocumentAttribute"},{id:"297109817",predicate:"documentAttributeAnimated",params:[],type:"DocumentAttribute"},{id:"1662637586",predicate:"documentAttributeSticker",params:[{name:"flags",type:"#"},{name:"mask",type:"flags.1?true"},{name:"alt",type:"string"},{name:"stickerset",type:"InputStickerSet"},{name:"mask_coords",type:"flags.0?MaskCoords"}],type:"DocumentAttribute"},{id:"250621158",predicate:"documentAttributeVideo",params:[{name:"flags",type:"#"},{name:"round_message",type:"flags.0?true"},{name:"duration",type:"int"},{name:"w",type:"int"},{name:"h",type:"int"}],type:"DocumentAttribute"},{id:"-1739392570",predicate:"documentAttributeAudio",params:[{name:"flags",type:"#"},{name:"voice",type:"flags.10?true"},{name:"duration",type:"int"},{name:"title",type:"flags.0?string"},{name:"performer",type:"flags.1?string"},{name:"waveform",type:"flags.2?bytes"}],type:"DocumentAttribute"},{id:"358154344",predicate:"documentAttributeFilename",params:[{name:"file_name",type:"string"}],type:"DocumentAttribute"},{id:"-244016606",predicate:"messages.stickersNotModified",params:[],type:"messages.Stickers"},{id:"-1970352846",predicate:"messages.stickers",params:[{name:"hash",type:"string"},{name:"stickers",type:"Vector<Document>"}],type:"messages.Stickers"},{id:"313694676",predicate:"stickerPack",params:[{name:"emoticon",type:"string"},{name:"documents",type:"Vector<long>"}],type:"StickerPack"},{id:"-395967805",predicate:"messages.allStickersNotModified",params:[],type:"messages.AllStickers"},{id:"-302170017",predicate:"messages.allStickers",params:[{name:"hash",type:"int"},{name:"sets",type:"Vector<StickerSet>"}],type:"messages.AllStickers"},{id:"-1369215196",predicate:"disabledFeature",params:[{name:"feature",type:"string"},{name:"description",type:"string"}],type:"DisabledFeature"},{id:"-1721631396",predicate:"updateReadHistoryInbox",params:[{name:"peer",type:"Peer"},{name:"max_id",type:"int"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"791617983",predicate:"updateReadHistoryOutbox",params:[{name:"peer",type:"Peer"},{name:"max_id",type:"int"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-2066640507",predicate:"messages.affectedMessages",params:[{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"messages.AffectedMessages"},{id:"1599050311",predicate:"contactLinkUnknown",params:[],type:"ContactLink"},{id:"-17968211",predicate:"contactLinkNone",params:[],type:"ContactLink"},{id:"646922073",predicate:"contactLinkHasPhone",params:[],type:"ContactLink"},{id:"-721239344",predicate:"contactLinkContact",params:[],type:"ContactLink"},{id:"2139689491",predicate:"updateWebPage",params:[{name:"webpage",type:"WebPage"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-350980120",predicate:"webPageEmpty",params:[{name:"id",type:"long"}],type:"WebPage"},{id:"-981018084",predicate:"webPagePending",params:[{name:"id",type:"long"},{name:"date",type:"int"}],type:"WebPage"},{id:"1594340540",predicate:"webPage",params:[{name:"flags",type:"#"},{name:"id",type:"long"},{name:"url",type:"string"},{name:"display_url",type:"string"},{name:"hash",type:"int"},{name:"type",type:"flags.0?string"},{name:"site_name",type:"flags.1?string"},{name:"title",type:"flags.2?string"},{name:"description",type:"flags.3?string"},{name:"photo",type:"flags.4?Photo"},{name:"embed_url",type:"flags.5?string"},{name:"embed_type",type:"flags.5?string"},{name:"embed_width",type:"flags.6?int"},{name:"embed_height",type:"flags.6?int"},{name:"duration",type:"flags.7?int"},{name:"author",type:"flags.8?string"},{name:"document",type:"flags.9?Document"},{name:"cached_page",type:"flags.10?Page"}],type:"WebPage"},{id:"-1557277184",predicate:"messageMediaWebPage",params:[{name:"webpage",type:"WebPage"}],type:"MessageMedia"},{id:"2079516406",predicate:"authorization",params:[{name:"hash",type:"long"},{name:"flags",type:"int"},{name:"device_model",type:"string"},{name:"platform",type:"string"},{name:"system_version",type:"string"},{name:"api_id",type:"int"},{name:"app_name",type:"string"},{name:"app_version",type:"string"},{name:"date_created",type:"int"},{name:"date_active",type:"int"},{name:"ip",type:"string"},{name:"country",type:"string"},{name:"region",type:"string"}],type:"Authorization"},{id:"307276766",predicate:"account.authorizations",params:[{name:"authorizations",type:"Vector<Authorization>"}],type:"account.Authorizations"},{id:"-1764049896",predicate:"account.noPassword",params:[{name:"new_salt",type:"bytes"},{name:"email_unconfirmed_pattern",type:"string"}],type:"account.Password"},{id:"2081952796",predicate:"account.password",params:[{name:"current_salt",type:"bytes"},{name:"new_salt",type:"bytes"},{name:"hint",type:"string"},{name:"has_recovery",type:"Bool"},{name:"email_unconfirmed_pattern",type:"string"}],type:"account.Password"},{id:"-1212732749",predicate:"account.passwordSettings",params:[{name:"email",type:"string"}],type:"account.PasswordSettings"},{id:"-2037289493",predicate:"account.passwordInputSettings",params:[{name:"flags",type:"#"},{name:"new_salt",type:"flags.0?bytes"},{name:"new_password_hash",type:"flags.0?bytes"},{name:"hint",type:"flags.0?string"},{name:"email",type:"flags.1?string"}],type:"account.PasswordInputSettings"},{id:"326715557",predicate:"auth.passwordRecovery",params:[{name:"email_pattern",type:"string"}],type:"auth.PasswordRecovery"},{id:"-1052959727",predicate:"inputMediaVenue",params:[{name:"geo_point",type:"InputGeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"},{name:"venue_type",type:"string"}],type:"InputMedia"},{id:"784356159",predicate:"messageMediaVenue",params:[{name:"geo",type:"GeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"},{name:"venue_type",type:"string"}],type:"MessageMedia"},{id:"-1551583367",predicate:"receivedNotifyMessage",params:[{name:"id",type:"int"},{name:"flags",type:"int"}],type:"ReceivedNotifyMessage"},{id:"1776236393",predicate:"chatInviteEmpty",params:[],type:"ExportedChatInvite"},{id:"-64092740",predicate:"chatInviteExported",params:[{name:"link",type:"string"}],type:"ExportedChatInvite"},{id:"1516793212",predicate:"chatInviteAlready",params:[{name:"chat",type:"Chat"}],type:"ChatInvite"},{id:"-613092008",predicate:"chatInvite",params:[{name:"flags",type:"#"},{name:"channel",type:"flags.0?true"},{name:"broadcast",type:"flags.1?true"},{name:"public",type:"flags.2?true"},{name:"megagroup",type:"flags.3?true"},{name:"title",type:"string"},{name:"photo",type:"ChatPhoto"},{name:"participants_count",type:"int"},{name:"participants",type:"flags.4?Vector<User>"}],type:"ChatInvite"},{id:"-123931160",predicate:"messageActionChatJoinedByLink",params:[{name:"inviter_id",type:"int"}],type:"MessageAction"},{id:"1757493555",predicate:"updateReadMessagesContents",params:[{name:"messages",type:"Vector<int>"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-4838507",predicate:"inputStickerSetEmpty",params:[],type:"InputStickerSet"},{id:"-1645763991",predicate:"inputStickerSetID",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputStickerSet"},{id:"-2044933984",predicate:"inputStickerSetShortName",params:[{name:"short_name",type:"string"}],type:"InputStickerSet"},{id:"-852477119",predicate:"stickerSet",params:[{name:"flags",type:"#"},{name:"installed",type:"flags.0?true"},{name:"archived",type:"flags.1?true"},{name:"official",type:"flags.2?true"},{name:"masks",type:"flags.3?true"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"title",type:"string"},{name:"short_name",type:"string"},{name:"count",type:"int"},{name:"hash",type:"int"}],type:"StickerSet"},{id:"-1240849242",predicate:"messages.stickerSet",params:[{name:"set",type:"StickerSet"},{name:"packs",type:"Vector<StickerPack>"},{name:"documents",type:"Vector<Document>"}],type:"messages.StickerSet"},{id:"773059779",predicate:"user",params:[{name:"flags",type:"#"},{name:"self",type:"flags.10?true"},{name:"contact",type:"flags.11?true"},{name:"mutual_contact",type:"flags.12?true"},{name:"deleted",type:"flags.13?true"},{name:"bot",type:"flags.14?true"},{name:"bot_chat_history",type:"flags.15?true"},{name:"bot_nochats",type:"flags.16?true"},{name:"verified",type:"flags.17?true"},{name:"restricted",type:"flags.18?true"},{name:"min",type:"flags.20?true"},{name:"bot_inline_geo",type:"flags.21?true"},{name:"id",type:"int"},{name:"access_hash",type:"flags.0?long"},{name:"first_name",type:"flags.1?string"},{name:"last_name",type:"flags.2?string"},{name:"username",type:"flags.3?string"},{name:"phone",type:"flags.4?string"},{name:"photo",type:"flags.5?UserProfilePhoto"},{name:"status",type:"flags.6?UserStatus"},{name:"bot_info_version",type:"flags.14?int"},{name:"restriction_reason",type:"flags.18?string"},{name:"bot_inline_placeholder",type:"flags.19?string"},{name:"lang_code",type:"flags.22?string"}],type:"User"},{id:"-1032140601",predicate:"botCommand",params:[{name:"command",type:"string"},{name:"description",type:"string"}],type:"BotCommand"},{id:"-1729618630",predicate:"botInfo",params:[{name:"user_id",type:"int"},{name:"description",type:"string"},{name:"commands",type:"Vector<BotCommand>"}],type:"BotInfo"},{id:"-1560655744",predicate:"keyboardButton",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"2002815875",predicate:"keyboardButtonRow",params:[{name:"buttons",type:"Vector<KeyboardButton>"}],type:"KeyboardButtonRow"},{id:"-1606526075",predicate:"replyKeyboardHide",params:[{name:"flags",type:"#"},{name:"selective",type:"flags.2?true"}],type:"ReplyMarkup"},{id:"-200242528",predicate:"replyKeyboardForceReply",params:[{name:"flags",type:"#"},{name:"single_use",type:"flags.1?true"},{name:"selective",type:"flags.2?true"}],type:"ReplyMarkup"},{id:"889353612",predicate:"replyKeyboardMarkup",params:[{name:"flags",type:"#"},{name:"resize",type:"flags.0?true"},{name:"single_use",type:"flags.1?true"},{name:"selective",type:"flags.2?true"},{name:"rows",type:"Vector<KeyboardButtonRow>"}],type:"ReplyMarkup"},{id:"2072935910",predicate:"inputPeerUser",params:[{name:"user_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputPeer"},{id:"-668391402",predicate:"inputUser",params:[{name:"user_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputUser"},{id:"-1148011883",predicate:"messageEntityUnknown",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"-100378723",predicate:"messageEntityMention",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1868782349",predicate:"messageEntityHashtag",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1827637959",predicate:"messageEntityBotCommand",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1859134776",predicate:"messageEntityUrl",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1692693954",predicate:"messageEntityEmail",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"-1117713463",predicate:"messageEntityBold",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"-2106619040",predicate:"messageEntityItalic",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"681706865",predicate:"messageEntityCode",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1938967520",predicate:"messageEntityPre",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"language",type:"string"}],type:"MessageEntity"},{id:"1990644519",predicate:"messageEntityTextUrl",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"url",type:"string"}],type:"MessageEntity"},{id:"301019932",predicate:"updateShortSentMessage",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"id",type:"int"},{name:"pts",type:"int"},{name:"pts_count",type:"int"},{name:"date",type:"int"},{name:"media",type:"flags.9?MessageMedia"},{name:"entities",type:"flags.7?Vector<MessageEntity>"}],type:"Updates"},{id:"-292807034",predicate:"inputChannelEmpty",params:[],type:"InputChannel"},{id:"-1343524562",predicate:"inputChannel",params:[{name:"channel_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputChannel"},{id:"-1109531342",predicate:"peerChannel",params:[{name:"channel_id",type:"int"}],type:"Peer"},{id:"548253432",predicate:"inputPeerChannel",params:[{name:"channel_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputPeer"},{id:"1158377749",predicate:"channel",params:[{name:"flags",type:"#"},{name:"creator",type:"flags.0?true"},{name:"left",type:"flags.2?true"},{name:"editor",type:"flags.3?true"},{name:"broadcast",type:"flags.5?true"},{name:"verified",type:"flags.7?true"},{name:"megagroup",type:"flags.8?true"},{name:"restricted",type:"flags.9?true"},{name:"democracy",type:"flags.10?true"},{name:"signatures",type:"flags.11?true"},{name:"min",type:"flags.12?true"},{name:"id",type:"int"},{name:"access_hash",type:"flags.13?long"},{name:"title",type:"string"},{name:"username",type:"flags.6?string"},{name:"photo",type:"ChatPhoto"},{name:"date",type:"int"},{name:"version",type:"int"},{name:"restriction_reason",type:"flags.9?string"},{name:"admin_rights",type:"flags.14?ChannelAdminRights"},{name:"banned_rights",type:"flags.15?ChannelBannedRights"},{name:"participants_count",type:"flags.17?int"}],type:"Chat"},{id:"681420594",predicate:"channelForbidden",params:[{name:"flags",type:"#"},{name:"broadcast",type:"flags.5?true"},{name:"megagroup",type:"flags.8?true"},{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"title",type:"string"},{name:"until_date",type:"flags.16?int"}],type:"Chat"},{id:"2131196633",predicate:"contacts.resolvedPeer",params:[{name:"peer",type:"Peer"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"contacts.ResolvedPeer"},{id:"1991201921",predicate:"channelFull",params:[{name:"flags",type:"#"},{name:"can_view_participants",type:"flags.3?true"},{name:"can_set_username",type:"flags.6?true"},{name:"can_set_stickers",type:"flags.7?true"},{name:"hidden_prehistory",type:"flags.10?true"},{name:"id",type:"int"},{name:"about",type:"string"},{name:"participants_count",type:"flags.0?int"},{name:"admins_count",type:"flags.1?int"},{name:"kicked_count",type:"flags.2?int"},{name:"banned_count",type:"flags.2?int"},{name:"read_inbox_max_id",type:"int"},{name:"read_outbox_max_id",type:"int"},{name:"unread_count",type:"int"},{name:"chat_photo",type:"Photo"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"exported_invite",type:"ExportedChatInvite"},{name:"bot_info",type:"Vector<BotInfo>"},{name:"migrated_from_chat_id",type:"flags.4?int"},{name:"migrated_from_max_id",type:"flags.4?int"},{name:"pinned_msg_id",type:"flags.5?int"},{name:"stickerset",type:"flags.8?StickerSet"},{name:"available_min_id",type:"flags.9?int"}],type:"ChatFull"},{id:"182649427",predicate:"messageRange",params:[{name:"min_id",type:"int"},{name:"max_id",type:"int"}],type:"MessageRange"},{id:"-1725551049",predicate:"messages.channelMessages",params:[{name:"flags",type:"#"},{name:"pts",type:"int"},{name:"count",type:"int"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Messages"},{id:"-1781355374",predicate:"messageActionChannelCreate",params:[{name:"title",type:"string"}],type:"MessageAction"},{id:"-352032773",predicate:"updateChannelTooLong",params:[{name:"flags",type:"#"},{name:"channel_id",type:"int"},{name:"pts",type:"flags.0?int"}],type:"Update"},{id:"-1227598250",predicate:"updateChannel",params:[{name:"channel_id",type:"int"}],type:"Update"},{id:"1656358105",predicate:"updateNewChannelMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"1108669311",predicate:"updateReadChannelInbox",params:[{name:"channel_id",type:"int"},{name:"max_id",type:"int"}],type:"Update"},{id:"-1015733815",predicate:"updateDeleteChannelMessages",params:[{name:"channel_id",type:"int"},{name:"messages",type:"Vector<int>"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-1734268085",predicate:"updateChannelMessageViews",params:[{name:"channel_id",type:"int"},{name:"id",type:"int"},{name:"views",type:"int"}],type:"Update"},{id:"1041346555",predicate:"updates.channelDifferenceEmpty",params:[{name:"flags",type:"#"},{name:"final",type:"flags.0?true"},{name:"pts",type:"int"},{name:"timeout",type:"flags.1?int"}],type:"updates.ChannelDifference"},{id:"1788705589",predicate:"updates.channelDifferenceTooLong",params:[{name:"flags",type:"#"},{name:"final",type:"flags.0?true"},{name:"pts",type:"int"},{name:"timeout",type:"flags.1?int"},{name:"top_message",type:"int"},{name:"read_inbox_max_id",type:"int"},{name:"read_outbox_max_id",type:"int"},{name:"unread_count",type:"int"},{name:"unread_mentions_count",type:"int"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"updates.ChannelDifference"},{id:"543450958",predicate:"updates.channelDifference",params:[{name:"flags",type:"#"},{name:"final",type:"flags.0?true"},{name:"pts",type:"int"},{name:"timeout",type:"flags.1?int"},{name:"new_messages",type:"Vector<Message>"},{name:"other_updates",type:"Vector<Update>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"updates.ChannelDifference"},{id:"-1798033689",predicate:"channelMessagesFilterEmpty",params:[],type:"ChannelMessagesFilter"},{id:"-847783593",predicate:"channelMessagesFilter",params:[{name:"flags",type:"#"},{name:"exclude_new_messages",type:"flags.1?true"},{name:"ranges",type:"Vector<MessageRange>"}],type:"ChannelMessagesFilter"},{id:"367766557",predicate:"channelParticipant",params:[{name:"user_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-1557620115",predicate:"channelParticipantSelf",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-471670279",predicate:"channelParticipantCreator",params:[{name:"user_id",type:"int"}],type:"ChannelParticipant"},{id:"-566281095",predicate:"channelParticipantsRecent",params:[],type:"ChannelParticipantsFilter"},{id:"-1268741783",predicate:"channelParticipantsAdmins",params:[],type:"ChannelParticipantsFilter"},{id:"-1548400251",predicate:"channelParticipantsKicked",params:[{name:"q",type:"string"}],type:"ChannelParticipantsFilter"},{id:"-177282392",predicate:"channels.channelParticipants",params:[{name:"count",type:"int"},{name:"participants",type:"Vector<ChannelParticipant>"},{name:"users",type:"Vector<User>"}],type:"channels.ChannelParticipants"},{id:"-791039645",predicate:"channels.channelParticipant",params:[{name:"participant",type:"ChannelParticipant"},{name:"users",type:"Vector<User>"}],type:"channels.ChannelParticipant"},{id:"-636267638",predicate:"chatParticipantCreator",params:[{name:"user_id",type:"int"}],type:"ChatParticipant"},{id:"-489233354",predicate:"chatParticipantAdmin",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChatParticipant"},{id:"1855224129",predicate:"updateChatAdmins",params:[{name:"chat_id",type:"int"},{name:"enabled",type:"Bool"},{name:"version",type:"int"}],type:"Update"},{id:"-1232070311",predicate:"updateChatParticipantAdmin",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"is_admin",type:"Bool"},{name:"version",type:"int"}],type:"Update"},{id:"1371385889",predicate:"messageActionChatMigrateTo",params:[{name:"channel_id",type:"int"}],type:"MessageAction"},{id:"-1336546578",predicate:"messageActionChannelMigrateFrom",params:[{name:"title",type:"string"},{name:"chat_id",type:"int"}],type:"MessageAction"},{id:"-1328445861",predicate:"channelParticipantsBots",params:[],type:"ChannelParticipantsFilter"},{id:"-236044656",predicate:"help.termsOfService",params:[{name:"text",type:"string"}],type:"help.TermsOfService"},{id:"1753886890",predicate:"updateNewStickerSet",params:[{name:"stickerset",type:"messages.StickerSet"}],type:"Update"},{id:"196268545",predicate:"updateStickerSetsOrder",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"order",type:"Vector<long>"}],type:"Update"},{id:"1135492588",predicate:"updateStickerSets",params:[],type:"Update"},{id:"372165663",predicate:"foundGif",params:[{name:"url",type:"string"},{name:"thumb_url",type:"string"},{name:"content_url",type:"string"},{name:"content_type",type:"string"},{name:"w",type:"int"},{name:"h",type:"int"}],type:"FoundGif"},{id:"-1670052855",predicate:"foundGifCached",params:[{name:"url",type:"string"},{name:"photo",type:"Photo"},{name:"document",type:"Document"}],type:"FoundGif"},{id:"1212395773",predicate:"inputMediaGifExternal",params:[{name:"url",type:"string"},{name:"q",type:"string"}],type:"InputMedia"},{id:"1158290442",predicate:"messages.foundGifs",params:[{name:"next_offset",type:"int"},{name:"results",type:"Vector<FoundGif>"}],type:"messages.FoundGifs"},{id:"-402498398",predicate:"messages.savedGifsNotModified",params:[],type:"messages.SavedGifs"},{id:"772213157",predicate:"messages.savedGifs",params:[{name:"hash",type:"int"},{name:"gifs",type:"Vector<Document>"}],type:"messages.SavedGifs"},{id:"-1821035490",predicate:"updateSavedGifs",params:[],type:"Update"},{id:"691006739",predicate:"inputBotInlineMessageMediaAuto",params:[{name:"flags",type:"#"},{name:"caption",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"1036876423",predicate:"inputBotInlineMessageText",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.0?true"},{name:"message",type:"string"},{name:"entities",type:"flags.1?Vector<MessageEntity>"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"750510426",predicate:"inputBotInlineResult",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"title",type:"flags.1?string"},{name:"description",type:"flags.2?string"},{name:"url",type:"flags.3?string"},{name:"thumb_url",type:"flags.4?string"},{name:"content_url",type:"flags.5?string"},{name:"content_type",type:"flags.5?string"},{name:"w",type:"flags.6?int"},{name:"h",type:"flags.6?int"},{name:"duration",type:"flags.7?int"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"175419739",predicate:"botInlineMessageMediaAuto",params:[{name:"flags",type:"#"},{name:"caption",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"-1937807902",predicate:"botInlineMessageText",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.0?true"},{name:"message",type:"string"},{name:"entities",type:"flags.1?Vector<MessageEntity>"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"-1679053127",predicate:"botInlineResult",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"title",type:"flags.1?string"},{name:"description",type:"flags.2?string"},{name:"url",type:"flags.3?string"},{name:"thumb_url",type:"flags.4?string"},{name:"content_url",type:"flags.5?string"},{name:"content_type",type:"flags.5?string"},{name:"w",type:"flags.6?int"},{name:"h",type:"flags.6?int"},{name:"duration",type:"flags.7?int"},{name:"send_message",type:"BotInlineMessage"}],type:"BotInlineResult"},{id:"-1803769784",predicate:"messages.botResults",params:[{name:"flags",type:"#"},{name:"gallery",type:"flags.0?true"},{name:"query_id",type:"long"},{name:"next_offset",type:"flags.1?string"},{name:"switch_pm",type:"flags.2?InlineBotSwitchPM"},{name:"results",type:"Vector<BotInlineResult>"},{name:"cache_time",type:"int"},{name:"users",type:"Vector<User>"}],type:"messages.BotResults"},{id:"1417832080",predicate:"updateBotInlineQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"query",type:"string"},{name:"geo",type:"flags.0?GeoPoint"},{name:"offset",type:"string"}],type:"Update"},{id:"239663460",predicate:"updateBotInlineSend",params:[{name:"flags",type:"#"},{name:"user_id",type:"int"},{name:"query",type:"string"},{name:"geo",type:"flags.0?GeoPoint"},{name:"id",type:"string"},{name:"msg_id",type:"flags.1?InputBotInlineMessageID"}],type:"Update"},{id:"1358283666",predicate:"inputMessagesFilterVoice",params:[],type:"MessagesFilter"},{id:"928101534",predicate:"inputMessagesFilterMusic",params:[],type:"MessagesFilter"},{id:"-1107622874",predicate:"inputPrivacyKeyChatInvite",params:[],type:"InputPrivacyKey"},{id:"1343122938",predicate:"privacyKeyChatInvite",params:[],type:"PrivacyKey"},{id:"1571494644",predicate:"exportedMessageLink",params:[{name:"link",type:"string"},{name:"html",type:"string"}],type:"ExportedMessageLink"},{id:"1436466797",predicate:"messageFwdHeader",params:[{name:"flags",type:"#"},{name:"from_id",type:"flags.0?int"},{name:"date",type:"int"},{name:"channel_id",type:"flags.1?int"},{name:"channel_post",type:"flags.2?int"},{name:"post_author",type:"flags.3?string"},{name:"saved_from_peer",type:"flags.4?Peer"},{name:"saved_from_msg_id",type:"flags.4?int"}],type:"MessageFwdHeader"},{id:"457133559",predicate:"updateEditChannelMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-1738988427",predicate:"updateChannelPinnedMessage",params:[{name:"channel_id",type:"int"},{name:"id",type:"int"}],type:"Update"},{id:"-1799538451",predicate:"messageActionPinMessage",params:[],type:"MessageAction"},{id:"1923290508",predicate:"auth.codeTypeSms",params:[],type:"auth.CodeType"},{id:"1948046307",predicate:"auth.codeTypeCall",params:[],type:"auth.CodeType"},{id:"577556219",predicate:"auth.codeTypeFlashCall",params:[],type:"auth.CodeType"},{id:"1035688326",predicate:"auth.sentCodeTypeApp",params:[{name:"length",type:"int"}],type:"auth.SentCodeType"},{id:"-1073693790",predicate:"auth.sentCodeTypeSms",params:[{name:"length",type:"int"}],type:"auth.SentCodeType"},{id:"1398007207",predicate:"auth.sentCodeTypeCall",params:[{name:"length",type:"int"}],type:"auth.SentCodeType"},{id:"-1425815847",predicate:"auth.sentCodeTypeFlashCall",params:[{name:"pattern",type:"string"}],type:"auth.SentCodeType"},{id:"629866245",predicate:"keyboardButtonUrl",params:[{name:"text",type:"string"},{name:"url",type:"string"}],type:"KeyboardButton"},{id:"1748655686",predicate:"keyboardButtonCallback",params:[{name:"text",type:"string"},{name:"data",type:"bytes"}],type:"KeyboardButton"},{id:"-1318425559",predicate:"keyboardButtonRequestPhone",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"-59151553",predicate:"keyboardButtonRequestGeoLocation",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"90744648",predicate:"keyboardButtonSwitchInline",params:[{name:"flags",type:"#"},{name:"same_peer",type:"flags.0?true"},{name:"text",type:"string"},{name:"query",type:"string"}],type:"KeyboardButton"},{id:"1218642516",predicate:"replyInlineMarkup",params:[{name:"rows",type:"Vector<KeyboardButtonRow>"}],type:"ReplyMarkup"},{id:"911761060",predicate:"messages.botCallbackAnswer",
params:[{name:"flags",type:"#"},{name:"alert",type:"flags.1?true"},{name:"has_url",type:"flags.3?true"},{name:"native_ui",type:"flags.4?true"},{name:"message",type:"flags.0?string"},{name:"url",type:"flags.2?string"},{name:"cache_time",type:"int"}],type:"messages.BotCallbackAnswer"},{id:"-415938591",predicate:"updateBotCallbackQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"peer",type:"Peer"},{name:"msg_id",type:"int"},{name:"chat_instance",type:"long"},{name:"data",type:"flags.0?bytes"},{name:"game_short_name",type:"flags.1?string"}],type:"Update"},{id:"649453030",predicate:"messages.messageEditData",params:[{name:"flags",type:"#"},{name:"caption",type:"flags.0?true"}],type:"messages.MessageEditData"},{id:"-469536605",predicate:"updateEditMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-1045340827",predicate:"inputBotInlineMessageMediaGeo",params:[{name:"flags",type:"#"},{name:"geo_point",type:"InputGeoPoint"},{name:"period",type:"int"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"-1431327288",predicate:"inputBotInlineMessageMediaVenue",params:[{name:"flags",type:"#"},{name:"geo_point",type:"InputGeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"766443943",predicate:"inputBotInlineMessageMediaContact",params:[{name:"flags",type:"#"},{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"-1222451611",predicate:"botInlineMessageMediaGeo",params:[{name:"flags",type:"#"},{name:"geo",type:"GeoPoint"},{name:"period",type:"int"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"1130767150",predicate:"botInlineMessageMediaVenue",params:[{name:"flags",type:"#"},{name:"geo",type:"GeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"904770772",predicate:"botInlineMessageMediaContact",params:[{name:"flags",type:"#"},{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"-1462213465",predicate:"inputBotInlineResultPhoto",params:[{name:"id",type:"string"},{name:"type",type:"string"},{name:"photo",type:"InputPhoto"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"-459324",predicate:"inputBotInlineResultDocument",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"title",type:"flags.1?string"},{name:"description",type:"flags.2?string"},{name:"document",type:"InputDocument"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"400266251",predicate:"botInlineMediaResult",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"photo",type:"flags.0?Photo"},{name:"document",type:"flags.1?Document"},{name:"title",type:"flags.2?string"},{name:"description",type:"flags.3?string"},{name:"send_message",type:"BotInlineMessage"}],type:"BotInlineResult"},{id:"-1995686519",predicate:"inputBotInlineMessageID",params:[{name:"dc_id",type:"int"},{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputBotInlineMessageID"},{id:"-103646630",predicate:"updateInlineBotCallbackQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"msg_id",type:"InputBotInlineMessageID"},{name:"chat_instance",type:"long"},{name:"data",type:"flags.0?bytes"},{name:"game_short_name",type:"flags.1?string"}],type:"Update"},{id:"1008755359",predicate:"inlineBotSwitchPM",params:[{name:"text",type:"string"},{name:"start_param",type:"string"}],type:"InlineBotSwitchPM"},{id:"863093588",predicate:"messages.peerDialogs",params:[{name:"dialogs",type:"Vector<Dialog>"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"state",type:"updates.State"}],type:"messages.PeerDialogs"},{id:"-305282981",predicate:"topPeer",params:[{name:"peer",type:"Peer"},{name:"rating",type:"double"}],type:"TopPeer"},{id:"-1419371685",predicate:"topPeerCategoryBotsPM",params:[],type:"TopPeerCategory"},{id:"344356834",predicate:"topPeerCategoryBotsInline",params:[],type:"TopPeerCategory"},{id:"104314861",predicate:"topPeerCategoryCorrespondents",params:[],type:"TopPeerCategory"},{id:"-1122524854",predicate:"topPeerCategoryGroups",params:[],type:"TopPeerCategory"},{id:"371037736",predicate:"topPeerCategoryChannels",params:[],type:"TopPeerCategory"},{id:"-75283823",predicate:"topPeerCategoryPeers",params:[{name:"category",type:"TopPeerCategory"},{name:"count",type:"int"},{name:"peers",type:"Vector<TopPeer>"}],type:"TopPeerCategoryPeers"},{id:"-567906571",predicate:"contacts.topPeersNotModified",params:[],type:"contacts.TopPeers"},{id:"1891070632",predicate:"contacts.topPeers",params:[{name:"categories",type:"Vector<TopPeerCategoryPeers>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"contacts.TopPeers"},{id:"892193368",predicate:"messageEntityMentionName",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"user_id",type:"int"}],type:"MessageEntity"},{id:"546203849",predicate:"inputMessageEntityMentionName",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"user_id",type:"InputUser"}],type:"MessageEntity"},{id:"975236280",predicate:"inputMessagesFilterChatPhotos",params:[],type:"MessagesFilter"},{id:"634833351",predicate:"updateReadChannelOutbox",params:[{name:"channel_id",type:"int"},{name:"max_id",type:"int"}],type:"Update"},{id:"-299124375",predicate:"updateDraftMessage",params:[{name:"peer",type:"Peer"},{name:"draft",type:"DraftMessage"}],type:"Update"},{id:"-1169445179",predicate:"draftMessageEmpty",params:[],type:"DraftMessage"},{id:"-40996577",predicate:"draftMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"message",type:"string"},{name:"entities",type:"flags.3?Vector<MessageEntity>"},{name:"date",type:"int"}],type:"DraftMessage"},{id:"-1615153660",predicate:"messageActionHistoryClear",params:[],type:"MessageAction"},{id:"82699215",predicate:"messages.featuredStickersNotModified",params:[],type:"messages.FeaturedStickers"},{id:"-123893531",predicate:"messages.featuredStickers",params:[{name:"hash",type:"int"},{name:"sets",type:"Vector<StickerSetCovered>"},{name:"unread",type:"Vector<long>"}],type:"messages.FeaturedStickers"},{id:"1461528386",predicate:"updateReadFeaturedStickers",params:[],type:"Update"},{id:"186120336",predicate:"messages.recentStickersNotModified",params:[],type:"messages.RecentStickers"},{id:"1558317424",predicate:"messages.recentStickers",params:[{name:"hash",type:"int"},{name:"stickers",type:"Vector<Document>"}],type:"messages.RecentStickers"},{id:"-1706939360",predicate:"updateRecentStickers",params:[],type:"Update"},{id:"1338747336",predicate:"messages.archivedStickers",params:[{name:"count",type:"int"},{name:"sets",type:"Vector<StickerSetCovered>"}],type:"messages.ArchivedStickers"},{id:"946083368",predicate:"messages.stickerSetInstallResultSuccess",params:[],type:"messages.StickerSetInstallResult"},{id:"904138920",predicate:"messages.stickerSetInstallResultArchive",params:[{name:"sets",type:"Vector<StickerSetCovered>"}],type:"messages.StickerSetInstallResult"},{id:"1678812626",predicate:"stickerSetCovered",params:[{name:"set",type:"StickerSet"},{name:"cover",type:"Document"}],type:"StickerSetCovered"},{id:"-1574314746",predicate:"updateConfig",params:[],type:"Update"},{id:"861169551",predicate:"updatePtsChanged",params:[],type:"Update"},{id:"153267905",predicate:"inputMediaPhotoExternal",params:[{name:"flags",type:"#"},{name:"url",type:"string"},{name:"caption",type:"string"},{name:"ttl_seconds",type:"flags.0?int"}],type:"InputMedia"},{id:"-1225309387",predicate:"inputMediaDocumentExternal",params:[{name:"flags",type:"#"},{name:"url",type:"string"},{name:"caption",type:"string"},{name:"ttl_seconds",type:"flags.0?int"}],type:"InputMedia"},{id:"872932635",predicate:"stickerSetMultiCovered",params:[{name:"set",type:"StickerSet"},{name:"covers",type:"Vector<Document>"}],type:"StickerSetCovered"},{id:"-1361650766",predicate:"maskCoords",params:[{name:"n",type:"int"},{name:"x",type:"double"},{name:"y",type:"double"},{name:"zoom",type:"double"}],type:"MaskCoords"},{id:"-1744710921",predicate:"documentAttributeHasStickers",params:[],type:"DocumentAttribute"},{id:"1251549527",predicate:"inputStickeredMediaPhoto",params:[{name:"id",type:"InputPhoto"}],type:"InputStickeredMedia"},{id:"70813275",predicate:"inputStickeredMediaDocument",params:[{name:"id",type:"InputDocument"}],type:"InputStickeredMedia"},{id:"-1107729093",predicate:"game",params:[{name:"flags",type:"#"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"short_name",type:"string"},{name:"title",type:"string"},{name:"description",type:"string"},{name:"photo",type:"Photo"},{name:"document",type:"flags.0?Document"}],type:"Game"},{id:"1336154098",predicate:"inputBotInlineResultGame",params:[{name:"id",type:"string"},{name:"short_name",type:"string"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"1262639204",predicate:"inputBotInlineMessageGame",params:[{name:"flags",type:"#"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"-38694904",predicate:"messageMediaGame",params:[{name:"game",type:"Game"}],type:"MessageMedia"},{id:"-750828557",predicate:"inputMediaGame",params:[{name:"id",type:"InputGame"}],type:"InputMedia"},{id:"53231223",predicate:"inputGameID",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputGame"},{id:"-1020139510",predicate:"inputGameShortName",params:[{name:"bot_id",type:"InputUser"},{name:"short_name",type:"string"}],type:"InputGame"},{id:"1358175439",predicate:"keyboardButtonGame",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"-1834538890",predicate:"messageActionGameScore",params:[{name:"game_id",type:"long"},{name:"score",type:"int"}],type:"MessageAction"},{id:"1493171408",predicate:"highScore",params:[{name:"pos",type:"int"},{name:"user_id",type:"int"},{name:"score",type:"int"}],type:"HighScore"},{id:"-1707344487",predicate:"messages.highScores",params:[{name:"scores",type:"Vector<HighScore>"},{name:"users",type:"Vector<User>"}],type:"messages.HighScores"},{id:"1258196845",predicate:"updates.differenceTooLong",params:[{name:"pts",type:"int"}],type:"updates.Difference"},{id:"1081547008",predicate:"updateChannelWebPage",params:[{name:"channel_id",type:"int"},{name:"webpage",type:"WebPage"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-1663561404",predicate:"messages.chatsSlice",params:[{name:"count",type:"int"},{name:"chats",type:"Vector<Chat>"}],type:"messages.Chats"},{id:"-599948721",predicate:"textEmpty",params:[],type:"RichText"},{id:"1950782688",predicate:"textPlain",params:[{name:"text",type:"string"}],type:"RichText"},{id:"1730456516",predicate:"textBold",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"-653089380",predicate:"textItalic",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"-1054465340",predicate:"textUnderline",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"-1678197867",predicate:"textStrike",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"1816074681",predicate:"textFixed",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"1009288385",predicate:"textUrl",params:[{name:"text",type:"RichText"},{name:"url",type:"string"},{name:"webpage_id",type:"long"}],type:"RichText"},{id:"-564523562",predicate:"textEmail",params:[{name:"text",type:"RichText"},{name:"email",type:"string"}],type:"RichText"},{id:"2120376535",predicate:"textConcat",params:[{name:"texts",type:"Vector<RichText>"}],type:"RichText"},{id:"324435594",predicate:"pageBlockUnsupported",params:[],type:"PageBlock"},{id:"1890305021",predicate:"pageBlockTitle",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-1879401953",predicate:"pageBlockSubtitle",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-1162877472",predicate:"pageBlockAuthorDate",params:[{name:"author",type:"RichText"},{name:"published_date",type:"int"}],type:"PageBlock"},{id:"-1076861716",predicate:"pageBlockHeader",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-248793375",predicate:"pageBlockSubheader",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"1182402406",predicate:"pageBlockParagraph",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-1066346178",predicate:"pageBlockPreformatted",params:[{name:"text",type:"RichText"},{name:"language",type:"string"}],type:"PageBlock"},{id:"1216809369",predicate:"pageBlockFooter",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-618614392",predicate:"pageBlockDivider",params:[],type:"PageBlock"},{id:"-837994576",predicate:"pageBlockAnchor",params:[{name:"name",type:"string"}],type:"PageBlock"},{id:"978896884",predicate:"pageBlockList",params:[{name:"ordered",type:"Bool"},{name:"items",type:"Vector<RichText>"}],type:"PageBlock"},{id:"641563686",predicate:"pageBlockBlockquote",params:[{name:"text",type:"RichText"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"1329878739",predicate:"pageBlockPullquote",params:[{name:"text",type:"RichText"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"-372860542",predicate:"pageBlockPhoto",params:[{name:"photo_id",type:"long"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"-640214938",predicate:"pageBlockVideo",params:[{name:"flags",type:"#"},{name:"autoplay",type:"flags.0?true"},{name:"loop",type:"flags.1?true"},{name:"video_id",type:"long"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"972174080",predicate:"pageBlockCover",params:[{name:"cover",type:"PageBlock"}],type:"PageBlock"},{id:"-840826671",predicate:"pageBlockEmbed",params:[{name:"flags",type:"#"},{name:"full_width",type:"flags.0?true"},{name:"allow_scrolling",type:"flags.3?true"},{name:"url",type:"flags.1?string"},{name:"html",type:"flags.2?string"},{name:"poster_photo_id",type:"flags.4?long"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"690781161",predicate:"pageBlockEmbedPost",params:[{name:"url",type:"string"},{name:"webpage_id",type:"long"},{name:"author_photo_id",type:"long"},{name:"author",type:"string"},{name:"date",type:"int"},{name:"blocks",type:"Vector<PageBlock>"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"145955919",predicate:"pageBlockCollage",params:[{name:"items",type:"Vector<PageBlock>"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"319588707",predicate:"pageBlockSlideshow",params:[{name:"items",type:"Vector<PageBlock>"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"-1908433218",predicate:"pagePart",params:[{name:"blocks",type:"Vector<PageBlock>"},{name:"photos",type:"Vector<Photo>"},{name:"documents",type:"Vector<Document>"}],type:"Page"},{id:"1433323434",predicate:"pageFull",params:[{name:"blocks",type:"Vector<PageBlock>"},{name:"photos",type:"Vector<Photo>"},{name:"documents",type:"Vector<Document>"}],type:"Page"},{id:"-2054908813",predicate:"webPageNotModified",params:[],type:"WebPage"},{id:"-88417185",predicate:"inputPrivacyKeyPhoneCall",params:[],type:"InputPrivacyKey"},{id:"1030105979",predicate:"privacyKeyPhoneCall",params:[],type:"PrivacyKey"},{id:"-580219064",predicate:"sendMessageGamePlayAction",params:[],type:"SendMessageAction"},{id:"-2048646399",predicate:"phoneCallDiscardReasonMissed",params:[],type:"PhoneCallDiscardReason"},{id:"-527056480",predicate:"phoneCallDiscardReasonDisconnect",params:[],type:"PhoneCallDiscardReason"},{id:"1471006352",predicate:"phoneCallDiscardReasonHangup",params:[],type:"PhoneCallDiscardReason"},{id:"-84416311",predicate:"phoneCallDiscardReasonBusy",params:[],type:"PhoneCallDiscardReason"},{id:"-686710068",predicate:"updateDialogPinned",params:[{name:"flags",type:"#"},{name:"pinned",type:"flags.0?true"},{name:"peer",type:"Peer"}],type:"Update"},{id:"-657787251",predicate:"updatePinnedDialogs",params:[{name:"flags",type:"#"},{name:"order",type:"flags.0?Vector<Peer>"}],type:"Update"},{id:"2104790276",predicate:"dataJSON",params:[{name:"data",type:"string"}],type:"DataJSON"},{id:"-2095595325",predicate:"updateBotWebhookJSON",params:[{name:"data",type:"DataJSON"}],type:"Update"},{id:"-1684914010",predicate:"updateBotWebhookJSONQuery",params:[{name:"query_id",type:"long"},{name:"data",type:"DataJSON"},{name:"timeout",type:"int"}],type:"Update"},{id:"-886477832",predicate:"labeledPrice",params:[{name:"label",type:"string"},{name:"amount",type:"long"}],type:"LabeledPrice"},{id:"-1022713000",predicate:"invoice",params:[{name:"flags",type:"#"},{name:"test",type:"flags.0?true"},{name:"name_requested",type:"flags.1?true"},{name:"phone_requested",type:"flags.2?true"},{name:"email_requested",type:"flags.3?true"},{name:"shipping_address_requested",type:"flags.4?true"},{name:"flexible",type:"flags.5?true"},{name:"phone_to_provider",type:"flags.6?true"},{name:"email_to_provider",type:"flags.7?true"},{name:"currency",type:"string"},{name:"prices",type:"Vector<LabeledPrice>"}],type:"Invoice"},{id:"-186607933",predicate:"inputMediaInvoice",params:[{name:"flags",type:"#"},{name:"title",type:"string"},{name:"description",type:"string"},{name:"photo",type:"flags.0?InputWebDocument"},{name:"invoice",type:"Invoice"},{name:"payload",type:"bytes"},{name:"provider",type:"string"},{name:"provider_data",type:"DataJSON"},{name:"start_param",type:"string"}],type:"InputMedia"},{id:"-368917890",predicate:"paymentCharge",params:[{name:"id",type:"string"},{name:"provider_charge_id",type:"string"}],type:"PaymentCharge"},{id:"-1892568281",predicate:"messageActionPaymentSentMe",params:[{name:"flags",type:"#"},{name:"currency",type:"string"},{name:"total_amount",type:"long"},{name:"payload",type:"bytes"},{name:"info",type:"flags.0?PaymentRequestedInfo"},{name:"shipping_option_id",type:"flags.1?string"},{name:"charge",type:"PaymentCharge"}],type:"MessageAction"},{id:"-2074799289",predicate:"messageMediaInvoice",params:[{name:"flags",type:"#"},{name:"shipping_address_requested",type:"flags.1?true"},{name:"test",type:"flags.3?true"},{name:"title",type:"string"},{name:"description",type:"string"},{name:"photo",type:"flags.0?WebDocument"},{name:"receipt_msg_id",type:"flags.2?int"},{name:"currency",type:"string"},{name:"total_amount",type:"long"},{name:"start_param",type:"string"}],type:"MessageMedia"},{id:"512535275",predicate:"postAddress",params:[{name:"street_line1",type:"string"},{name:"street_line2",type:"string"},{name:"city",type:"string"},{name:"state",type:"string"},{name:"country_iso2",type:"string"},{name:"post_code",type:"string"}],type:"PostAddress"},{id:"-1868808300",predicate:"paymentRequestedInfo",params:[{name:"flags",type:"#"},{name:"name",type:"flags.0?string"},{name:"phone",type:"flags.1?string"},{name:"email",type:"flags.2?string"},{name:"shipping_address",type:"flags.3?PostAddress"}],type:"PaymentRequestedInfo"},{id:"-1344716869",predicate:"keyboardButtonBuy",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"1080663248",predicate:"messageActionPaymentSent",params:[{name:"currency",type:"string"},{name:"total_amount",type:"long"}],type:"MessageAction"},{id:"-842892769",predicate:"paymentSavedCredentialsCard",params:[{name:"id",type:"string"},{name:"title",type:"string"}],type:"PaymentSavedCredentials"},{id:"-971322408",predicate:"webDocument",params:[{name:"url",type:"string"},{name:"access_hash",type:"long"},{name:"size",type:"int"},{name:"mime_type",type:"string"},{name:"attributes",type:"Vector<DocumentAttribute>"},{name:"dc_id",type:"int"}],type:"WebDocument"},{id:"-1678949555",predicate:"inputWebDocument",params:[{name:"url",type:"string"},{name:"size",type:"int"},{name:"mime_type",type:"string"},{name:"attributes",type:"Vector<DocumentAttribute>"}],type:"InputWebDocument"},{id:"-1036396922",predicate:"inputWebFileLocation",params:[{name:"url",type:"string"},{name:"access_hash",type:"long"}],type:"InputWebFileLocation"},{id:"568808380",predicate:"upload.webFile",params:[{name:"size",type:"int"},{name:"mime_type",type:"string"},{name:"file_type",type:"storage.FileType"},{name:"mtime",type:"int"},{name:"bytes",type:"bytes"}],type:"upload.WebFile"},{id:"1062645411",predicate:"payments.paymentForm",params:[{name:"flags",type:"#"},{name:"can_save_credentials",type:"flags.2?true"},{name:"password_missing",type:"flags.3?true"},{name:"bot_id",type:"int"},{name:"invoice",type:"Invoice"},{name:"provider_id",type:"int"},{name:"url",type:"string"},{name:"native_provider",type:"flags.4?string"},{name:"native_params",type:"flags.4?DataJSON"},{name:"saved_info",type:"flags.0?PaymentRequestedInfo"},{name:"saved_credentials",type:"flags.1?PaymentSavedCredentials"},{name:"users",type:"Vector<User>"}],type:"payments.PaymentForm"},{id:"-784000893",predicate:"payments.validatedRequestedInfo",params:[{name:"flags",type:"#"},{name:"id",type:"flags.0?string"},{name:"shipping_options",type:"flags.1?Vector<ShippingOption>"}],type:"payments.ValidatedRequestedInfo"},{id:"1314881805",predicate:"payments.paymentResult",params:[{name:"updates",type:"Updates"}],type:"payments.PaymentResult"},{id:"1800845601",predicate:"payments.paymentVerficationNeeded",params:[{name:"url",type:"string"}],type:"payments.PaymentResult"},{id:"1342771681",predicate:"payments.paymentReceipt",params:[{name:"flags",type:"#"},{name:"date",type:"int"},{name:"bot_id",type:"int"},{name:"invoice",type:"Invoice"},{name:"provider_id",type:"int"},{name:"info",type:"flags.0?PaymentRequestedInfo"},{name:"shipping",type:"flags.1?ShippingOption"},{name:"currency",type:"string"},{name:"total_amount",type:"long"},{name:"credentials_title",type:"string"},{name:"users",type:"Vector<User>"}],type:"payments.PaymentReceipt"},{id:"-74456004",predicate:"payments.savedInfo",params:[{name:"flags",type:"#"},{name:"has_saved_credentials",type:"flags.1?true"},{name:"saved_info",type:"flags.0?PaymentRequestedInfo"}],type:"payments.SavedInfo"},{id:"-1056001329",predicate:"inputPaymentCredentialsSaved",params:[{name:"id",type:"string"},{name:"tmp_password",type:"bytes"}],type:"InputPaymentCredentials"},{id:"873977640",predicate:"inputPaymentCredentials",params:[{name:"flags",type:"#"},{name:"save",type:"flags.0?true"},{name:"data",type:"DataJSON"}],type:"InputPaymentCredentials"},{id:"-614138572",predicate:"account.tmpPassword",params:[{name:"tmp_password",type:"bytes"},{name:"valid_until",type:"int"}],type:"account.TmpPassword"},{id:"-1239335713",predicate:"shippingOption",params:[{name:"id",type:"string"},{name:"title",type:"string"},{name:"prices",type:"Vector<LabeledPrice>"}],type:"ShippingOption"},{id:"-523384512",predicate:"updateBotShippingQuery",params:[{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"payload",type:"bytes"},{name:"shipping_address",type:"PostAddress"}],type:"Update"},{id:"1563376297",predicate:"updateBotPrecheckoutQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"payload",type:"bytes"},{name:"info",type:"flags.0?PaymentRequestedInfo"},{name:"shipping_option_id",type:"flags.1?string"},{name:"currency",type:"string"},{name:"total_amount",type:"long"}],type:"Update"},{id:"-6249322",predicate:"inputStickerSetItem",params:[{name:"flags",type:"#"},{name:"document",type:"InputDocument"},{name:"emoji",type:"string"},{name:"mask_coords",type:"flags.0?MaskCoords"}],type:"InputStickerSetItem"},{id:"-1425052898",predicate:"updatePhoneCall",params:[{name:"phone_call",type:"PhoneCall"}],type:"Update"},{id:"506920429",predicate:"inputPhoneCall",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputPhoneCall"},{id:"1399245077",predicate:"phoneCallEmpty",params:[{name:"id",type:"long"}],type:"PhoneCall"},{id:"462375633",predicate:"phoneCallWaiting",params:[{name:"flags",type:"#"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"protocol",type:"PhoneCallProtocol"},{name:"receive_date",type:"flags.0?int"}],type:"PhoneCall"},{id:"-2089411356",predicate:"phoneCallRequested",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a_hash",type:"bytes"},{name:"protocol",type:"PhoneCallProtocol"}],type:"PhoneCall"},{id:"1828732223",predicate:"phoneCallAccepted",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_b",type:"bytes"},{name:"protocol",type:"PhoneCallProtocol"}],type:"PhoneCall"},{id:"-1660057",predicate:"phoneCall",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a_or_b",type:"bytes"},{name:"key_fingerprint",type:"long"},{name:"protocol",type:"PhoneCallProtocol"},{name:"connection",type:"PhoneConnection"},{name:"alternative_connections",type:"Vector<PhoneConnection>"},{name:"start_date",type:"int"}],type:"PhoneCall"},{id:"1355435489",predicate:"phoneCallDiscarded",params:[{name:"flags",type:"#"},{name:"need_rating",type:"flags.2?true"},{name:"need_debug",type:"flags.3?true"},{name:"id",type:"long"},{name:"reason",type:"flags.0?PhoneCallDiscardReason"},{name:"duration",type:"flags.1?int"}],type:"PhoneCall"},{id:"-1655957568",predicate:"phoneConnection",params:[{name:"id",type:"long"},{name:"ip",type:"string"},{name:"ipv6",type:"string"},{name:"port",type:"int"},{name:"peer_tag",type:"bytes"}],type:"PhoneConnection"},{id:"-1564789301",predicate:"phoneCallProtocol",params:[{name:"flags",type:"#"},{name:"udp_p2p",type:"flags.0?true"},{name:"udp_reflector",type:"flags.1?true"},{name:"min_layer",type:"int"},{name:"max_layer",type:"int"}],type:"PhoneCallProtocol"},{id:"-326966976",predicate:"phone.phoneCall",params:[{name:"phone_call",type:"PhoneCall"},{name:"users",type:"Vector<User>"}],type:"phone.PhoneCall"},{id:"-2134272152",predicate:"inputMessagesFilterPhoneCalls",params:[{name:"flags",type:"#"},{name:"missed",type:"flags.0?true"}],type:"MessagesFilter"},{id:"-2132731265",predicate:"messageActionPhoneCall",params:[{name:"flags",type:"#"},{name:"call_id",type:"long"},{name:"reason",type:"flags.0?PhoneCallDiscardReason"},{name:"duration",type:"flags.1?int"}],type:"MessageAction"},{id:"2054952868",predicate:"inputMessagesFilterRoundVoice",params:[],type:"MessagesFilter"},{id:"-1253451181",predicate:"inputMessagesFilterRoundVideo",params:[],type:"MessagesFilter"},{id:"-1997373508",predicate:"sendMessageRecordRoundAction",params:[],type:"SendMessageAction"},{id:"608050278",predicate:"sendMessageUploadRoundAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-363659686",predicate:"upload.fileCdnRedirect",params:[{name:"dc_id",type:"int"},{name:"file_token",type:"bytes"},{name:"encryption_key",type:"bytes"},{name:"encryption_iv",type:"bytes"},{name:"cdn_file_hashes",type:"Vector<CdnFileHash>"}],type:"upload.File"},{id:"-290921362",predicate:"upload.cdnFileReuploadNeeded",params:[{name:"request_token",type:"bytes"}],type:"upload.CdnFile"},{id:"-1449145777",predicate:"upload.cdnFile",params:[{name:"bytes",type:"bytes"}],type:"upload.CdnFile"},{id:"-914167110",predicate:"cdnPublicKey",params:[{name:"dc_id",type:"int"},{name:"public_key",type:"string"}],type:"CdnPublicKey"},{id:"1462101002",predicate:"cdnConfig",params:[{name:"public_keys",type:"Vector<CdnPublicKey>"}],type:"CdnConfig"},{id:"-283684427",predicate:"pageBlockChannel",params:[{name:"channel",type:"Chat"}],type:"PageBlock"},{id:"-892239370",predicate:"langPackString",params:[{name:"key",type:"string"},{name:"value",type:"string"}],type:"LangPackString"},{id:"1816636575",predicate:"langPackStringPluralized",params:[{name:"flags",type:"#"},{name:"key",type:"string"},{name:"zero_value",type:"flags.0?string"},{name:"one_value",type:"flags.1?string"},{name:"two_value",type:"flags.2?string"},{name:"few_value",type:"flags.3?string"},{name:"many_value",type:"flags.4?string"},{name:"other_value",type:"string"}],type:"LangPackString"},{id:"695856818",predicate:"langPackStringDeleted",params:[{name:"key",type:"string"}],type:"LangPackString"},{id:"-209337866",predicate:"langPackDifference",params:[{name:"lang_code",type:"string"},{name:"from_version",type:"int"},{name:"version",type:"int"},{name:"strings",type:"Vector<LangPackString>"}],type:"LangPackDifference"},{id:"292985073",predicate:"langPackLanguage",params:[{name:"name",type:"string"},{name:"native_name",type:"string"},{name:"lang_code",type:"string"}],type:"LangPackLanguage"},{id:"281165899",predicate:"updateLangPackTooLong",params:[],type:"Update"},{id:"1442983757",predicate:"updateLangPack",params:[{name:"difference",type:"LangPackDifference"}],type:"Update"},{id:"1568467877",predicate:"channelAdminRights",params:[{name:"flags",type:"#"},{name:"change_info",type:"flags.0?true"},{name:"post_messages",type:"flags.1?true"},{name:"edit_messages",type:"flags.2?true"},{name:"delete_messages",type:"flags.3?true"},{name:"ban_users",type:"flags.4?true"},{name:"invite_users",type:"flags.5?true"},{name:"invite_link",type:"flags.6?true"},{name:"pin_messages",type:"flags.7?true"},{name:"add_admins",type:"flags.9?true"},{name:"manage_call",type:"flags.10?true"}],type:"ChannelAdminRights"},{id:"1489977929",predicate:"channelBannedRights",params:[{name:"flags",type:"#"},{name:"view_messages",type:"flags.0?true"},{name:"send_messages",type:"flags.1?true"},{name:"send_media",type:"flags.2?true"},{name:"send_stickers",type:"flags.3?true"},{name:"send_gifs",type:"flags.4?true"},{name:"send_games",type:"flags.5?true"},{name:"send_inline",type:"flags.6?true"},{name:"embed_links",type:"flags.7?true"},{name:"until_date",type:"int"}],type:"ChannelBannedRights"},{id:"-1473271656",predicate:"channelParticipantAdmin",params:[{name:"flags",type:"#"},{name:"can_edit",type:"flags.0?true"},{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"promoted_by",type:"int"},{name:"date",type:"int"},{name:"admin_rights",type:"ChannelAdminRights"}],type:"ChannelParticipant"},{id:"573315206",predicate:"channelParticipantBanned",params:[{name:"flags",type:"#"},{name:"left",type:"flags.0?true"},{name:"user_id",type:"int"},{name:"kicked_by",type:"int"},{name:"date",type:"int"},{name:"banned_rights",type:"ChannelBannedRights"}],type:"ChannelParticipant"},{id:"338142689",predicate:"channelParticipantsBanned",params:[{name:"q",type:"string"}],type:"ChannelParticipantsFilter"},{id:"106343499",predicate:"channelParticipantsSearch",params:[{name:"q",type:"string"}],type:"ChannelParticipantsFilter"},{id:"-421545947",predicate:"channelAdminLogEventActionChangeTitle",params:[{name:"prev_value",type:"string"},{name:"new_value",type:"string"}],type:"ChannelAdminLogEventAction"},{id:"1427671598",predicate:"channelAdminLogEventActionChangeAbout",params:[{name:"prev_value",type:"string"},{name:"new_value",type:"string"}],type:"ChannelAdminLogEventAction"},{id:"1783299128",predicate:"channelAdminLogEventActionChangeUsername",params:[{name:"prev_value",type:"string"},{name:"new_value",type:"string"}],type:"ChannelAdminLogEventAction"},{id:"-1204857405",predicate:"channelAdminLogEventActionChangePhoto",params:[{
name:"prev_photo",type:"ChatPhoto"},{name:"new_photo",type:"ChatPhoto"}],type:"ChannelAdminLogEventAction"},{id:"460916654",predicate:"channelAdminLogEventActionToggleInvites",params:[{name:"new_value",type:"Bool"}],type:"ChannelAdminLogEventAction"},{id:"648939889",predicate:"channelAdminLogEventActionToggleSignatures",params:[{name:"new_value",type:"Bool"}],type:"ChannelAdminLogEventAction"},{id:"-370660328",predicate:"channelAdminLogEventActionUpdatePinned",params:[{name:"message",type:"Message"}],type:"ChannelAdminLogEventAction"},{id:"1889215493",predicate:"channelAdminLogEventActionEditMessage",params:[{name:"prev_message",type:"Message"},{name:"new_message",type:"Message"}],type:"ChannelAdminLogEventAction"},{id:"1121994683",predicate:"channelAdminLogEventActionDeleteMessage",params:[{name:"message",type:"Message"}],type:"ChannelAdminLogEventAction"},{id:"405815507",predicate:"channelAdminLogEventActionParticipantJoin",params:[],type:"ChannelAdminLogEventAction"},{id:"-124291086",predicate:"channelAdminLogEventActionParticipantLeave",params:[],type:"ChannelAdminLogEventAction"},{id:"-484690728",predicate:"channelAdminLogEventActionParticipantInvite",params:[{name:"participant",type:"ChannelParticipant"}],type:"ChannelAdminLogEventAction"},{id:"-422036098",predicate:"channelAdminLogEventActionParticipantToggleBan",params:[{name:"prev_participant",type:"ChannelParticipant"},{name:"new_participant",type:"ChannelParticipant"}],type:"ChannelAdminLogEventAction"},{id:"-714643696",predicate:"channelAdminLogEventActionParticipantToggleAdmin",params:[{name:"prev_participant",type:"ChannelParticipant"},{name:"new_participant",type:"ChannelParticipant"}],type:"ChannelAdminLogEventAction"},{id:"995769920",predicate:"channelAdminLogEvent",params:[{name:"id",type:"long"},{name:"date",type:"int"},{name:"user_id",type:"int"},{name:"action",type:"ChannelAdminLogEventAction"}],type:"ChannelAdminLogEvent"},{id:"-309659827",predicate:"channels.adminLogResults",params:[{name:"events",type:"Vector<ChannelAdminLogEvent>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"channels.AdminLogResults"},{id:"-368018716",predicate:"channelAdminLogEventsFilter",params:[{name:"flags",type:"#"},{name:"join",type:"flags.0?true"},{name:"leave",type:"flags.1?true"},{name:"invite",type:"flags.2?true"},{name:"ban",type:"flags.3?true"},{name:"unban",type:"flags.4?true"},{name:"kick",type:"flags.5?true"},{name:"unkick",type:"flags.6?true"},{name:"promote",type:"flags.7?true"},{name:"demote",type:"flags.8?true"},{name:"info",type:"flags.9?true"},{name:"settings",type:"flags.10?true"},{name:"pinned",type:"flags.11?true"},{name:"edit",type:"flags.12?true"},{name:"delete",type:"flags.13?true"}],type:"ChannelAdminLogEventsFilter"},{id:"511092620",predicate:"topPeerCategoryPhoneCalls",params:[],type:"TopPeerCategory"},{id:"834148991",predicate:"pageBlockAudio",params:[{name:"audio_id",type:"long"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"1558266229",predicate:"popularContact",params:[{name:"client_id",type:"long"},{name:"importers",type:"int"}],type:"PopularContact"},{id:"2012136335",predicate:"cdnFileHash",params:[{name:"offset",type:"int"},{name:"limit",type:"int"},{name:"hash",type:"bytes"}],type:"CdnFileHash"},{id:"1200788123",predicate:"messageActionScreenshotTaken",params:[],type:"MessageAction"},{id:"-1634752813",predicate:"messages.favedStickersNotModified",params:[],type:"messages.FavedStickers"},{id:"-209768682",predicate:"messages.favedStickers",params:[{name:"hash",type:"int"},{name:"packs",type:"Vector<StickerPack>"},{name:"stickers",type:"Vector<Document>"}],type:"messages.FavedStickers"},{id:"-451831443",predicate:"updateFavedStickers",params:[],type:"Update"},{id:"-1987495099",predicate:"updateChannelReadMessagesContents",params:[{name:"channel_id",type:"int"},{name:"messages",type:"Vector<int>"}],type:"Update"},{id:"-1040652646",predicate:"inputMessagesFilterMyMentions",params:[],type:"MessagesFilter"},{id:"1887741886",predicate:"updateContactsReset",params:[],type:"Update"},{id:"-1312568665",predicate:"channelAdminLogEventActionChangeStickerSet",params:[{name:"prev_stickerset",type:"InputStickerSet"},{name:"new_stickerset",type:"InputStickerSet"}],type:"ChannelAdminLogEventAction"},{id:"-85549226",predicate:"messageActionCustomAction",params:[{name:"message",type:"string"}],type:"MessageAction"},{id:"178373535",predicate:"inputPaymentCredentialsApplePay",params:[{name:"payment_data",type:"DataJSON"}],type:"InputPaymentCredentials"},{id:"-905587442",predicate:"inputPaymentCredentialsAndroidPay",params:[{name:"payment_token",type:"DataJSON"},{name:"google_transaction_id",type:"string"}],type:"InputPaymentCredentials"},{id:"-419271411",predicate:"inputMessagesFilterGeo",params:[],type:"MessagesFilter"},{id:"-530392189",predicate:"inputMessagesFilterContacts",params:[],type:"MessagesFilter"},{id:"1893427255",predicate:"updateChannelAvailableMessages",params:[{name:"channel_id",type:"int"},{name:"available_min_id",type:"int"}],type:"Update"},{id:"1599903217",predicate:"channelAdminLogEventActionTogglePreHistoryHidden",params:[{name:"new_value",type:"Bool"}],type:"ChannelAdminLogEventAction"},{id:"2065305999",predicate:"inputMediaGeoLive",params:[{name:"geo_point",type:"InputGeoPoint"},{name:"period",type:"int"}],type:"InputMedia"},{id:"2084316681",predicate:"messageMediaGeoLive",params:[{name:"geo",type:"GeoPoint"},{name:"period",type:"int"}],type:"MessageMedia"},{id:"1189204285",predicate:"recentMeUrlUnknown",params:[{name:"url",type:"string"}],type:"RecentMeUrl"},{id:"-1917045962",predicate:"recentMeUrlUser",params:[{name:"url",type:"string"},{name:"user_id",type:"int"}],type:"RecentMeUrl"},{id:"-1608834311",predicate:"recentMeUrlChat",params:[{name:"url",type:"string"},{name:"chat_id",type:"int"}],type:"RecentMeUrl"},{id:"-347535331",predicate:"recentMeUrlChatInvite",params:[{name:"url",type:"string"},{name:"chat_invite",type:"ChatInvite"}],type:"RecentMeUrl"},{id:"-1140172836",predicate:"recentMeUrlStickerSet",params:[{name:"url",type:"string"},{name:"set",type:"StickerSetCovered"}],type:"RecentMeUrl"},{id:"235081943",predicate:"help.recentMeUrls",params:[{name:"urls",type:"Vector<RecentMeUrl>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"help.RecentMeUrls"},{id:"-266911767",predicate:"channels.channelParticipantsNotModified",params:[],type:"channels.ChannelParticipants"},{id:"1951620897",predicate:"messages.messagesNotModified",params:[{name:"count",type:"int"}],type:"messages.Messages"},{id:"1588230153",predicate:"inputSingleMedia",params:[{name:"media",type:"InputMedia"},{name:"random_id",type:"long"}],type:"InputSingleMedia"}],methods:[{id:"-878758099",method:"invokeAfterMsg",params:[{name:"msg_id",type:"long"},{name:"query",type:"!X"}],type:"X"},{id:"1036301552",method:"invokeAfterMsgs",params:[{name:"msg_ids",type:"Vector<long>"},{name:"query",type:"!X"}],type:"X"},{id:"1877286395",method:"auth.checkPhone",params:[{name:"phone_number",type:"string"}],type:"auth.CheckedPhone"},{id:"-2035355412",method:"auth.sendCode",params:[{name:"flags",type:"#"},{name:"allow_flashcall",type:"flags.0?true"},{name:"phone_number",type:"string"},{name:"current_number",type:"flags.0?Bool"},{name:"api_id",type:"int"},{name:"api_hash",type:"string"}],type:"auth.SentCode"},{id:"453408308",method:"auth.signUp",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"auth.Authorization"},{id:"-1126886015",method:"auth.signIn",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"auth.Authorization"},{id:"1461180992",method:"auth.logOut",params:[],type:"Bool"},{id:"-1616179942",method:"auth.resetAuthorizations",params:[],type:"Bool"},{id:"1998331287",method:"auth.sendInvites",params:[{name:"phone_numbers",type:"Vector<string>"},{name:"message",type:"string"}],type:"Bool"},{id:"-440401971",method:"auth.exportAuthorization",params:[{name:"dc_id",type:"int"}],type:"auth.ExportedAuthorization"},{id:"-470837741",method:"auth.importAuthorization",params:[{name:"id",type:"int"},{name:"bytes",type:"bytes"}],type:"auth.Authorization"},{id:"-841733627",method:"auth.bindTempAuthKey",params:[{name:"perm_auth_key_id",type:"long"},{name:"nonce",type:"long"},{name:"expires_at",type:"int"},{name:"encrypted_message",type:"bytes"}],type:"Bool"},{id:"1280460",method:"account.registerDevice",params:[{name:"token_type",type:"int"},{name:"token",type:"string"},{name:"app_sandbox",type:"Bool"},{name:"other_uids",type:"Vector<int>"}],type:"Bool"},{id:"813089983",method:"account.unregisterDevice",params:[{name:"token_type",type:"int"},{name:"token",type:"string"},{name:"other_uids",type:"Vector<int>"}],type:"Bool"},{id:"-2067899501",method:"account.updateNotifySettings",params:[{name:"peer",type:"InputNotifyPeer"},{name:"settings",type:"InputPeerNotifySettings"}],type:"Bool"},{id:"313765169",method:"account.getNotifySettings",params:[{name:"peer",type:"InputNotifyPeer"}],type:"PeerNotifySettings"},{id:"-612493497",method:"account.resetNotifySettings",params:[],type:"Bool"},{id:"2018596725",method:"account.updateProfile",params:[{name:"flags",type:"#"},{name:"first_name",type:"flags.0?string"},{name:"last_name",type:"flags.1?string"},{name:"about",type:"flags.2?string"}],type:"User"},{id:"1713919532",method:"account.updateStatus",params:[{name:"offline",type:"Bool"}],type:"Bool"},{id:"-1068696894",method:"account.getWallPapers",params:[],type:"Vector<WallPaper>"},{id:"-1374118561",method:"account.reportPeer",params:[{name:"peer",type:"InputPeer"},{name:"reason",type:"ReportReason"}],type:"Bool"},{id:"227648840",method:"users.getUsers",params:[{name:"id",type:"Vector<InputUser>"}],type:"Vector<User>"},{id:"-902781519",method:"users.getFullUser",params:[{name:"id",type:"InputUser"}],type:"UserFull"},{id:"-995929106",method:"contacts.getStatuses",params:[],type:"Vector<ContactStatus>"},{id:"-1071414113",method:"contacts.getContacts",params:[{name:"hash",type:"int"}],type:"contacts.Contacts"},{id:"746589157",method:"contacts.importContacts",params:[{name:"contacts",type:"Vector<InputContact>"}],type:"contacts.ImportedContacts"},{id:"-1902823612",method:"contacts.deleteContact",params:[{name:"id",type:"InputUser"}],type:"contacts.Link"},{id:"1504393374",method:"contacts.deleteContacts",params:[{name:"id",type:"Vector<InputUser>"}],type:"Bool"},{id:"858475004",method:"contacts.block",params:[{name:"id",type:"InputUser"}],type:"Bool"},{id:"-448724803",method:"contacts.unblock",params:[{name:"id",type:"InputUser"}],type:"Bool"},{id:"-176409329",method:"contacts.getBlocked",params:[{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"contacts.Blocked"},{id:"-2065352905",method:"contacts.exportCard",params:[],type:"Vector<int>"},{id:"1340184318",method:"contacts.importCard",params:[{name:"export_card",type:"Vector<int>"}],type:"User"},{id:"1109588596",method:"messages.getMessages",params:[{name:"id",type:"Vector<int>"}],type:"messages.Messages"},{id:"421243333",method:"messages.getDialogs",params:[{name:"flags",type:"#"},{name:"exclude_pinned",type:"flags.0?true"},{name:"offset_date",type:"int"},{name:"offset_id",type:"int"},{name:"offset_peer",type:"InputPeer"},{name:"limit",type:"int"}],type:"messages.Dialogs"},{id:"-591691168",method:"messages.getHistory",params:[{name:"peer",type:"InputPeer"},{name:"offset_id",type:"int"},{name:"offset_date",type:"int"},{name:"add_offset",type:"int"},{name:"limit",type:"int"},{name:"max_id",type:"int"},{name:"min_id",type:"int"},{name:"hash",type:"int"}],type:"messages.Messages"},{id:"60726944",method:"messages.search",params:[{name:"flags",type:"#"},{name:"peer",type:"InputPeer"},{name:"q",type:"string"},{name:"from_id",type:"flags.0?InputUser"},{name:"filter",type:"MessagesFilter"},{name:"min_date",type:"int"},{name:"max_date",type:"int"},{name:"offset_id",type:"int"},{name:"add_offset",type:"int"},{name:"limit",type:"int"},{name:"max_id",type:"int"},{name:"min_id",type:"int"}],type:"messages.Messages"},{id:"238054714",method:"messages.readHistory",params:[{name:"peer",type:"InputPeer"},{name:"max_id",type:"int"}],type:"messages.AffectedMessages"},{id:"469850889",method:"messages.deleteHistory",params:[{name:"flags",type:"#"},{name:"just_clear",type:"flags.0?true"},{name:"peer",type:"InputPeer"},{name:"max_id",type:"int"}],type:"messages.AffectedHistory"},{id:"-443640366",method:"messages.deleteMessages",params:[{name:"flags",type:"#"},{name:"revoke",type:"flags.0?true"},{name:"id",type:"Vector<int>"}],type:"messages.AffectedMessages"},{id:"94983360",method:"messages.receivedMessages",params:[{name:"max_id",type:"int"}],type:"Vector<ReceivedNotifyMessage>"},{id:"-1551737264",method:"messages.setTyping",params:[{name:"peer",type:"InputPeer"},{name:"action",type:"SendMessageAction"}],type:"Bool"},{id:"-91733382",method:"messages.sendMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"message",type:"string"},{name:"random_id",type:"long"},{name:"reply_markup",type:"flags.2?ReplyMarkup"},{name:"entities",type:"flags.3?Vector<MessageEntity>"}],type:"Updates"},{id:"-923703407",method:"messages.sendMedia",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"media",type:"InputMedia"},{name:"random_id",type:"long"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"Updates"},{id:"1888354709",method:"messages.forwardMessages",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"with_my_score",type:"flags.8?true"},{name:"grouped",type:"flags.9?true"},{name:"from_peer",type:"InputPeer"},{name:"id",type:"Vector<int>"},{name:"random_id",type:"Vector<long>"},{name:"to_peer",type:"InputPeer"}],type:"Updates"},{id:"-820669733",method:"messages.reportSpam",params:[{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"-1460572005",method:"messages.hideReportSpam",params:[{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"913498268",method:"messages.getPeerSettings",params:[{name:"peer",type:"InputPeer"}],type:"PeerSettings"},{id:"1013621127",method:"messages.getChats",params:[{name:"id",type:"Vector<int>"}],type:"messages.Chats"},{id:"998448230",method:"messages.getFullChat",params:[{name:"chat_id",type:"int"}],type:"messages.ChatFull"},{id:"-599447467",method:"messages.editChatTitle",params:[{name:"chat_id",type:"int"},{name:"title",type:"string"}],type:"Updates"},{id:"-900957736",method:"messages.editChatPhoto",params:[{name:"chat_id",type:"int"},{name:"photo",type:"InputChatPhoto"}],type:"Updates"},{id:"-106911223",method:"messages.addChatUser",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"},{name:"fwd_limit",type:"int"}],type:"Updates"},{id:"-530505962",method:"messages.deleteChatUser",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"}],type:"Updates"},{id:"164303470",method:"messages.createChat",params:[{name:"users",type:"Vector<InputUser>"},{name:"title",type:"string"}],type:"Updates"},{id:"-304838614",method:"updates.getState",params:[],type:"updates.State"},{id:"630429265",method:"updates.getDifference",params:[{name:"flags",type:"#"},{name:"pts",type:"int"},{name:"pts_total_limit",type:"flags.0?int"},{name:"date",type:"int"},{name:"qts",type:"int"}],type:"updates.Difference"},{id:"-256159406",method:"photos.updateProfilePhoto",params:[{name:"id",type:"InputPhoto"}],type:"UserProfilePhoto"},{id:"1328726168",method:"photos.uploadProfilePhoto",params:[{name:"file",type:"InputFile"}],type:"photos.Photo"},{id:"-2016444625",method:"photos.deletePhotos",params:[{name:"id",type:"Vector<InputPhoto>"}],type:"Vector<long>"},{id:"-1291540959",method:"upload.saveFilePart",params:[{name:"file_id",type:"long"},{name:"file_part",type:"int"},{name:"bytes",type:"bytes"}],type:"Bool"},{id:"-475607115",method:"upload.getFile",params:[{name:"location",type:"InputFileLocation"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"upload.File"},{id:"-990308245",method:"help.getConfig",params:[],type:"Config"},{id:"531836966",method:"help.getNearestDc",params:[],type:"NearestDc"},{id:"-1372724842",method:"help.getAppUpdate",params:[],type:"help.AppUpdate"},{id:"1862465352",method:"help.saveAppLog",params:[{name:"events",type:"Vector<InputAppEvent>"}],type:"Bool"},{id:"1295590211",method:"help.getInviteText",params:[],type:"help.InviteText"},{id:"-1848823128",method:"photos.getUserPhotos",params:[{name:"user_id",type:"InputUser"},{name:"offset",type:"int"},{name:"max_id",type:"long"},{name:"limit",type:"int"}],type:"photos.Photos"},{id:"865483769",method:"messages.forwardMessage",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"random_id",type:"long"}],type:"Updates"},{id:"651135312",method:"messages.getDhConfig",params:[{name:"version",type:"int"},{name:"random_length",type:"int"}],type:"messages.DhConfig"},{id:"-162681021",method:"messages.requestEncryption",params:[{name:"user_id",type:"InputUser"},{name:"random_id",type:"int"},{name:"g_a",type:"bytes"}],type:"EncryptedChat"},{id:"1035731989",method:"messages.acceptEncryption",params:[{name:"peer",type:"InputEncryptedChat"},{name:"g_b",type:"bytes"},{name:"key_fingerprint",type:"long"}],type:"EncryptedChat"},{id:"-304536635",method:"messages.discardEncryption",params:[{name:"chat_id",type:"int"}],type:"Bool"},{id:"2031374829",method:"messages.setEncryptedTyping",params:[{name:"peer",type:"InputEncryptedChat"},{name:"typing",type:"Bool"}],type:"Bool"},{id:"2135648522",method:"messages.readEncryptedHistory",params:[{name:"peer",type:"InputEncryptedChat"},{name:"max_date",type:"int"}],type:"Bool"},{id:"-1451792525",method:"messages.sendEncrypted",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"}],type:"messages.SentEncryptedMessage"},{id:"-1701831834",method:"messages.sendEncryptedFile",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"},{name:"file",type:"InputEncryptedFile"}],type:"messages.SentEncryptedMessage"},{id:"852769188",method:"messages.sendEncryptedService",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"}],type:"messages.SentEncryptedMessage"},{id:"1436924774",method:"messages.receivedQueue",params:[{name:"max_qts",type:"int"}],type:"Vector<long>"},{id:"1259113487",method:"messages.reportEncryptedSpam",params:[{name:"peer",type:"InputEncryptedChat"}],type:"Bool"},{id:"-562337987",method:"upload.saveBigFilePart",params:[{name:"file_id",type:"long"},{name:"file_part",type:"int"},{name:"file_total_parts",type:"int"},{name:"bytes",type:"bytes"}],type:"Bool"},{id:"-951575130",method:"initConnection",params:[{name:"api_id",type:"int"},{name:"device_model",type:"string"},{name:"system_version",type:"string"},{name:"app_version",type:"string"},{name:"system_lang_code",type:"string"},{name:"lang_pack",type:"string"},{name:"lang_code",type:"string"},{name:"query",type:"!X"}],type:"X"},{id:"-1663104819",method:"help.getSupport",params:[],type:"help.Support"},{id:"916930423",method:"messages.readMessageContents",params:[{name:"id",type:"Vector<int>"}],type:"messages.AffectedMessages"},{id:"655677548",method:"account.checkUsername",params:[{name:"username",type:"string"}],type:"Bool"},{id:"1040964988",method:"account.updateUsername",params:[{name:"username",type:"string"}],type:"User"},{id:"301470424",method:"contacts.search",params:[{name:"q",type:"string"},{name:"limit",type:"int"}],type:"contacts.Found"},{id:"-623130288",method:"account.getPrivacy",params:[{name:"key",type:"InputPrivacyKey"}],type:"account.PrivacyRules"},{id:"-906486552",method:"account.setPrivacy",params:[{name:"key",type:"InputPrivacyKey"},{name:"rules",type:"Vector<InputPrivacyRule>"}],type:"account.PrivacyRules"},{id:"1099779595",method:"account.deleteAccount",params:[{name:"reason",type:"string"}],type:"Bool"},{id:"150761757",method:"account.getAccountTTL",params:[],type:"AccountDaysTTL"},{id:"608323678",method:"account.setAccountTTL",params:[{name:"ttl",type:"AccountDaysTTL"}],type:"Bool"},{id:"-627372787",method:"invokeWithLayer",params:[{name:"layer",type:"int"},{name:"query",type:"!X"}],type:"X"},{id:"-113456221",method:"contacts.resolveUsername",params:[{name:"username",type:"string"}],type:"contacts.ResolvedPeer"},{id:"149257707",method:"account.sendChangePhoneCode",params:[{name:"flags",type:"#"},{name:"allow_flashcall",type:"flags.0?true"},{name:"phone_number",type:"string"},{name:"current_number",type:"flags.0?Bool"}],type:"auth.SentCode"},{id:"1891839707",method:"account.changePhone",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"User"},{id:"479598769",method:"messages.getAllStickers",params:[{name:"hash",type:"int"}],type:"messages.AllStickers"},{id:"954152242",method:"account.updateDeviceLocked",params:[{name:"period",type:"int"}],type:"Bool"},{id:"1738800940",method:"auth.importBotAuthorization",params:[{name:"flags",type:"int"},{name:"api_id",type:"int"},{name:"api_hash",type:"string"},{name:"bot_auth_token",type:"string"}],type:"auth.Authorization"},{id:"623001124",method:"messages.getWebPagePreview",params:[{name:"message",type:"string"}],type:"MessageMedia"},{id:"-484392616",method:"account.getAuthorizations",params:[],type:"account.Authorizations"},{id:"-545786948",method:"account.resetAuthorization",params:[{name:"hash",type:"long"}],type:"Bool"},{id:"1418342645",method:"account.getPassword",params:[],type:"account.Password"},{id:"-1131605573",method:"account.getPasswordSettings",params:[{name:"current_password_hash",type:"bytes"}],type:"account.PasswordSettings"},{id:"-92517498",method:"account.updatePasswordSettings",params:[{name:"current_password_hash",type:"bytes"},{name:"new_settings",type:"account.PasswordInputSettings"}],type:"Bool"},{id:"174260510",method:"auth.checkPassword",params:[{name:"password_hash",type:"bytes"}],type:"auth.Authorization"},{id:"-661144474",method:"auth.requestPasswordRecovery",params:[],type:"auth.PasswordRecovery"},{id:"1319464594",method:"auth.recoverPassword",params:[{name:"code",type:"string"}],type:"auth.Authorization"},{id:"-1080796745",method:"invokeWithoutUpdates",params:[{name:"query",type:"!X"}],type:"X"},{id:"2106086025",method:"messages.exportChatInvite",params:[{name:"chat_id",type:"int"}],type:"ExportedChatInvite"},{id:"1051570619",method:"messages.checkChatInvite",params:[{name:"hash",type:"string"}],type:"ChatInvite"},{id:"1817183516",method:"messages.importChatInvite",params:[{name:"hash",type:"string"}],type:"Updates"},{id:"639215886",method:"messages.getStickerSet",params:[{name:"stickerset",type:"InputStickerSet"}],type:"messages.StickerSet"},{id:"-946871200",method:"messages.installStickerSet",params:[{name:"stickerset",type:"InputStickerSet"},{name:"archived",type:"Bool"}],type:"messages.StickerSetInstallResult"},{id:"-110209570",method:"messages.uninstallStickerSet",params:[{name:"stickerset",type:"InputStickerSet"}],type:"Bool"},{id:"-421563528",method:"messages.startBot",params:[{name:"bot",type:"InputUser"},{name:"peer",type:"InputPeer"},{name:"random_id",type:"long"},{name:"start_param",type:"string"}],type:"Updates"},{id:"-1877938321",method:"help.getAppChangelog",params:[{name:"prev_app_version",type:"string"}],type:"Updates"},{id:"-993483427",method:"messages.getMessagesViews",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"Vector<int>"},{name:"increment",type:"Bool"}],type:"Vector<int>"},{id:"-871347913",method:"channels.readHistory",params:[{name:"channel",type:"InputChannel"},{name:"max_id",type:"int"}],type:"Bool"},{id:"-2067661490",method:"channels.deleteMessages",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"Vector<int>"}],type:"messages.AffectedMessages"},{id:"-787622117",method:"channels.deleteUserHistory",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"}],type:"messages.AffectedHistory"},{id:"-32999408",method:"channels.reportSpam",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"},{name:"id",type:"Vector<int>"}],type:"Bool"},{id:"-1814580409",method:"channels.getMessages",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"Vector<int>"}],type:"messages.Messages"},{id:"306054633",method:"channels.getParticipants",params:[{name:"channel",type:"InputChannel"},{name:"filter",type:"ChannelParticipantsFilter"},{name:"offset",type:"int"},{name:"limit",type:"int"},{name:"hash",type:"int"}],type:"channels.ChannelParticipants"},{id:"1416484774",method:"channels.getParticipant",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"}],type:"channels.ChannelParticipant"},{id:"176122811",method:"channels.getChannels",params:[{name:"id",type:"Vector<InputChannel>"}],type:"messages.Chats"},{id:"141781513",method:"channels.getFullChannel",params:[{name:"channel",type:"InputChannel"}],type:"messages.ChatFull"},{id:"-192332417",method:"channels.createChannel",params:[{name:"flags",type:"#"},{name:"broadcast",type:"flags.0?true"},{name:"megagroup",type:"flags.1?true"},{name:"title",type:"string"},{name:"about",type:"string"}],type:"Updates"},{id:"333610782",method:"channels.editAbout",params:[{name:"channel",type:"InputChannel"},{name:"about",type:"string"}],type:"Bool"},{id:"548962836",method:"channels.editAdmin",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"},{name:"admin_rights",type:"ChannelAdminRights"}],type:"Updates"},{id:"1450044624",method:"channels.editTitle",params:[{name:"channel",type:"InputChannel"},{name:"title",type:"string"}],type:"Updates"},{id:"-248621111",method:"channels.editPhoto",params:[{name:"channel",type:"InputChannel"},{name:"photo",type:"InputChatPhoto"}],type:"Updates"},{id:"283557164",method:"channels.checkUsername",params:[{name:"channel",type:"InputChannel"},{name:"username",type:"string"}],type:"Bool"},{id:"890549214",method:"channels.updateUsername",params:[{name:"channel",type:"InputChannel"},{name:"username",type:"string"}],type:"Bool"},{id:"615851205",method:"channels.joinChannel",params:[{name:"channel",type:"InputChannel"}],type:"Updates"},{id:"-130635115",method:"channels.leaveChannel",params:[{name:"channel",type:"InputChannel"}],type:"Updates"},{id:"429865580",method:"channels.inviteToChannel",params:[{name:"channel",type:"InputChannel"},{name:"users",type:"Vector<InputUser>"}],type:"Updates"},{id:"-950663035",method:"channels.exportInvite",params:[{name:"channel",type:"InputChannel"}],type:"ExportedChatInvite"},{id:"-1072619549",method:"channels.deleteChannel",params:[{name:"channel",type:"InputChannel"}],type:"Updates"},{id:"51854712",method:"updates.getChannelDifference",params:[{name:"flags",type:"#"},{name:"force",type:"flags.0?true"},{name:"channel",type:"InputChannel"},{name:"filter",type:"ChannelMessagesFilter"},{name:"pts",type:"int"},{name:"limit",type:"int"}],type:"updates.ChannelDifference"},{id:"-326379039",method:"messages.toggleChatAdmins",params:[{name:"chat_id",type:"int"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"-1444503762",method:"messages.editChatAdmin",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"},{name:"is_admin",type:"Bool"}],type:"Bool"},{id:"363051235",method:"messages.migrateChat",params:[{name:"chat_id",type:"int"}],type:"Updates"},{id:"-1640190800",method:"messages.searchGlobal",params:[{name:"q",type:"string"},{name:"offset_date",type:"int"},{name:"offset_peer",type:"InputPeer"},{name:"offset_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Messages"},{id:"889286899",method:"help.getTermsOfService",params:[],type:"help.TermsOfService"},{id:"2016638777",method:"messages.reorderStickerSets",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"order",type:"Vector<long>"}],type:"Bool"},{id:"864953444",method:"messages.getDocumentByHash",params:[{name:"sha256",type:"bytes"},{name:"size",type:"int"},{name:"mime_type",type:"string"}],type:"Document"},{id:"-1080395925",method:"messages.searchGifs",params:[{name:"q",type:"string"},{name:"offset",type:"int"}],type:"messages.FoundGifs"},{id:"-2084618926",method:"messages.getSavedGifs",params:[{name:"hash",type:"int"}],type:"messages.SavedGifs"},{id:"846868683",method:"messages.saveGif",params:[{name:"id",type:"InputDocument"},{name:"unsave",type:"Bool"}],type:"Bool"},{id:"1364105629",method:"messages.getInlineBotResults",params:[{name:"flags",type:"#"},{name:"bot",type:"InputUser"},{name:"peer",type:"InputPeer"},{name:"geo_point",type:"flags.0?InputGeoPoint"},{name:"query",type:"string"},{name:"offset",type:"string"}],type:"messages.BotResults"},{id:"-346119674",method:"messages.setInlineBotResults",params:[{name:"flags",type:"#"},{name:"gallery",type:"flags.0?true"},{name:"private",type:"flags.1?true"},{name:"query_id",type:"long"},{name:"results",type:"Vector<InputBotInlineResult>"},{name:"cache_time",type:"int"},{name:"next_offset",type:"flags.2?string"},{name:"switch_pm",type:"flags.3?InlineBotSwitchPM"}],type:"Bool"},{id:"-1318189314",method:"messages.sendInlineBotResult",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"random_id",type:"long"},{name:"query_id",type:"long"},{name:"id",type:"string"}],type:"Updates"},{id:"1231065863",method:"channels.toggleInvites",params:[{name:"channel",type:"InputChannel"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"-826838685",method:"channels.exportMessageLink",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"int"},{name:"grouped",type:"Bool"}],type:"ExportedMessageLink"},{id:"527021574",method:"channels.toggleSignatures",params:[{name:"channel",type:"InputChannel"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"-1490162350",method:"channels.updatePinnedMessage",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.0?true"},{name:"channel",type:"InputChannel"},{name:"id",type:"int"}],type:"Updates"},{id:"1056025023",method:"auth.resendCode",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"}],type:"auth.SentCode"},{id:"520357240",method:"auth.cancelCode",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"}],type:"Bool"},{id:"-39416522",method:"messages.getMessageEditData",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"}],type:"messages.MessageEditData"},{id:"97630429",method:"messages.editMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"stop_geo_live",type:"flags.12?true"},{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"message",type:"flags.11?string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"},{name:"entities",type:"flags.3?Vector<MessageEntity>"},{name:"geo_point",type:"flags.13?InputGeoPoint"}],type:"Updates"},{id:"-1327463869",method:"messages.editInlineBotMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"stop_geo_live",type:"flags.12?true"},{name:"id",type:"InputBotInlineMessageID"},{name:"message",type:"flags.11?string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"},{name:"entities",type:"flags.3?Vector<MessageEntity>"},{name:"geo_point",type:"flags.13?InputGeoPoint"}],type:"Bool"},{id:"-2130010132",method:"messages.getBotCallbackAnswer",params:[{name:"flags",type:"#"},{
name:"game",type:"flags.1?true"},{name:"peer",type:"InputPeer"},{name:"msg_id",type:"int"},{name:"data",type:"flags.0?bytes"}],type:"messages.BotCallbackAnswer"},{id:"-712043766",method:"messages.setBotCallbackAnswer",params:[{name:"flags",type:"#"},{name:"alert",type:"flags.1?true"},{name:"query_id",type:"long"},{name:"message",type:"flags.0?string"},{name:"url",type:"flags.2?string"},{name:"cache_time",type:"int"}],type:"Bool"},{id:"-728224331",method:"contacts.getTopPeers",params:[{name:"flags",type:"#"},{name:"correspondents",type:"flags.0?true"},{name:"bots_pm",type:"flags.1?true"},{name:"bots_inline",type:"flags.2?true"},{name:"phone_calls",type:"flags.3?true"},{name:"groups",type:"flags.10?true"},{name:"channels",type:"flags.15?true"},{name:"offset",type:"int"},{name:"limit",type:"int"},{name:"hash",type:"int"}],type:"contacts.TopPeers"},{id:"451113900",method:"contacts.resetTopPeerRating",params:[{name:"category",type:"TopPeerCategory"},{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"764901049",method:"messages.getPeerDialogs",params:[{name:"peers",type:"Vector<InputPeer>"}],type:"messages.PeerDialogs"},{id:"-1137057461",method:"messages.saveDraft",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"peer",type:"InputPeer"},{name:"message",type:"string"},{name:"entities",type:"flags.3?Vector<MessageEntity>"}],type:"Bool"},{id:"1782549861",method:"messages.getAllDrafts",params:[],type:"Updates"},{id:"766298703",method:"messages.getFeaturedStickers",params:[{name:"hash",type:"int"}],type:"messages.FeaturedStickers"},{id:"1527873830",method:"messages.readFeaturedStickers",params:[{name:"id",type:"Vector<long>"}],type:"Bool"},{id:"1587647177",method:"messages.getRecentStickers",params:[{name:"flags",type:"#"},{name:"attached",type:"flags.0?true"},{name:"hash",type:"int"}],type:"messages.RecentStickers"},{id:"958863608",method:"messages.saveRecentSticker",params:[{name:"flags",type:"#"},{name:"attached",type:"flags.0?true"},{name:"id",type:"InputDocument"},{name:"unsave",type:"Bool"}],type:"Bool"},{id:"-1986437075",method:"messages.clearRecentStickers",params:[{name:"flags",type:"#"},{name:"attached",type:"flags.0?true"}],type:"Bool"},{id:"1475442322",method:"messages.getArchivedStickers",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"offset_id",type:"long"},{name:"limit",type:"int"}],type:"messages.ArchivedStickers"},{id:"353818557",method:"account.sendConfirmPhoneCode",params:[{name:"flags",type:"#"},{name:"allow_flashcall",type:"flags.0?true"},{name:"hash",type:"string"},{name:"current_number",type:"flags.0?Bool"}],type:"auth.SentCode"},{id:"1596029123",method:"account.confirmPhone",params:[{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"Bool"},{id:"-1920105769",method:"channels.getAdminedPublicChannels",params:[],type:"messages.Chats"},{id:"1706608543",method:"messages.getMaskStickers",params:[{name:"hash",type:"int"}],type:"messages.AllStickers"},{id:"-866424884",method:"messages.getAttachedStickers",params:[{name:"media",type:"InputStickeredMedia"}],type:"Vector<StickerSetCovered>"},{id:"-1907842680",method:"auth.dropTempAuthKeys",params:[{name:"except_auth_keys",type:"Vector<long>"}],type:"Bool"},{id:"-1896289088",method:"messages.setGameScore",params:[{name:"flags",type:"#"},{name:"edit_message",type:"flags.0?true"},{name:"force",type:"flags.1?true"},{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"user_id",type:"InputUser"},{name:"score",type:"int"}],type:"Updates"},{id:"363700068",method:"messages.setInlineGameScore",params:[{name:"flags",type:"#"},{name:"edit_message",type:"flags.0?true"},{name:"force",type:"flags.1?true"},{name:"id",type:"InputBotInlineMessageID"},{name:"user_id",type:"InputUser"},{name:"score",type:"int"}],type:"Bool"},{id:"-400399203",method:"messages.getGameHighScores",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"user_id",type:"InputUser"}],type:"messages.HighScores"},{id:"258170395",method:"messages.getInlineGameHighScores",params:[{name:"id",type:"InputBotInlineMessageID"},{name:"user_id",type:"InputUser"}],type:"messages.HighScores"},{id:"218777796",method:"messages.getCommonChats",params:[{name:"user_id",type:"InputUser"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Chats"},{id:"-341307408",method:"messages.getAllChats",params:[{name:"except_ids",type:"Vector<int>"}],type:"messages.Chats"},{id:"-333262899",method:"help.setBotUpdatesStatus",params:[{name:"pending_updates_count",type:"int"},{name:"message",type:"string"}],type:"Bool"},{id:"852135825",method:"messages.getWebPage",params:[{name:"url",type:"string"},{name:"hash",type:"int"}],type:"WebPage"},{id:"847887978",method:"messages.toggleDialogPin",params:[{name:"flags",type:"#"},{name:"pinned",type:"flags.0?true"},{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"-1784678844",method:"messages.reorderPinnedDialogs",params:[{name:"flags",type:"#"},{name:"force",type:"flags.0?true"},{name:"order",type:"Vector<InputPeer>"}],type:"Bool"},{id:"-497756594",method:"messages.getPinnedDialogs",params:[],type:"messages.PeerDialogs"},{id:"-1440257555",method:"bots.sendCustomRequest",params:[{name:"custom_method",type:"string"},{name:"params",type:"DataJSON"}],type:"DataJSON"},{id:"-434028723",method:"bots.answerWebhookJSONQuery",params:[{name:"query_id",type:"long"},{name:"data",type:"DataJSON"}],type:"Bool"},{id:"619086221",method:"upload.getWebFile",params:[{name:"location",type:"InputWebFileLocation"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"upload.WebFile"},{id:"-1712285883",method:"payments.getPaymentForm",params:[{name:"msg_id",type:"int"}],type:"payments.PaymentForm"},{id:"-1601001088",method:"payments.getPaymentReceipt",params:[{name:"msg_id",type:"int"}],type:"payments.PaymentReceipt"},{id:"1997180532",method:"payments.validateRequestedInfo",params:[{name:"flags",type:"#"},{name:"save",type:"flags.0?true"},{name:"msg_id",type:"int"},{name:"info",type:"PaymentRequestedInfo"}],type:"payments.ValidatedRequestedInfo"},{id:"730364339",method:"payments.sendPaymentForm",params:[{name:"flags",type:"#"},{name:"msg_id",type:"int"},{name:"requested_info_id",type:"flags.0?string"},{name:"shipping_option_id",type:"flags.1?string"},{name:"credentials",type:"InputPaymentCredentials"}],type:"payments.PaymentResult"},{id:"1250046590",method:"account.getTmpPassword",params:[{name:"password_hash",type:"bytes"},{name:"period",type:"int"}],type:"account.TmpPassword"},{id:"578650699",method:"payments.getSavedInfo",params:[],type:"payments.SavedInfo"},{id:"-667062079",method:"payments.clearSavedInfo",params:[{name:"flags",type:"#"},{name:"credentials",type:"flags.0?true"},{name:"info",type:"flags.1?true"}],type:"Bool"},{id:"-436833542",method:"messages.setBotShippingResults",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"error",type:"flags.0?string"},{name:"shipping_options",type:"flags.1?Vector<ShippingOption>"}],type:"Bool"},{id:"163765653",method:"messages.setBotPrecheckoutResults",params:[{name:"flags",type:"#"},{name:"success",type:"flags.1?true"},{name:"query_id",type:"long"},{name:"error",type:"flags.0?string"}],type:"Bool"},{id:"-1680314774",method:"stickers.createStickerSet",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"user_id",type:"InputUser"},{name:"title",type:"string"},{name:"short_name",type:"string"},{name:"stickers",type:"Vector<InputStickerSetItem>"}],type:"messages.StickerSet"},{id:"-143257775",method:"stickers.removeStickerFromSet",params:[{name:"sticker",type:"InputDocument"}],type:"messages.StickerSet"},{id:"-4795190",method:"stickers.changeStickerPosition",params:[{name:"sticker",type:"InputDocument"},{name:"position",type:"int"}],type:"messages.StickerSet"},{id:"-2041315650",method:"stickers.addStickerToSet",params:[{name:"stickerset",type:"InputStickerSet"},{name:"sticker",type:"InputStickerSetItem"}],type:"messages.StickerSet"},{id:"1369162417",method:"messages.uploadMedia",params:[{name:"peer",type:"InputPeer"},{name:"media",type:"InputMedia"}],type:"MessageMedia"},{id:"1430593449",method:"phone.getCallConfig",params:[],type:"DataJSON"},{id:"1536537556",method:"phone.requestCall",params:[{name:"user_id",type:"InputUser"},{name:"random_id",type:"int"},{name:"g_a_hash",type:"bytes"},{name:"protocol",type:"PhoneCallProtocol"}],type:"phone.PhoneCall"},{id:"1003664544",method:"phone.acceptCall",params:[{name:"peer",type:"InputPhoneCall"},{name:"g_b",type:"bytes"},{name:"protocol",type:"PhoneCallProtocol"}],type:"phone.PhoneCall"},{id:"788404002",method:"phone.confirmCall",params:[{name:"peer",type:"InputPhoneCall"},{name:"g_a",type:"bytes"},{name:"key_fingerprint",type:"long"},{name:"protocol",type:"PhoneCallProtocol"}],type:"phone.PhoneCall"},{id:"399855457",method:"phone.receivedCall",params:[{name:"peer",type:"InputPhoneCall"}],type:"Bool"},{id:"2027164582",method:"phone.discardCall",params:[{name:"peer",type:"InputPhoneCall"},{name:"duration",type:"int"},{name:"reason",type:"PhoneCallDiscardReason"},{name:"connection_id",type:"long"}],type:"Updates"},{id:"475228724",method:"phone.setCallRating",params:[{name:"peer",type:"InputPhoneCall"},{name:"rating",type:"int"},{name:"comment",type:"string"}],type:"Updates"},{id:"662363518",method:"phone.saveCallDebug",params:[{name:"peer",type:"InputPhoneCall"},{name:"debug",type:"DataJSON"}],type:"Bool"},{id:"536919235",method:"upload.getCdnFile",params:[{name:"file_token",type:"bytes"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"upload.CdnFile"},{id:"452533257",method:"upload.reuploadCdnFile",params:[{name:"file_token",type:"bytes"},{name:"request_token",type:"bytes"}],type:"Vector<CdnFileHash>"},{id:"1375900482",method:"help.getCdnConfig",params:[],type:"CdnConfig"},{id:"-1699363442",method:"langpack.getLangPack",params:[{name:"lang_code",type:"string"}],type:"LangPackDifference"},{id:"773776152",method:"langpack.getStrings",params:[{name:"lang_code",type:"string"},{name:"keys",type:"Vector<string>"}],type:"Vector<LangPackString>"},{id:"187583869",method:"langpack.getDifference",params:[{name:"from_version",type:"int"}],type:"LangPackDifference"},{id:"-2146445955",method:"langpack.getLanguages",params:[],type:"Vector<LangPackLanguage>"},{id:"-1076292147",method:"channels.editBanned",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"},{name:"banned_rights",type:"ChannelBannedRights"}],type:"Updates"},{id:"870184064",method:"channels.getAdminLog",params:[{name:"flags",type:"#"},{name:"channel",type:"InputChannel"},{name:"q",type:"string"},{name:"events_filter",type:"flags.0?ChannelAdminLogEventsFilter"},{name:"admins",type:"flags.1?Vector<InputUser>"},{name:"max_id",type:"long"},{name:"min_id",type:"long"},{name:"limit",type:"int"}],type:"channels.AdminLogResults"},{id:"-149567365",method:"upload.getCdnFileHashes",params:[{name:"file_token",type:"bytes"},{name:"offset",type:"int"}],type:"Vector<CdnFileHash>"},{id:"-914493408",method:"messages.sendScreenshotNotification",params:[{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"int"},{name:"random_id",type:"long"}],type:"Updates"},{id:"-359881479",method:"channels.setStickers",params:[{name:"channel",type:"InputChannel"},{name:"stickerset",type:"InputStickerSet"}],type:"Bool"},{id:"567151374",method:"messages.getFavedStickers",params:[{name:"hash",type:"int"}],type:"messages.FavedStickers"},{id:"-1174420133",method:"messages.faveSticker",params:[{name:"id",type:"InputDocument"},{name:"unfave",type:"Bool"}],type:"Bool"},{id:"-357180360",method:"channels.readMessageContents",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"Vector<int>"}],type:"Bool"},{id:"-2020263951",method:"contacts.resetSaved",params:[],type:"Bool"},{id:"1180140658",method:"messages.getUnreadMentions",params:[{name:"peer",type:"InputPeer"},{name:"offset_id",type:"int"},{name:"add_offset",type:"int"},{name:"limit",type:"int"},{name:"max_id",type:"int"},{name:"min_id",type:"int"}],type:"messages.Messages"},{id:"-1355375294",method:"channels.deleteHistory",params:[{name:"channel",type:"InputChannel"},{name:"max_id",type:"int"}],type:"Bool"},{id:"1036054804",method:"help.getRecentMeUrls",params:[{name:"referer",type:"string"}],type:"help.RecentMeUrls"},{id:"-356796084",method:"channels.togglePreHistoryHidden",params:[{name:"channel",type:"InputChannel"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"251759059",method:"messages.readMentions",params:[{name:"peer",type:"InputPeer"}],type:"messages.AffectedHistory"},{id:"613691874",method:"messages.getRecentLocations",params:[{name:"peer",type:"InputPeer"},{name:"limit",type:"int"}],type:"messages.Messages"},{id:"546656559",method:"messages.sendMultiMedia",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"multi_media",type:"Vector<InputSingleMedia>"}],type:"Updates"},{id:"1347929239",method:"messages.uploadEncryptedFile",params:[{name:"peer",type:"InputEncryptedChat"},{name:"file",type:"InputEncryptedFile"}],type:"EncryptedFile"}]},Config.Schema.API.layer=74,Config.Emoji={"00a9":["©",["copyright"]],"00ae":["®",["registered"]],"203c":["‼",["bangbang"]],2049:["⁉",["interrobang"]],2122:["™",["tm"]],2139:["ℹ",["information_source"]],2194:["↔",["left_right_arrow"]],2195:["↕",["arrow_up_down"]],2196:["↖",["arrow_upper_left"]],2197:["↗",["arrow_upper_right"]],2198:["↘",["arrow_lower_right"]],2199:["↙",["arrow_lower_left"]],"21a9":["↩",["leftwards_arrow_with_hook"]],"21aa":["↪",["arrow_right_hook"]],"231a":["⌚",["watch"]],"231b":["⌛",["hourglass"]],"23e9":["⏩",["fast_forward"]],"23ea":["⏪",["rewind"]],"23eb":["⏫",["arrow_double_up"]],"23ec":["⏬",["arrow_double_down"]],"23f0":["⏰",["alarm_clock"]],"23f3":["⏳",["hourglass_flowing_sand"]],"24c2":["Ⓜ",["m"]],"25aa":["▪",["black_small_square"]],"25ab":["▫",["white_small_square"]],"25b6":["▶",["arrow_forward"]],"25c0":["◀",["arrow_backward"]],"25fb":["◻",["white_medium_square"]],"25fc":["◼",["black_medium_square"]],"25fd":["◽",["white_medium_small_square"]],"25fe":["◾",["black_medium_small_square"]],2600:["☀",["sunny"]],2601:["☁",["cloud"]],"260e":["☎",["phone","telephone"]],2611:["☑",["ballot_box_with_check"]],2614:["☔",["umbrella"]],2615:["☕",["coffee"]],"261d":["☝",["point_up"]],"263a":["☺",["relaxed"]],2648:["♈",["aries"]],2649:["♉",["taurus"]],"264a":["♊",["gemini"]],"264b":["♋",["cancer"]],"264c":["♌",["leo"]],"264d":["♍",["virgo"]],"264e":["♎",["libra"]],"264f":["♏",["scorpius"]],2650:["♐",["sagittarius"]],2651:["♑",["capricorn"]],2652:["♒",["aquarius"]],2653:["♓",["pisces"]],2660:["♠",["spades"]],2663:["♣",["clubs"]],2665:["♥",["hearts"]],2666:["♦",["diamonds"]],2668:["♨",["hotsprings"]],"267b":["♻",["recycle"]],"267f":["♿",["wheelchair"]],2693:["⚓",["anchor"]],"26a0":["⚠",["warning"]],"26a1":["⚡",["zap"]],"26aa":["⚪",["white_circle"]],"26ab":["⚫",["black_circle"]],"26bd":["⚽",["soccer"]],"26be":["⚾",["baseball"]],"26c4":["⛄",["snowman"]],"26c5":["⛅",["partly_sunny"]],"26ce":["⛎",["ophiuchus"]],"26d4":["⛔",["no_entry"]],"26ea":["⛪",["church"]],"26f2":["⛲",["fountain"]],"26f3":["⛳",["golf"]],"26f5":["⛵",["boat","sailboat"]],"26fa":["⛺",["tent"]],"26fd":["⛽",["fuelpump"]],2702:["✂",["scissors"]],2705:["✅",["white_check_mark"]],2708:["✈",["airplane"]],2709:["✉",["email","envelope"]],"270a":["✊",["fist"]],"270b":["✋",["hand","raised_hand"]],"270c":["✌",["v"]],"270f":["✏",["pencil2"]],2712:["✒",["black_nib"]],2714:["✔",["heavy_check_mark"]],2716:["✖",["heavy_multiplication_x"]],2728:["✨",["sparkles"]],2733:["✳",["eight_spoked_asterisk"]],2734:["✴",["eight_pointed_black_star"]],2744:["❄",["snowflake"]],2747:["❇",["sparkle"]],"274c":["❌",["x"]],"274e":["❎",["negative_squared_cross_mark"]],2753:["❓",["question"]],2754:["❔",["grey_question"]],2755:["❕",["grey_exclamation"]],2757:["❗",["exclamation","heavy_exclamation_mark"]],2764:["❤",["heart"],"<3"],2795:["➕",["heavy_plus_sign"]],2796:["➖",["heavy_minus_sign"]],2797:["➗",["heavy_division_sign"]],"27a1":["➡",["arrow_right"]],"27b0":["➰",["curly_loop"]],"27bf":["➿",["loop"]],2934:["⤴",["arrow_heading_up"]],2935:["⤵",["arrow_heading_down"]],"2b05":["⬅",["arrow_left"]],"2b06":["⬆",["arrow_up"]],"2b07":["⬇",["arrow_down"]],"2b1b":["⬛",["black_large_square"]],"2b1c":["⬜",["white_large_square"]],"2b50":["⭐",["star"]],"2b55":["⭕",["o"]],3030:["〰",["wavy_dash"]],"303d":["〽",["part_alternation_mark"]],3297:["㊗",["congratulations"]],3299:["㊙",["secret"]],"1f004":["🀄",["mahjong"]],"1f0cf":["🃏",["black_joker"]],"1f170":["🅰",["a"]],"1f171":["🅱",["b"]],"1f17e":["🅾",["o2"]],"1f17f":["🅿",["parking"]],"1f18e":["🆎",["ab"]],"1f191":["🆑",["cl"]],"1f192":["🆒",["cool"]],"1f193":["🆓",["free"]],"1f194":["🆔",["id"]],"1f195":["🆕",["new"]],"1f196":["🆖",["ng"]],"1f197":["🆗",["ok"]],"1f198":["🆘",["sos"]],"1f199":["🆙",["up"]],"1f19a":["🆚",["vs"]],"1f201":["🈁",["koko"]],"1f202":["🈂",["sa"]],"1f21a":["🈚",["u7121"]],"1f22f":["🈯",["u6307"]],"1f232":["🈲",["u7981"]],"1f233":["🈳",["u7a7a"]],"1f234":["🈴",["u5408"]],"1f235":["🈵",["u6e80"]],"1f236":["🈶",["u6709"]],"1f237":["🈷",["u6708"]],"1f238":["🈸",["u7533"]],"1f239":["🈹",["u5272"]],"1f23a":["🈺",["u55b6"]],"1f250":["🉐",["ideograph_advantage"]],"1f251":["🉑",["accept"]],"1f300":["🌀",["cyclone"]],"1f301":["🌁",["foggy"]],"1f302":["🌂",["closed_umbrella"]],"1f303":["🌃",["night_with_stars"]],"1f304":["🌄",["sunrise_over_mountains"]],"1f305":["🌅",["sunrise"]],"1f306":["🌆",["city_sunset"]],"1f307":["🌇",["city_sunrise"]],"1f308":["🌈",["rainbow"]],"1f309":["🌉",["bridge_at_night"]],"1f30a":["🌊",["ocean"]],"1f30b":["🌋",["volcano"]],"1f30c":["🌌",["milky_way"]],"1f30d":["🌍",["earth_africa"]],"1f30e":["🌎",["earth_americas"]],"1f30f":["🌏",["earth_asia"]],"1f310":["🌐",["globe_with_meridians"]],"1f311":["🌑",["new_moon"]],"1f312":["🌒",["waxing_crescent_moon"]],"1f313":["🌓",["first_quarter_moon"]],"1f314":["🌔",["moon","waxing_gibbous_moon"]],"1f315":["🌕",["full_moon"]],"1f316":["🌖",["waning_gibbous_moon"]],"1f317":["🌗",["last_quarter_moon"]],"1f318":["🌘",["waning_crescent_moon"]],"1f319":["🌙",["crescent_moon"]],"1f320":["🌠",["stars"]],"1f31a":["🌚",["new_moon_with_face"]],"1f31b":["🌛",["first_quarter_moon_with_face"]],"1f31c":["🌜",["last_quarter_moon_with_face"]],"1f31d":["🌝",["full_moon_with_face"]],"1f31e":["🌞",["sun_with_face"]],"1f31f":["🌟",["star2"]],"1f330":["🌰",["chestnut"]],"1f331":["🌱",["seedling"]],"1f332":["🌲",["evergreen_tree"]],"1f333":["🌳",["deciduous_tree"]],"1f334":["🌴",["palm_tree"]],"1f335":["🌵",["cactus"]],"1f337":["🌷",["tulip"]],"1f338":["🌸",["cherry_blossom"]],"1f339":["🌹",["rose"]],"1f33a":["🌺",["hibiscus"]],"1f33b":["🌻",["sunflower"]],"1f33c":["🌼",["blossom"]],"1f33d":["🌽",["corn"]],"1f33e":["🌾",["ear_of_rice"]],"1f33f":["🌿",["herb"]],"1f340":["🍀",["four_leaf_clover"]],"1f341":["🍁",["maple_leaf"]],"1f342":["🍂",["fallen_leaf"]],"1f343":["🍃",["leaves"]],"1f344":["🍄",["mushroom"]],"1f345":["🍅",["tomato"]],"1f346":["🍆",["eggplant"]],"1f347":["🍇",["grapes"]],"1f348":["🍈",["melon"]],"1f349":["🍉",["watermelon"]],"1f34a":["🍊",["tangerine"]],"1f34b":["🍋",["lemon"]],"1f34c":["🍌",["banana"]],"1f34d":["🍍",["pineapple"]],"1f34e":["🍎",["apple"]],"1f34f":["🍏",["green_apple"]],"1f350":["🍐",["pear"]],"1f351":["🍑",["peach"]],"1f352":["🍒",["cherries"]],"1f353":["🍓",["strawberry"]],"1f354":["🍔",["hamburger"]],"1f355":["🍕",["pizza"]],"1f356":["🍖",["meat_on_bone"]],"1f357":["🍗",["poultry_leg"]],"1f358":["🍘",["rice_cracker"]],"1f359":["🍙",["rice_ball"]],"1f35a":["🍚",["rice"]],"1f35b":["🍛",["curry"]],"1f35c":["🍜",["ramen"]],"1f35d":["🍝",["spaghetti"]],"1f35e":["🍞",["bread"]],"1f35f":["🍟",["fries"]],"1f360":["🍠",["sweet_potato"]],"1f361":["🍡",["dango"]],"1f362":["🍢",["oden"]],"1f363":["🍣",["sushi"]],"1f364":["🍤",["fried_shrimp"]],"1f365":["🍥",["fish_cake"]],"1f366":["🍦",["icecream"]],"1f367":["🍧",["shaved_ice"]],"1f368":["🍨",["ice_cream"]],"1f369":["🍩",["doughnut"]],"1f36a":["🍪",["cookie"]],"1f36b":["🍫",["chocolate_bar"]],"1f36c":["🍬",["candy"]],"1f36d":["🍭",["lollipop"]],"1f36e":["🍮",["custard"]],"1f36f":["🍯",["honey_pot"]],"1f370":["🍰",["cake"]],"1f371":["🍱",["bento"]],"1f372":["🍲",["stew"]],"1f373":["🍳",["egg"]],"1f374":["🍴",["fork_and_knife"]],"1f375":["🍵",["tea"]],"1f376":["🍶",["sake"]],"1f377":["🍷",["wine_glass"]],"1f378":["🍸",["cocktail"]],"1f379":["🍹",["tropical_drink"]],"1f37a":["🍺",["beer"]],"1f37b":["🍻",["beers"]],"1f37c":["🍼",["baby_bottle"]],"1f380":["🎀",["ribbon"]],"1f381":["🎁",["gift"]],"1f382":["🎂",["birthday"]],"1f383":["🎃",["jack_o_lantern"]],"1f384":["🎄",["christmas_tree"]],"1f385":["🎅",["santa"]],"1f386":["🎆",["fireworks"]],"1f387":["🎇",["sparkler"]],"1f388":["🎈",["balloon"]],"1f389":["🎉",["tada"]],"1f38a":["🎊",["confetti_ball"]],"1f38b":["🎋",["tanabata_tree"]],"1f38c":["🎌",["crossed_flags"]],"1f38d":["🎍",["bamboo"]],"1f38e":["🎎",["dolls"]],"1f38f":["🎏",["flags"]],"1f390":["🎐",["wind_chime"]],"1f391":["🎑",["rice_scene"]],"1f392":["🎒",["school_satchel"]],"1f393":["🎓",["mortar_board"]],"1f3a0":["🎠",["carousel_horse"]],"1f3a1":["🎡",["ferris_wheel"]],"1f3a2":["🎢",["roller_coaster"]],"1f3a3":["🎣",["fishing_pole_and_fish"]],"1f3a4":["🎤",["microphone"]],"1f3a5":["🎥",["movie_camera"]],"1f3a6":["🎦",["cinema"]],"1f3a7":["🎧",["headphones"]],"1f3a8":["🎨",["art"]],"1f3a9":["🎩",["tophat"]],"1f3aa":["🎪",["circus_tent"]],"1f3ab":["🎫",["ticket"]],"1f3ac":["🎬",["clapper"]],"1f3ad":["🎭",["performing_arts"]],"1f3ae":["🎮",["video_game"]],"1f3af":["🎯",["dart"]],"1f3b0":["🎰",["slot_machine"]],"1f3b1":["🎱",["8ball"]],"1f3b2":["🎲",["game_die"]],"1f3b3":["🎳",["bowling"]],"1f3b4":["🎴",["flower_playing_cards"]],"1f3b5":["🎵",["musical_note"]],"1f3b6":["🎶",["notes"]],"1f3b7":["🎷",["saxophone"]],"1f3b8":["🎸",["guitar"]],"1f3b9":["🎹",["musical_keyboard"]],"1f3ba":["🎺",["trumpet"]],"1f3bb":["🎻",["violin"]],"1f3bc":["🎼",["musical_score"]],"1f3bd":["🎽",["running_shirt_with_sash"]],"1f3be":["🎾",["tennis"]],"1f3bf":["🎿",["ski"]],"1f3c0":["🏀",["basketball"]],"1f3c1":["🏁",["checkered_flag"]],"1f3c2":["🏂",["snowboarder"]],"1f3c3":["🏃",["runner","running"]],"1f3c4":["🏄",["surfer"]],"1f3c6":["🏆",["trophy"]],"1f3c7":["🏇",["horse_racing"]],"1f3c8":["🏈",["football"]],"1f3c9":["🏉",["rugby_football"]],"1f3ca":["🏊",["swimmer"]],"1f3e0":["🏠",["house"]],"1f3e1":["🏡",["house_with_garden"]],"1f3e2":["🏢",["office"]],"1f3e3":["🏣",["post_office"]],"1f3e4":["🏤",["european_post_office"]],"1f3e5":["🏥",["hospital"]],"1f3e6":["🏦",["bank"]],"1f3e7":["🏧",["atm"]],"1f3e8":["🏨",["hotel"]],"1f3e9":["🏩",["love_hotel"]],"1f3ea":["🏪",["convenience_store"]],"1f3eb":["🏫",["school"]],"1f3ec":["🏬",["department_store"]],"1f3ed":["🏭",["factory"]],"1f3ee":["🏮",["izakaya_lantern","lantern"]],"1f3ef":["🏯",["japanese_castle"]],"1f3f0":["🏰",["european_castle"]],"1f400":["🐀",["rat"]],"1f401":["🐁",["mouse2"]],"1f402":["🐂",["ox"]],"1f403":["🐃",["water_buffalo"]],"1f404":["🐄",["cow2"]],"1f405":["🐅",["tiger2"]],"1f406":["🐆",["leopard"]],"1f407":["🐇",["rabbit2"]],"1f408":["🐈",["cat2"]],"1f409":["🐉",["dragon"]],"1f40a":["🐊",["crocodile"]],"1f40b":["🐋",["whale2"]],"1f40c":["🐌",["snail"]],"1f40d":["🐍",["snake"]],"1f40e":["🐎",["racehorse"]],"1f40f":["🐏",["ram"]],"1f410":["🐐",["goat"]],"1f411":["🐑",["sheep"]],"1f412":["🐒",["monkey"]],"1f413":["🐓",["rooster"]],"1f414":["🐔",["chicken"]],"1f415":["🐕",["dog2"]],"1f416":["🐖",["pig2"]],"1f417":["🐗",["boar"]],"1f418":["🐘",["elephant"]],"1f419":["🐙",["octopus"]],"1f41a":["🐚",["shell"]],"1f41b":["🐛",["bug"]],"1f41c":["🐜",["ant"]],"1f41d":["🐝",["bee","honeybee"]],"1f41e":["🐞",["beetle"]],"1f41f":["🐟",["fish"]],"1f420":["🐠",["tropical_fish"]],"1f421":["🐡",["blowfish"]],"1f422":["🐢",["turtle"]],"1f423":["🐣",["hatching_chick"]],"1f424":["🐤",["baby_chick"]],"1f425":["🐥",["hatched_chick"]],"1f426":["🐦",["bird"]],"1f427":["🐧",["penguin"]],"1f428":["🐨",["koala"]],"1f429":["🐩",["poodle"]],"1f42a":["🐪",["dromedary_camel"]],"1f42b":["🐫",["camel"]],"1f42c":["🐬",["dolphin","flipper"]],"1f42d":["🐭",["mouse"]],"1f42e":["🐮",["cow"]],"1f42f":["🐯",["tiger"]],"1f430":["🐰",["rabbit"]],"1f431":["🐱",["cat"]],"1f432":["🐲",["dragon_face"]],"1f433":["🐳",["whale"]],"1f434":["🐴",["horse"]],"1f435":["🐵",["monkey_face"]],"1f436":["🐶",["dog"]],"1f437":["🐷",["pig"]],"1f438":["🐸",["frog"]],"1f439":["🐹",["hamster"]],"1f43a":["🐺",["wolf"]],"1f43b":["🐻",["bear"]],"1f43c":["🐼",["panda_face"]],"1f43d":["🐽",["pig_nose"]],"1f43e":["🐾",["feet","paw_prints"]],"1f440":["👀",["eyes"]],"1f442":["👂",["ear"]],"1f443":["👃",["nose"]],"1f444":["👄",["lips"]],"1f445":["👅",["tongue"]],"1f446":["👆",["point_up_2"]],"1f447":["👇",["point_down"]],"1f448":["👈",["point_left"]],"1f449":["👉",["point_right"]],"1f44a":["👊",["facepunch","punch"]],"1f44b":["👋",["wave"]],"1f44c":["👌",["ok_hand"]],"1f44d":["👍",["+1","thumbsup"]],"1f44e":["👎",["-1","thumbsdown"]],"1f44f":["👏",["clap"]],"1f450":["👐",["open_hands"]],"1f451":["👑",["crown"]],"1f452":["👒",["womans_hat"]],"1f453":["👓",["eyeglasses"]],"1f454":["👔",["necktie"]],"1f455":["👕",["shirt","tshirt"]],"1f456":["👖",["jeans"]],"1f457":["👗",["dress"]],"1f458":["👘",["kimono"]],"1f459":["👙",["bikini"]],"1f45a":["👚",["womans_clothes"]],"1f45b":["👛",["purse"]],"1f45c":["👜",["handbag"]],"1f45d":["👝",["pouch"]],"1f45e":["👞",["mans_shoe","shoe"]],"1f45f":["👟",["athletic_shoe"]],"1f460":["👠",["high_heel"]],"1f461":["👡",["sandal"]],"1f462":["👢",["boot"]],"1f463":["👣",["footprints"]],"1f464":["👤",["bust_in_silhouette"]],"1f465":["👥",["busts_in_silhouette"]],"1f466":["👦",["boy"]],"1f467":["👧",["girl"]],"1f468":["👨",["man"]],"1f469":["👩",["woman"]],"1f46a":["👪",["family"]],"1f46b":["👫",["couple"]],"1f46c":["👬",["two_men_holding_hands"]],"1f46d":["👭",["two_women_holding_hands"]],"1f46e":["👮",["cop"]],"1f46f":["👯",["dancers"]],"1f470":["👰",["bride_with_veil"]],"1f471":["👱",["person_with_blond_hair"]],"1f472":["👲",["man_with_gua_pi_mao"]],"1f473":["👳",["man_with_turban"]],"1f474":["👴",["older_man"]],"1f475":["👵",["older_woman"]],"1f476":["👶",["baby"]],"1f477":["👷",["construction_worker"]],"1f478":["👸",["princess"]],"1f479":["👹",["japanese_ogre"]],"1f47a":["👺",["japanese_goblin"]],"1f47b":["👻",["ghost"]],"1f47c":["👼",["angel"]],"1f47d":["👽",["alien"]],"1f47e":["👾",["space_invader"]],"1f47f":["👿",["imp"]],"1f480":["💀",["skull"]],"1f481":["💁",["information_desk_person"]],"1f482":["💂",["guardsman"]],"1f483":["💃",["dancer"]],"1f484":["💄",["lipstick"]],"1f485":["💅",["nail_care"]],"1f486":["💆",["massage"]],"1f487":["💇",["haircut"]],"1f488":["💈",["barber"]],"1f489":["💉",["syringe"]],"1f48a":["💊",["pill"]],"1f48b":["💋",["kiss"]],"1f48c":["💌",["love_letter"]],"1f48d":["💍",["ring"]],"1f48e":["💎",["gem"]],"1f48f":["💏",["couplekiss"]],"1f490":["💐",["bouquet"]],"1f491":["💑",["couple_with_heart"]],"1f492":["💒",["wedding"]],"1f493":["💓",["heartbeat"]],"1f494":["💔",["broken_heart"],"</3"],"1f495":["💕",["two_hearts"]],"1f496":["💖",["sparkling_heart"]],"1f497":["💗",["heartpulse"]],"1f498":["💘",["cupid"]],"1f499":["💙",["blue_heart"],"<3"],"1f49a":["💚",["green_heart"],"<3"],"1f49b":["💛",["yellow_heart"],"<3"],"1f49c":["💜",["purple_heart"],"<3"],"1f49d":["💝",["gift_heart"]],"1f49e":["💞",["revolving_hearts"]],"1f49f":["💟",["heart_decoration"]],"1f4a0":["💠",["diamond_shape_with_a_dot_inside"]],"1f4a1":["💡",["bulb"]],"1f4a2":["💢",["anger"]],"1f4a3":["💣",["bomb"]],"1f4a4":["💤",["zzz"]],"1f4a5":["💥",["boom","collision"]],"1f4a6":["💦",["sweat_drops"]],"1f4a7":["💧",["droplet"]],"1f4a8":["💨",["dash"]],"1f4a9":["💩",["hankey","poop","shit"]],"1f4aa":["💪",["muscle"]],"1f4ab":["💫",["dizzy"]],"1f4ac":["💬",["speech_balloon"]],"1f4ad":["💭",["thought_balloon"]],"1f4ae":["💮",["white_flower"]],"1f4af":["💯",["100"]],"1f4b0":["💰",["moneybag"]],"1f4b1":["💱",["currency_exchange"]],"1f4b2":["💲",["heavy_dollar_sign"]],"1f4b3":["💳",["credit_card"]],"1f4b4":["💴",["yen"]],"1f4b5":["💵",["dollar"]],"1f4b6":["💶",["euro"]],"1f4b7":["💷",["pound"]],"1f4b8":["💸",["money_with_wings"]],"1f4b9":["💹",["chart"]],"1f4ba":["💺",["seat"]],"1f4bb":["💻",["computer"]],"1f4bc":["💼",["briefcase"]],"1f4bd":["💽",["minidisc"]],"1f4be":["💾",["floppy_disk"]],"1f4bf":["💿",["cd"]],"1f4c0":["📀",["dvd"]],"1f4c1":["📁",["file_folder"]],"1f4c2":["📂",["open_file_folder"]],"1f4c3":["📃",["page_with_curl"]],"1f4c4":["📄",["page_facing_up"]],"1f4c5":["📅",["date"]],"1f4c6":["📆",["calendar"]],"1f4c7":["📇",["card_index"]],"1f4c8":["📈",["chart_with_upwards_trend"]],"1f4c9":["📉",["chart_with_downwards_trend"]],"1f4ca":["📊",["bar_chart"]],"1f4cb":["📋",["clipboard"]],"1f4cc":["📌",["pushpin"]],"1f4cd":["📍",["round_pushpin"]],"1f4ce":["📎",["paperclip"]],"1f4cf":["📏",["straight_ruler"]],"1f4d0":["📐",["triangular_ruler"]],"1f4d1":["📑",["bookmark_tabs"]],"1f4d2":["📒",["ledger"]],"1f4d3":["📓",["notebook"]],"1f4d4":["📔",["notebook_with_decorative_cover"]],"1f4d5":["📕",["closed_book"]],"1f4d6":["📖",["book","open_book"]],"1f4d7":["📗",["green_book"]],"1f4d8":["📘",["blue_book"]],"1f4d9":["📙",["orange_book"]],"1f4da":["📚",["books"]],"1f4db":["📛",["name_badge"]],"1f4dc":["📜",["scroll"]],"1f4dd":["📝",["memo","pencil"]],"1f4de":["📞",["telephone_receiver"]],"1f4df":["📟",["pager"]],"1f4e0":["📠",["fax"]],"1f4e1":["📡",["satellite"]],"1f4e2":["📢",["loudspeaker"]],"1f4e3":["📣",["mega"]],"1f4e4":["📤",["outbox_tray"]],"1f4e5":["📥",["inbox_tray"]],"1f4e6":["📦",["package"]],"1f4e7":["📧",["e-mail"]],"1f4e8":["📨",["incoming_envelope"]],"1f4e9":["📩",["envelope_with_arrow"]],"1f4ea":["📪",["mailbox_closed"]],"1f4eb":["📫",["mailbox"]],"1f4ec":["📬",["mailbox_with_mail"]],"1f4ed":["📭",["mailbox_with_no_mail"]],"1f4ee":["📮",["postbox"]],"1f4ef":["📯",["postal_horn"]],"1f4f0":["📰",["newspaper"]],"1f4f1":["📱",["iphone"]],"1f4f2":["📲",["calling"]],"1f4f3":["📳",["vibration_mode"]],"1f4f4":["📴",["mobile_phone_off"]],"1f4f5":["📵",["no_mobile_phones"]],"1f4f6":["📶",["signal_strength"]],"1f4f7":["📷",["camera"]],"1f4f9":["📹",["video_camera"]],"1f4fa":["📺",["tv"]],"1f4fb":["📻",["radio"]],"1f4fc":["📼",["vhs"]],"1f500":["🔀",["twisted_rightwards_arrows"]],"1f501":["🔁",["repeat"]],"1f502":["🔂",["repeat_one"]],"1f503":["🔃",["arrows_clockwise"]],"1f504":["🔄",["arrows_counterclockwise"]],"1f505":["🔅",["low_brightness"]],"1f506":["🔆",["high_brightness"]],"1f507":["🔇",["mute"]],"1f508":["🔉",["speaker"]],"1f509":["🔉",["sound"]],"1f50a":["🔊",["loud_sound"]],"1f50b":["🔋",["battery"]],"1f50c":["🔌",["electric_plug"]],"1f50d":["🔍",["mag"]],"1f50e":["🔎",["mag_right"]],"1f50f":["🔏",["lock_with_ink_pen"]],"1f510":["🔐",["closed_lock_with_key"]],"1f511":["🔑",["key"]],"1f512":["🔒",["lock"]],"1f513":["🔓",["unlock"]],"1f514":["🔔",["bell"]],"1f515":["🔕",["no_bell"]],"1f516":["🔖",["bookmark"]],"1f517":["🔗",["link"]],"1f518":["🔘",["radio_button"]],"1f519":["🔙",["back"]],"1f51a":["🔚",["end"]],"1f51b":["🔛",["on"]],"1f51c":["🔜",["soon"]],"1f51d":["🔝",["top"]],"1f51e":["🔞",["underage"]],"1f51f":["🔟",["keycap_ten"]],"1f520":["🔠",["capital_abcd"]],"1f521":["🔡",["abcd"]],"1f522":["🔢",["1234"]],"1f523":["🔣",["symbols"]],"1f524":["🔤",["abc"]],"1f525":["🔥",["fire"]],"1f526":["🔦",["flashlight"]],"1f527":["🔧",["wrench"]],"1f528":["🔨",["hammer"]],"1f529":["🔩",["nut_and_bolt"]],"1f52a":["🔪",["hocho"]],"1f52b":["🔫",["gun"]],"1f52c":["🔬",["microscope"]],"1f52d":["🔭",["telescope"]],"1f52e":["🔮",["crystal_ball"]],"1f52f":["🔯",["six_pointed_star"]],"1f530":["🔰",["beginner"]],"1f531":["🔱",["trident"]],"1f532":["🔲",["black_square_button"]],"1f533":["🔳",["white_square_button"]],"1f534":["🔴",["red_circle"]],"1f535":["🔵",["large_blue_circle"]],"1f536":["🔶",["large_orange_diamond"]],"1f537":["🔷",["large_blue_diamond"]],"1f538":["🔸",["small_orange_diamond"]],
"1f539":["🔹",["small_blue_diamond"]],"1f53a":["🔺",["small_red_triangle"]],"1f53b":["🔻",["small_red_triangle_down"]],"1f53c":["🔼",["arrow_up_small"]],"1f53d":["🔽",["arrow_down_small"]],"1f550":["🕐",["clock1"]],"1f551":["🕑",["clock2"]],"1f552":["🕒",["clock3"]],"1f553":["🕓",["clock4"]],"1f554":["🕔",["clock5"]],"1f555":["🕕",["clock6"]],"1f556":["🕖",["clock7"]],"1f557":["🕗",["clock8"]],"1f558":["🕘",["clock9"]],"1f559":["🕙",["clock10"]],"1f55a":["🕚",["clock11"]],"1f55b":["🕛",["clock12"]],"1f55c":["🕜",["clock130"]],"1f55d":["🕝",["clock230"]],"1f55e":["🕞",["clock330"]],"1f55f":["🕟",["clock430"]],"1f560":["🕠",["clock530"]],"1f561":["🕡",["clock630"]],"1f562":["🕢",["clock730"]],"1f563":["🕣",["clock830"]],"1f564":["🕤",["clock930"]],"1f565":["🕥",["clock1030"]],"1f566":["🕦",["clock1130"]],"1f567":["🕧",["clock1230"]],"1f5fb":["🗻",["mount_fuji"]],"1f5fc":["🗼",["tokyo_tower"]],"1f5fd":["🗽",["statue_of_liberty"]],"1f5fe":["🗾",["japan"]],"1f5ff":["🗿",["moyai"]],"1f600":["😀",["grinning"]],"1f601":["😁",["grin"]],"1f602":["😂",["joy"]],"1f603":["😃",["smiley"],":)"],"1f604":["😄",["smile"],":)"],"1f605":["😅",["sweat_smile"]],"1f606":["😆",["laughing","satisfied"]],"1f607":["😇",["innocent"]],"1f608":["😈",["smiling_imp"]],"1f609":["😉",["wink"],";)"],"1f60a":["😊",["blush"]],"1f60b":["😋",["yum"]],"1f60c":["😌",["relieved"]],"1f60d":["😍",["heart_eyes"]],"1f60e":["😎",["sunglasses"]],"1f60f":["😏",["smirk"]],"1f610":["😐",["neutral_face"]],"1f611":["😑",["expressionless"]],"1f612":["😒",["unamused"]],"1f613":["😓",["sweat"]],"1f614":["😔",["pensive"]],"1f615":["😕",["confused"]],"1f616":["😖",["confounded"]],"1f617":["😗",["kissing"]],"1f618":["😘",["kissing_heart"]],"1f619":["😙",["kissing_smiling_eyes"]],"1f61a":["😚",["kissing_closed_eyes"]],"1f61b":["😛",["stuck_out_tongue"]],"1f61c":["😜",["stuck_out_tongue_winking_eye"],";p"],"1f61d":["😝",["stuck_out_tongue_closed_eyes"]],"1f61e":["😞",["disappointed"],":("],"1f61f":["😟",["worried"]],"1f620":["😠",["angry"]],"1f621":["😡",["rage"]],"1f622":["😢",["cry"],":'("],"1f623":["😣",["persevere"]],"1f624":["😤",["triumph"]],"1f625":["😥",["disappointed_relieved"]],"1f626":["😦",["frowning"]],"1f627":["😧",["anguished"]],"1f628":["😨",["fearful"]],"1f629":["😩",["weary"]],"1f62a":["😪",["sleepy"]],"1f62b":["😫",["tired_face"]],"1f62c":["😬",["grimacing"]],"1f62d":["😭",["sob"],":'("],"1f62e":["😮",["open_mouth"]],"1f62f":["😯",["hushed"]],"1f630":["😰",["cold_sweat"]],"1f631":["😱",["scream"]],"1f632":["😲",["astonished"]],"1f633":["😳",["flushed"]],"1f634":["😴",["sleeping"]],"1f635":["😵",["dizzy_face"]],"1f636":["😶",["no_mouth"]],"1f637":["😷",["mask"]],"1f638":["😸",["smile_cat"]],"1f639":["😹",["joy_cat"]],"1f63a":["😺",["smiley_cat"]],"1f63b":["😻",["heart_eyes_cat"]],"1f63c":["😼",["smirk_cat"]],"1f63d":["😽",["kissing_cat"]],"1f63e":["😾",["pouting_cat"]],"1f63f":["😿",["crying_cat_face"]],"1f640":["🙀",["scream_cat"]],"1f645":["🙅",["no_good"]],"1f646":["🙆",["ok_woman"]],"1f647":["🙇",["bow"]],"1f648":["🙈",["see_no_evil"]],"1f649":["🙉",["hear_no_evil"]],"1f64a":["🙊",["speak_no_evil"]],"1f64b":["🙋",["raising_hand"]],"1f64c":["🙌",["raised_hands"]],"1f64d":["🙍",["person_frowning"]],"1f64e":["🙎",["person_with_pouting_face"]],"1f64f":["🙏",["pray"]],"1f680":["🚀",["rocket"]],"1f681":["🚁",["helicopter"]],"1f682":["🚂",["steam_locomotive"]],"1f683":["🚃",["railway_car"]],"1f68b":["🚋",["train"]],"1f684":["🚄",["bullettrain_side"]],"1f685":["🚅",["bullettrain_front"]],"1f686":["🚆",["train2"]],"1f687":["🚇",["metro"]],"1f688":["🚈",["light_rail"]],"1f689":["🚉",["station"]],"1f68a":["🚊",["tram"]],"1f68c":["🚌",["bus"]],"1f68d":["🚍",["oncoming_bus"]],"1f68e":["🚎",["trolleybus"]],"1f68f":["🚏",["busstop"]],"1f690":["🚐",["minibus"]],"1f691":["🚑",["ambulance"]],"1f692":["🚒",["fire_engine"]],"1f693":["🚓",["police_car"]],"1f694":["🚔",["oncoming_police_car"]],"1f695":["🚕",["taxi"]],"1f696":["🚖",["oncoming_taxi"]],"1f697":["🚗",["car","red_car"]],"1f698":["🚘",["oncoming_automobile"]],"1f699":["🚙",["blue_car"]],"1f69a":["🚚",["truck"]],"1f69b":["🚛",["articulated_lorry"]],"1f69c":["🚜",["tractor"]],"1f69d":["🚝",["monorail"]],"1f69e":["🚞",["mountain_railway"]],"1f69f":["🚟",["suspension_railway"]],"1f6a0":["🚠",["mountain_cableway"]],"1f6a1":["🚡",["aerial_tramway"]],"1f6a2":["🚢",["ship"]],"1f6a3":["🚣",["rowboat"]],"1f6a4":["🚤",["speedboat"]],"1f6a5":["🚥",["traffic_light"]],"1f6a6":["🚦",["vertical_traffic_light"]],"1f6a7":["🚧",["construction"]],"1f6a8":["🚨",["rotating_light"]],"1f6a9":["🚩",["triangular_flag_on_post"]],"1f6aa":["🚪",["door"]],"1f6ab":["🚫",["no_entry_sign"]],"1f6ac":["🚬",["smoking"]],"1f6ad":["🚭",["no_smoking"]],"1f6ae":["🚮",["put_litter_in_its_place"]],"1f6af":["🚯",["do_not_litter"]],"1f6b0":["🚰",["potable_water"]],"1f6b1":["🚱",["non-potable_water"]],"1f6b2":["🚲",["bike"]],"1f6b3":["🚳",["no_bicycles"]],"1f6b4":["🚴",["bicyclist"]],"1f6b5":["🚵",["mountain_bicyclist"]],"1f6b6":["🚶",["walking"]],"1f6b7":["🚷",["no_pedestrians"]],"1f6b8":["🚸",["children_crossing"]],"1f6b9":["🚹",["mens"]],"1f6ba":["🚺",["womens"]],"1f6bb":["🚻",["restroom"]],"1f6bc":["🚼",["baby_symbol"]],"1f6bd":["🚽",["toilet"]],"1f6be":["🚾",["wc"]],"1f6bf":["🚿",["shower"]],"1f6c0":["🛀",["bath"]],"1f6c1":["🛁",["bathtub"]],"1f6c2":["🛂",["passport_control"]],"1f6c3":["🛃",["customs"]],"1f6c4":["🛄",["baggage_claim"]],"1f6c5":["🛅",["left_luggage"]],"0023":["#",["hash"]],"0030":["0",["zero"]],"0031":["1",["one"]],"0032":["2",["two"]],"0033":["3",["three"]],"0034":["4",["four"]],"0035":["5",["five"]],"0036":["6",["six"]],"0037":["7",["seven"]],"0038":["8",["eight"]],"0039":["9",["nine"]],"1f1e8-1f1f3":["🇨🇳",["cn"]],"1f1e9-1f1ea":["🇩🇪",["de"]],"1f1ea-1f1f8":["🇪🇸",["es"]],"1f1eb-1f1f7":["🇫🇷",["fr"]],"1f1ec-1f1e7":["🇬🇧",["gb","uk"]],"1f1ee-1f1f9":["🇮🇹",["it"]],"1f1ef-1f1f5":["🇯🇵",["jp"]],"1f1f0-1f1f7":["🇰🇷",["kr"]],"1f1f7-1f1fa":["🇷🇺",["ru"]],"1f1fa-1f1f8":["🇺🇸",["us"]]},Config.EmojiCategories=[["1f604","1f603","1f600","1f60a","263a","1f609","1f60d","1f618","1f61a","1f617","1f619","1f61c","1f61d","1f61b","1f633","1f601","1f614","1f60c","1f612","1f61e","1f623","1f622","1f602","1f62d","1f62a","1f625","1f630","1f605","1f613","1f629","1f62b","1f628","1f631","1f620","1f621","1f624","1f616","1f606","1f60b","1f637","1f60e","1f634","1f635","1f632","1f61f","1f626","1f627","1f608","1f47f","1f62e","1f62c","1f610","1f615","1f62f","1f636","1f607","1f60f","1f611","1f472","1f473","1f46e","1f477","1f482","1f476","1f466","1f467","1f468","1f469","1f474","1f475","1f471","1f47c","1f478","1f63a","1f638","1f63b","1f63d","1f63c","1f640","1f63f","1f639","1f63e","1f479","1f47a","1f648","1f649","1f64a","1f480","1f47d","1f4a9","1f525","2728","1f31f","1f4ab","1f4a5","1f4a2","1f4a6","1f4a7","1f4a4","1f4a8","1f442","1f440","1f443","1f445","1f444","1f44d","1f44e","1f44c","1f44a","270a","270c","1f44b","270b","1f450","1f446","1f447","1f449","1f448","1f64c","1f64f","261d","1f44f","1f4aa","1f6b6","1f3c3","1f483","1f46b","1f46a","1f46c","1f46d","1f48f","1f491","1f46f","1f646","1f645","1f481","1f64b","1f486","1f487","1f485","1f470","1f64e","1f64d","1f647","1f3a9","1f451","1f452","1f45f","1f45e","1f461","1f460","1f462","1f455","1f454","1f45a","1f457","1f3bd","1f456","1f458","1f459","1f4bc","1f45c","1f45d","1f45b","1f453","1f380","1f302","1f484","1f49b","1f499","1f49c","1f49a","2764","1f494","1f497","1f493","1f495","1f496","1f49e","1f498","1f48c","1f48b","1f48d","1f48e","1f464","1f465","1f4ac","1f463","1f4ad"],["1f436","1f43a","1f431","1f42d","1f439","1f430","1f438","1f42f","1f428","1f43b","1f437","1f43d","1f42e","1f417","1f435","1f412","1f434","1f411","1f418","1f43c","1f427","1f426","1f424","1f425","1f423","1f414","1f40d","1f422","1f41b","1f41d","1f41c","1f41e","1f40c","1f419","1f41a","1f420","1f41f","1f42c","1f433","1f40b","1f404","1f40f","1f400","1f403","1f405","1f407","1f409","1f40e","1f410","1f413","1f415","1f416","1f401","1f402","1f432","1f421","1f40a","1f42b","1f42a","1f406","1f408","1f429","1f43e","1f490","1f338","1f337","1f340","1f339","1f33b","1f33a","1f341","1f343","1f342","1f33f","1f33e","1f344","1f335","1f334","1f332","1f333","1f330","1f331","1f33c","1f310","1f31e","1f31d","1f31a","1f311","1f312","1f313","1f314","1f315","1f316","1f317","1f318","1f31c","1f31b","1f319","1f30d","1f30e","1f30f","1f30b","1f30c","1f320","2b50","2600","26c5","2601","26a1","2614","2744","26c4","1f300","1f301","1f308","1f30a"],["1f38d","1f49d","1f38e","1f392","1f393","1f38f","1f386","1f387","1f390","1f391","1f383","1f47b","1f385","1f384","1f381","1f38b","1f389","1f38a","1f388","1f38c","1f52e","1f3a5","1f4f7","1f4f9","1f4fc","1f4bf","1f4c0","1f4bd","1f4be","1f4bb","1f4f1","260e","1f4de","1f4df","1f4e0","1f4e1","1f4fa","1f4fb","1f50a","1f509","1f508","1f507","1f514","1f515","1f4e3","1f4e2","23f3","231b","23f0","231a","1f513","1f512","1f50f","1f510","1f511","1f50e","1f4a1","1f526","1f506","1f505","1f50c","1f50b","1f50d","1f6c0","1f6c1","1f6bf","1f6bd","1f527","1f529","1f528","1f6aa","1f6ac","1f4a3","1f52b","1f52a","1f48a","1f489","1f4b0","1f4b4","1f4b5","1f4b7","1f4b6","1f4b3","1f4b8","1f4f2","1f4e7","1f4e5","1f4e4","2709","1f4e9","1f4e8","1f4ef","1f4eb","1f4ea","1f4ec","1f4ed","1f4ee","1f4e6","1f4dd","1f4c4","1f4c3","1f4d1","1f4ca","1f4c8","1f4c9","1f4dc","1f4cb","1f4c5","1f4c6","1f4c7","1f4c1","1f4c2","2702","1f4cc","1f4ce","2712","270f","1f4cf","1f4d0","1f4d5","1f4d7","1f4d8","1f4d9","1f4d3","1f4d4","1f4d2","1f4da","1f4d6","1f516","1f4db","1f52c","1f52d","1f4f0","1f3a8","1f3ac","1f3a4","1f3a7","1f3bc","1f3b5","1f3b6","1f3b9","1f3bb","1f3ba","1f3b7","1f3b8","1f47e","1f3ae","1f0cf","1f3b4","1f004","1f3b2","1f3af","1f3c8","1f3c0","26bd","26be","1f3be","1f3b1","1f3c9","1f3b3","26f3","1f6b5","1f6b4","1f3c1","1f3c7","1f3c6","1f3bf","1f3c2","1f3ca","1f3c4","1f3a3","2615","1f375","1f376","1f37c","1f37a","1f37b","1f378","1f379","1f377","1f374","1f355","1f354","1f35f","1f357","1f356","1f35d","1f35b","1f364","1f371","1f363","1f365","1f359","1f358","1f35a","1f35c","1f372","1f362","1f361","1f373","1f35e","1f369","1f36e","1f366","1f368","1f367","1f382","1f370","1f36a","1f36b","1f36c","1f36d","1f36f","1f34e","1f34f","1f34a","1f34b","1f352","1f347","1f349","1f353","1f351","1f348","1f34c","1f350","1f34d","1f360","1f346","1f345","1f33d"],["1f3e0","1f3e1","1f3eb","1f3e2","1f3e3","1f3e5","1f3e6","1f3ea","1f3e9","1f3e8","1f492","26ea","1f3ec","1f3e4","1f307","1f306","1f3ef","1f3f0","26fa","1f3ed","1f5fc","1f5fe","1f5fb","1f304","1f305","1f303","1f5fd","1f309","1f3a0","1f3a1","26f2","1f3a2","1f6a2","26f5","1f6a4","1f6a3","2693","1f680","2708","1f4ba","1f681","1f682","1f68a","1f689","1f69e","1f686","1f684","1f685","1f688","1f687","1f69d","1f683","1f68b","1f68e","1f68c","1f68d","1f699","1f698","1f697","1f695","1f696","1f69b","1f69a","1f6a8","1f693","1f694","1f692","1f691","1f690","1f6b2","1f6a1","1f69f","1f6a0","1f69c","1f488","1f68f","1f3ab","1f6a6","1f6a5","26a0","1f6a7","1f530","26fd","1f3ee","1f3b0","2668","1f5ff","1f3aa","1f3ad","1f4cd","1f6a9","1f1ef-1f1f5","1f1f0-1f1f7","1f1e9-1f1ea","1f1e8-1f1f3","1f1fa-1f1f8","1f1eb-1f1f7","1f1ea-1f1f8","1f1ee-1f1f9","1f1f7-1f1fa","1f1ec-1f1e7"],["0031","0032","0033","0034","0035","0036","0037","0038","0039","0030","1f51f","1f522","0023","1f523","2b06","2b07","2b05","27a1","1f520","1f521","1f524","2197","2196","2198","2199","2194","2195","1f504","25c0","25b6","1f53c","1f53d","21a9","21aa","2139","23ea","23e9","23eb","23ec","2935","2934","1f197","1f500","1f501","1f502","1f195","1f199","1f192","1f193","1f196","1f4f6","1f3a6","1f201","1f22f","1f233","1f235","1f234","1f232","1f250","1f239","1f23a","1f236","1f21a","1f6bb","1f6b9","1f6ba","1f6bc","1f6be","1f6b0","1f6ae","1f17f","267f","1f6ad","1f237","1f238","1f202","24c2","1f6c2","1f6c4","1f6c5","1f6c3","1f251","3299","3297","1f191","1f198","1f194","1f6ab","1f51e","1f4f5","1f6af","1f6b1","1f6b3","1f6b7","1f6b8","26d4","2733","2747","274e","2705","2734","1f49f","1f19a","1f4f3","1f4f4","1f170","1f171","1f18e","1f17e","1f4a0","27bf","267b","2648","2649","264a","264b","264c","264d","264e","264f","2650","2651","2652","2653","26ce","1f52f","1f3e7","1f4b9","1f4b2","1f4b1","00a9","00ae","2122","274c","203c","2049","2757","2753","2755","2754","2b55","1f51d","1f51a","1f519","1f51b","1f51c","1f503","1f55b","1f567","1f550","1f55c","1f551","1f55d","1f552","1f55e","1f553","1f55f","1f554","1f560","1f555","1f556","1f557","1f558","1f559","1f55a","1f561","1f562","1f563","1f564","1f565","1f566","2716","2795","2796","2797","2660","2665","2663","2666","1f4ae","1f4af","2714","2611","1f518","1f517","27b0","3030","303d","1f531","25fc","25fb","25fe","25fd","25aa","25ab","1f53a","1f532","1f533","26ab","26aa","1f534","1f535","1f53b","2b1c","2b1b","1f536","1f537","1f538","1f539"]],Config.EmojiCategorySpritesheetDimens=[[7,27],[4,29],[7,33],[3,34],[7,34]],Config.LatinizeMap={"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A","Ẳ":"A","Ẵ":"A","Ǎ":"A","Â":"A","Ấ":"A","Ậ":"A","Ầ":"A","Ẩ":"A","Ẫ":"A","Ä":"A","Ǟ":"A","Ȧ":"A","Ǡ":"A","Ạ":"A","Ȁ":"A","À":"A","Ả":"A","Ȃ":"A","Ā":"A","Ą":"A","Å":"A","Ǻ":"A","Ḁ":"A","Ⱥ":"A","Ã":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ḃ":"B","Ḅ":"B","Ɓ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ć":"C","Č":"C","Ç":"C","Ḉ":"C","Ĉ":"C","Ċ":"C","Ƈ":"C","Ȼ":"C","Ď":"D","Ḑ":"D","Ḓ":"D","Ḋ":"D","Ḍ":"D","Ɗ":"D","Ḏ":"D","Dz":"D","Dž":"D","Đ":"D","Ƌ":"D","DZ":"DZ","DŽ":"DZ","É":"E","Ĕ":"E","Ě":"E","Ȩ":"E","Ḝ":"E","Ê":"E","Ế":"E","Ệ":"E","Ề":"E","Ể":"E","Ễ":"E","Ḙ":"E","Ë":"E","Ė":"E","Ẹ":"E","Ȅ":"E","È":"E","Ẻ":"E","Ȇ":"E","Ē":"E","Ḗ":"E","Ḕ":"E","Ę":"E","Ɇ":"E","Ẽ":"E","Ḛ":"E","Ꝫ":"ET","Ḟ":"F","Ƒ":"F","Ǵ":"G","Ğ":"G","Ǧ":"G","Ģ":"G","Ĝ":"G","Ġ":"G","Ɠ":"G","Ḡ":"G","Ǥ":"G","Ḫ":"H","Ȟ":"H","Ḩ":"H","Ĥ":"H","Ⱨ":"H","Ḧ":"H","Ḣ":"H","Ḥ":"H","Ħ":"H","Í":"I","Ĭ":"I","Ǐ":"I","Î":"I","Ï":"I","Ḯ":"I","İ":"I","Ị":"I","Ȉ":"I","Ì":"I","Ỉ":"I","Ȋ":"I","Ī":"I","Į":"I","Ɨ":"I","Ĩ":"I","Ḭ":"I","Ꝺ":"D","Ꝼ":"F","Ᵹ":"G","Ꞃ":"R","Ꞅ":"S","Ꞇ":"T","Ꝭ":"IS","Ĵ":"J","Ɉ":"J","Ḱ":"K","Ǩ":"K","Ķ":"K","Ⱪ":"K","Ꝃ":"K","Ḳ":"K","Ƙ":"K","Ḵ":"K","Ꝁ":"K","Ꝅ":"K","Ĺ":"L","Ƚ":"L","Ľ":"L","Ļ":"L","Ḽ":"L","Ḷ":"L","Ḹ":"L","Ⱡ":"L","Ꝉ":"L","Ḻ":"L","Ŀ":"L","Ɫ":"L","Lj":"L","Ł":"L","LJ":"LJ","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ń":"N","Ň":"N","Ņ":"N","Ṋ":"N","Ṅ":"N","Ṇ":"N","Ǹ":"N","Ɲ":"N","Ṉ":"N","Ƞ":"N","Nj":"N","Ñ":"N","NJ":"NJ","Ó":"O","Ŏ":"O","Ǒ":"O","Ô":"O","Ố":"O","Ộ":"O","Ồ":"O","Ổ":"O","Ỗ":"O","Ö":"O","Ȫ":"O","Ȯ":"O","Ȱ":"O","Ọ":"O","Ő":"O","Ȍ":"O","Ò":"O","Ỏ":"O","Ơ":"O","Ớ":"O","Ợ":"O","Ờ":"O","Ở":"O","Ỡ":"O","Ȏ":"O","Ꝋ":"O","Ꝍ":"O","Ō":"O","Ṓ":"O","Ṑ":"O","Ɵ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Õ":"O","Ṍ":"O","Ṏ":"O","Ȭ":"O","Ƣ":"OI","Ꝏ":"OO","Ɛ":"E","Ɔ":"O","Ȣ":"OU","Ṕ":"P","Ṗ":"P","Ꝓ":"P","Ƥ":"P","Ꝕ":"P","Ᵽ":"P","Ꝑ":"P","Ꝙ":"Q","Ꝗ":"Q","Ŕ":"R","Ř":"R","Ŗ":"R","Ṙ":"R","Ṛ":"R","Ṝ":"R","Ȑ":"R","Ȓ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꜿ":"C","Ǝ":"E","Ś":"S","Ṥ":"S","Š":"S","Ṧ":"S","Ş":"S","Ŝ":"S","Ș":"S","Ṡ":"S","Ṣ":"S","Ṩ":"S","ẞ":"SS","Ť":"T","Ţ":"T","Ṱ":"T","Ț":"T","Ⱦ":"T","Ṫ":"T","Ṭ":"T","Ƭ":"T","Ṯ":"T","Ʈ":"T","Ŧ":"T","Ɐ":"A","Ꞁ":"L","Ɯ":"M","Ʌ":"V","Ꜩ":"TZ","Ú":"U","Ŭ":"U","Ǔ":"U","Û":"U","Ṷ":"U","Ü":"U","Ǘ":"U","Ǚ":"U","Ǜ":"U","Ǖ":"U","Ṳ":"U","Ụ":"U","Ű":"U","Ȕ":"U","Ù":"U","Ủ":"U","Ư":"U","Ứ":"U","Ự":"U","Ừ":"U","Ử":"U","Ữ":"U","Ȗ":"U","Ū":"U","Ṻ":"U","Ų":"U","Ů":"U","Ũ":"U","Ṹ":"U","Ṵ":"U","Ꝟ":"V","Ṿ":"V","Ʋ":"V","Ṽ":"V","Ꝡ":"VY","Ẃ":"W","Ŵ":"W","Ẅ":"W","Ẇ":"W","Ẉ":"W","Ẁ":"W","Ⱳ":"W","Ẍ":"X","Ẋ":"X","Ý":"Y","Ŷ":"Y","Ÿ":"Y","Ẏ":"Y","Ỵ":"Y","Ỳ":"Y","Ƴ":"Y","Ỷ":"Y","Ỿ":"Y","Ȳ":"Y","Ɏ":"Y","Ỹ":"Y","Ź":"Z","Ž":"Z","Ẑ":"Z","Ⱬ":"Z","Ż":"Z","Ẓ":"Z","Ȥ":"Z","Ẕ":"Z","Ƶ":"Z","IJ":"IJ","Œ":"OE","ᴀ":"A","ᴁ":"AE","ʙ":"B","ᴃ":"B","ᴄ":"C","ᴅ":"D","ᴇ":"E","ꜰ":"F","ɢ":"G","ʛ":"G","ʜ":"H","ɪ":"I","ʁ":"R","ᴊ":"J","ᴋ":"K","ʟ":"L","ᴌ":"L","ᴍ":"M","ɴ":"N","ᴏ":"O","ɶ":"OE","ᴐ":"O","ᴕ":"OU","ᴘ":"P","ʀ":"R","ᴎ":"N","ᴙ":"R","ꜱ":"S","ᴛ":"T","ⱻ":"E","ᴚ":"R","ᴜ":"U","ᴠ":"V","ᴡ":"W","ʏ":"Y","ᴢ":"Z","á":"a","ă":"a","ắ":"a","ặ":"a","ằ":"a","ẳ":"a","ẵ":"a","ǎ":"a","â":"a","ấ":"a","ậ":"a","ầ":"a","ẩ":"a","ẫ":"a","ä":"a","ǟ":"a","ȧ":"a","ǡ":"a","ạ":"a","ȁ":"a","à":"a","ả":"a","ȃ":"a","ā":"a","ą":"a","ᶏ":"a","ẚ":"a","å":"a","ǻ":"a","ḁ":"a","ⱥ":"a","ã":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ḃ":"b","ḅ":"b","ɓ":"b","ḇ":"b","ᵬ":"b","ᶀ":"b","ƀ":"b","ƃ":"b","ɵ":"o","ć":"c","č":"c","ç":"c","ḉ":"c","ĉ":"c","ɕ":"c","ċ":"c","ƈ":"c","ȼ":"c","ď":"d","ḑ":"d","ḓ":"d","ȡ":"d","ḋ":"d","ḍ":"d","ɗ":"d","ᶑ":"d","ḏ":"d","ᵭ":"d","ᶁ":"d","đ":"d","ɖ":"d","ƌ":"d","ı":"i","ȷ":"j","ɟ":"j","ʄ":"j","dz":"dz","dž":"dz","é":"e","ĕ":"e","ě":"e","ȩ":"e","ḝ":"e","ê":"e","ế":"e","ệ":"e","ề":"e","ể":"e","ễ":"e","ḙ":"e","ë":"e","ė":"e","ẹ":"e","ȅ":"e","è":"e","ẻ":"e","ȇ":"e","ē":"e","ḗ":"e","ḕ":"e","ⱸ":"e","ę":"e","ᶒ":"e","ɇ":"e","ẽ":"e","ḛ":"e","ꝫ":"et","ḟ":"f","ƒ":"f","ᵮ":"f","ᶂ":"f","ǵ":"g","ğ":"g","ǧ":"g","ģ":"g","ĝ":"g","ġ":"g","ɠ":"g","ḡ":"g","ᶃ":"g","ǥ":"g","ḫ":"h","ȟ":"h","ḩ":"h","ĥ":"h","ⱨ":"h","ḧ":"h","ḣ":"h","ḥ":"h","ɦ":"h","ẖ":"h","ħ":"h","ƕ":"hv","í":"i","ĭ":"i","ǐ":"i","î":"i","ï":"i","ḯ":"i","ị":"i","ȉ":"i","ì":"i","ỉ":"i","ȋ":"i","ī":"i","į":"i","ᶖ":"i","ɨ":"i","ĩ":"i","ḭ":"i","ꝺ":"d","ꝼ":"f","ᵹ":"g","ꞃ":"r","ꞅ":"s","ꞇ":"t","ꝭ":"is","ǰ":"j","ĵ":"j","ʝ":"j","ɉ":"j","ḱ":"k","ǩ":"k","ķ":"k","ⱪ":"k","ꝃ":"k","ḳ":"k","ƙ":"k","ḵ":"k","ᶄ":"k","ꝁ":"k","ꝅ":"k","ĺ":"l","ƚ":"l","ɬ":"l","ľ":"l","ļ":"l","ḽ":"l","ȴ":"l","ḷ":"l","ḹ":"l","ⱡ":"l","ꝉ":"l","ḻ":"l","ŀ":"l","ɫ":"l","ᶅ":"l","ɭ":"l","ł":"l","lj":"lj","ſ":"s","ẜ":"s","ẛ":"s","ẝ":"s","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ᵯ":"m","ᶆ":"m","ń":"n","ň":"n","ņ":"n","ṋ":"n","ȵ":"n","ṅ":"n","ṇ":"n","ǹ":"n","ɲ":"n","ṉ":"n","ƞ":"n","ᵰ":"n","ᶇ":"n","ɳ":"n","ñ":"n","nj":"nj","ó":"o","ŏ":"o","ǒ":"o","ô":"o","ố":"o","ộ":"o","ồ":"o","ổ":"o","ỗ":"o","ö":"o","ȫ":"o","ȯ":"o","ȱ":"o","ọ":"o","ő":"o","ȍ":"o","ò":"o","ỏ":"o","ơ":"o","ớ":"o","ợ":"o","ờ":"o","ở":"o","ỡ":"o","ȏ":"o","ꝋ":"o","ꝍ":"o","ⱺ":"o","ō":"o","ṓ":"o","ṑ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","õ":"o","ṍ":"o","ṏ":"o","ȭ":"o","ƣ":"oi","ꝏ":"oo","ɛ":"e","ᶓ":"e","ɔ":"o","ᶗ":"o","ȣ":"ou","ṕ":"p","ṗ":"p","ꝓ":"p","ƥ":"p","ᵱ":"p","ᶈ":"p","ꝕ":"p","ᵽ":"p","ꝑ":"p","ꝙ":"q","ʠ":"q","ɋ":"q","ꝗ":"q","ŕ":"r","ř":"r","ŗ":"r","ṙ":"r","ṛ":"r","ṝ":"r","ȑ":"r","ɾ":"r","ᵳ":"r","ȓ":"r","ṟ":"r","ɼ":"r","ᵲ":"r","ᶉ":"r","ɍ":"r","ɽ":"r","ↄ":"c","ꜿ":"c","ɘ":"e","ɿ":"r","ś":"s","ṥ":"s","š":"s","ṧ":"s","ş":"s","ŝ":"s","ș":"s","ṡ":"s","ṣ":"s","ṩ":"s","ʂ":"s","ᵴ":"s","ᶊ":"s","ȿ":"s","ɡ":"g","ß":"ss","ᴑ":"o","ᴓ":"o","ᴝ":"u","ť":"t","ţ":"t","ṱ":"t","ț":"t","ȶ":"t","ẗ":"t","ⱦ":"t","ṫ":"t","ṭ":"t","ƭ":"t","ṯ":"t","ᵵ":"t","ƫ":"t","ʈ":"t","ŧ":"t","ᵺ":"th","ɐ":"a","ᴂ":"ae","ǝ":"e","ᵷ":"g","ɥ":"h","ʮ":"h","ʯ":"h","ᴉ":"i","ʞ":"k","ꞁ":"l","ɯ":"m","ɰ":"m","ᴔ":"oe","ɹ":"r","ɻ":"r","ɺ":"r","ⱹ":"r","ʇ":"t","ʌ":"v","ʍ":"w","ʎ":"y","ꜩ":"tz","ú":"u","ŭ":"u","ǔ":"u","û":"u","ṷ":"u","ü":"u","ǘ":"u","ǚ":"u","ǜ":"u","ǖ":"u","ṳ":"u","ụ":"u","ű":"u","ȕ":"u","ù":"u","ủ":"u","ư":"u","ứ":"u","ự":"u","ừ":"u","ử":"u","ữ":"u","ȗ":"u","ū":"u","ṻ":"u","ų":"u","ᶙ":"u","ů":"u","ũ":"u","ṹ":"u","ṵ":"u","ᵫ":"ue","ꝸ":"um","ⱴ":"v","ꝟ":"v","ṿ":"v","ʋ":"v","ᶌ":"v","ⱱ":"v","ṽ":"v","ꝡ":"vy","ẃ":"w","ŵ":"w","ẅ":"w","ẇ":"w","ẉ":"w","ẁ":"w","ⱳ":"w","ẘ":"w","ẍ":"x","ẋ":"x","ᶍ":"x","ý":"y","ŷ":"y","ÿ":"y","ẏ":"y","ỵ":"y","ỳ":"y","ƴ":"y","ỷ":"y","ỿ":"y","ȳ":"y","ẙ":"y","ɏ":"y","ỹ":"y","ź":"z","ž":"z","ẑ":"z","ʑ":"z","ⱬ":"z","ż":"z","ẓ":"z","ȥ":"z","ẕ":"z","ᵶ":"z","ᶎ":"z","ʐ":"z","ƶ":"z","ɀ":"z","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ij":"ij","œ":"oe","st":"st","ₐ":"a","ₑ":"e","ᵢ":"i","ⱼ":"j","ₒ":"o","ᵣ":"r","ᵤ":"u","ᵥ":"v","ₓ":"x","Ё":"YO","Й":"I","Ц":"TS","У":"U","К":"K","Е":"E","Н":"N","Г":"G","Ш":"SH","Щ":"SCH","З":"Z","Х":"H","Ъ":"","ё":"yo","й":"i","ц":"ts","у":"u","к":"k","е":"e","н":"n","г":"g","ш":"sh","щ":"sch","з":"z","х":"h","ъ":"","Ф":"F","Ы":"I","В":"V","А":"A","П":"P","Р":"R","О":"O","Л":"L","Д":"D","Ж":"ZH","Э":"E","ф":"f","ы":"i","в":"v","а":"a","п":"p","р":"r","о":"o","л":"l","д":"d","ж":"zh","э":"e","Я":"Ya","Ч":"CH","С":"S","М":"M","И":"I","Т":"T","Ь":"","Б":"B","Ю":"YU","я":"ya","ч":"ch","с":"s","м":"m","и":"i","т":"t","ь":"","б":"b","ю":"yu"},Config.CountryCodes=[["AB","country_select_modal_country_ab","+7 840","+7 940","+995 44"],["AF","country_select_modal_country_af","+93"],["AX","country_select_modal_country_ax","+358 18"],["AL","country_select_modal_country_al","+355"],["DZ","country_select_modal_country_dz","+213"],["AS","country_select_modal_country_as","+1 684"],["AD","country_select_modal_country_ad","+376"],["AO","country_select_modal_country_ao","+244"],["AI","country_select_modal_country_ai","+1 264"],["AG","country_select_modal_country_ag","+1 268"],["AR","country_select_modal_country_ar","+54"],["AM","country_select_modal_country_am","+374"],["AW","country_select_modal_country_aw","+297"],["SH","country_select_modal_country_sh_ac","+247"],["AU","country_select_modal_country_au","+61"],["AU","country_select_modal_country_au_et","+672"],["AT","country_select_modal_country_at","+43"],["AZ","country_select_modal_country_az","+994"],["BS","country_select_modal_country_bs","+1 242"],["BH","country_select_modal_country_bh","+973"],["BD","country_select_modal_country_bd","+880"],["BB","country_select_modal_country_bb","+1 246"],["AG","country_select_modal_country_ag_bar","+1 268"],["BY","country_select_modal_country_by","+375"],["BE","country_select_modal_country_be","+32"],["BZ","country_select_modal_country_bz","+501"],["BJ","country_select_modal_country_bj","+229"],["BM","country_select_modal_country_bm","+1 441"],["BT","country_select_modal_country_bt","+975"],["BO","country_select_modal_country_bo","+591"],["BQ","country_select_modal_country_bq","+599 7"],["BA","country_select_modal_country_ba","+387"],["BW","country_select_modal_country_bw","+267"],["BR","country_select_modal_country_br","+55"],["IO","country_select_modal_country_io","+246"],["VG","country_select_modal_country_vg","+1 284"],["BN","country_select_modal_country_bn","+673"],["BG","country_select_modal_country_bg","+359"],["BF","country_select_modal_country_bf","+226"],["MY","country_select_modal_country_mm","+95"],["BI","country_select_modal_country_bi","+257"],["KH","country_select_modal_country_kh","+855"],["CM","country_select_modal_country_cm","+237"],["CA","country_select_modal_country_ca","+1"],["CV","country_select_modal_country_cv","+238"],["KY","country_select_modal_country_ky","+1 345"],["CF","country_select_modal_country_cf","+236"],["TD","country_select_modal_country_td","+235"],["CL","country_select_modal_country_cl","+56"],["CN","country_select_modal_country_cn","+86"],["CX","country_select_modal_country_cx","+61"],["CC","country_select_modal_country_cc","+61"],["CO","country_select_modal_country_co","+57"],["KM","country_select_modal_country_km","+269"],["CG","country_select_modal_country_cg","+242"],["CD","country_select_modal_country_cd","+243"],["CK","country_select_modal_country_ck","+682"],["CR","country_select_modal_country_cr","+506"],["CI","country_select_modal_country_ci","+225"],["HR","country_select_modal_country_hr","+385"],["CU","country_select_modal_country_cu","+53"],["CW","country_select_modal_country_cw","+599 9"],["CY","country_select_modal_country_cy","+357"],["CZ","country_select_modal_country_cz","+420"],["DK","country_select_modal_country_dk","+45"],["DG","country_select_modal_country_dg","+246"],["DJ","country_select_modal_country_dj","+253"],["DM","country_select_modal_country_dm","+1 767"],["DO","country_select_modal_country_do","+1 809","+1 829","+1 849"],["TL","country_select_modal_country_tl","+670"],["EC","country_select_modal_country_ec","+593"],["EG","country_select_modal_country_eg","+20"],["SV","country_select_modal_country_sv","+503"],["GQ","country_select_modal_country_gq","+240"],["ER","country_select_modal_country_er","+291"],["EE","country_select_modal_country_ee","+372"],["ET","country_select_modal_country_et","+251"],["FK","country_select_modal_country_fk","+500"],["FO","country_select_modal_country_fo","+298"],["FJ","country_select_modal_country_fj","+679"],["FI","country_select_modal_country_fi","+358"],["FR","country_select_modal_country_fr","+33"],["GF","country_select_modal_country_gf","+594"],["PF","country_select_modal_country_pf","+689"],["GA","country_select_modal_country_ga","+241"],["GM","country_select_modal_country_gm","+220"],["GE","country_select_modal_country_ge","+995"],["DE","country_select_modal_country_de","+49"],["GH","country_select_modal_country_gh","+233"],["GI","country_select_modal_country_gi","+350"],["GR","country_select_modal_country_gr","+30"],["GL","country_select_modal_country_gl","+299"],["GD","country_select_modal_country_gd","+1 473"],["GP","country_select_modal_country_gp","+590"],["GU","country_select_modal_country_gu","+1 671"],["GT","country_select_modal_country_gt","+502"],["GG","country_select_modal_country_gg","+44"],["GN","country_select_modal_country_gn","+224"],["GW","country_select_modal_country_gw","+245"],["GY","country_select_modal_country_gy","+592"],["HT","country_select_modal_country_ht","+509"],["HN","country_select_modal_country_hn","+504"],["HK","country_select_modal_country_hk","+852"],["HU","country_select_modal_country_hu","+36"],["IS","country_select_modal_country_is","+354"],["IN","country_select_modal_country_in","+91"],["ID","country_select_modal_country_id","+62"],["IR","country_select_modal_country_ir","+98"],["IQ","country_select_modal_country_iq","+964"],["IE","country_select_modal_country_ie","+353"],["IL","country_select_modal_country_il","+972"],["IT","country_select_modal_country_it","+39"],["JM","country_select_modal_country_jm","+1 876"],["SJ","country_select_modal_country_sj","+47 79"],["JP","country_select_modal_country_jp","+81"],["JE","country_select_modal_country_je","+44"],["JO","country_select_modal_country_jo","+962"],["KZ","country_select_modal_country_kz","+7 6","+7 7"],["KE","country_select_modal_country_ke","+254"],["KI","country_select_modal_country_ki","+686"],["KP","country_select_modal_country_kp","+850"],["KR","country_select_modal_country_kr","+82"],["KW","country_select_modal_country_kw","+965"],["KG","country_select_modal_country_kg","+996"],["LA","country_select_modal_country_la","+856"],["LV","country_select_modal_country_lv","+371"],["LB","country_select_modal_country_lb","+961"],["LS","country_select_modal_country_ls","+266"],["LR","country_select_modal_country_lr","+231"],["LY","country_select_modal_country_ly","+218"],["LI","country_select_modal_country_li","+423"],["LT","country_select_modal_country_lt","+370"],["LU","country_select_modal_country_lu","+352"],["MO","country_select_modal_country_mo","+853"],["MK","country_select_modal_country_mk","+389"],["MG","country_select_modal_country_mg","+261"],["MW","country_select_modal_country_mw","+265"],["MY","country_select_modal_country_my","+60"],["MV","country_select_modal_country_mv","+960"],["ML","country_select_modal_country_ml","+223"],["MT","country_select_modal_country_mt","+356"],["MH","country_select_modal_country_mh","+692"],["MQ","country_select_modal_country_mq","+596"],["MR","country_select_modal_country_mr","+222"],["MU","country_select_modal_country_mu","+230"],["YT","country_select_modal_country_yt","+262"],["MX","country_select_modal_country_mx","+52"],["FM","country_select_modal_country_fm","+691"],["MD","country_select_modal_country_md","+373"],["MC","country_select_modal_country_mc","+377"],["MN","country_select_modal_country_mn","+976"],["ME","country_select_modal_country_me","+382"],["MS","country_select_modal_country_ms","+1 664"],["MA","country_select_modal_country_ma","+212"],["MZ","country_select_modal_country_mz","+258"],["NA","country_select_modal_country_na","+264"],["NR","country_select_modal_country_nr","+674"],["NP","country_select_modal_country_np","+977"],["NL","country_select_modal_country_nl","+31"],["NC","country_select_modal_country_nc","+687"],["NZ","country_select_modal_country_nz","+64"],["NI","country_select_modal_country_ni","+505"],["NE","country_select_modal_country_ne","+227"],["NG","country_select_modal_country_ng","+234"],["NU","country_select_modal_country_nu","+683"],["NF","country_select_modal_country_nf","+672"],["MP","country_select_modal_country_mp","+1 670"],["NO","country_select_modal_country_no","+47"],["OM","country_select_modal_country_om","+968"],["PK","country_select_modal_country_pk","+92"],["PW","country_select_modal_country_pw","+680"],["PS","country_select_modal_country_ps","+970"],["PA","country_select_modal_country_pa","+507"],["PG","country_select_modal_country_pg","+675"],["PY","country_select_modal_country_py","+595"],["PE","country_select_modal_country_pe","+51"],["PH","country_select_modal_country_ph","+63"],["PN","country_select_modal_country_pn","+64"],["PL","country_select_modal_country_pl","+48"],["PT","country_select_modal_country_pt","+351"],["PR","country_select_modal_country_pr","+1 787","+1 939"],["QA","country_select_modal_country_qa","+974"],["RE","country_select_modal_country_re","+262"],["RO","country_select_modal_country_ro","+40"],["RU","country_select_modal_country_ru","+7"],["RW","country_select_modal_country_rw","+250"],["BL","country_select_modal_country_bl","+590"],["SH","country_select_modal_country_sh","+290"],["KN","country_select_modal_country_kn","+1 869"],["LC","country_select_modal_country_lc","+1 758"],["MF","country_select_modal_country_mf","+590"],["PM","country_select_modal_country_pm","+508"],["VC","country_select_modal_country_vc","+1 784"],["WS","country_select_modal_country_ws","+685"],["SM","country_select_modal_country_sm","+378"],["ST","country_select_modal_country_st","+239"],["SA","country_select_modal_country_sa","+966"],["SN","country_select_modal_country_sn","+221"],["RS","country_select_modal_country_rs","+381"],["SC","country_select_modal_country_sc","+248"],["SL","country_select_modal_country_sl","+232"],["SG","country_select_modal_country_sg","+65"],["BQ","country_select_modal_country_nl_bq3","+599 3"],["SX","country_select_modal_country_sx","+1 721"],["SK","country_select_modal_country_sk","+421"],["SI","country_select_modal_country_si","+386"],["SB","country_select_modal_country_sb","+677"],["SO","country_select_modal_country_so","+252"],["ZA","country_select_modal_country_za","+27"],["GS","country_select_modal_country_gs","+500"],[!1,"country_select_modal_country_ge_so","+995 34"],["SS","country_select_modal_country_ss","+211"],["ES","country_select_modal_country_es","+34"],["LK","country_select_modal_country_lk","+94"],["SD","country_select_modal_country_sd","+249"],["SR","country_select_modal_country_sr","+597"],["SJ","country_select_modal_country_sj_no","+47 79"],["SZ","country_select_modal_country_sz","+268"],["SE","country_select_modal_country_se","+46"],["CH","country_select_modal_country_ch","+41"],["SY","country_select_modal_country_sy","+963"],["TW","country_select_modal_country_tw","+886"],["TJ","country_select_modal_country_tj","+992"],["TZ","country_select_modal_country_tz","+255"],["TH","country_select_modal_country_th","+66"],["TG","country_select_modal_country_tg","+228"],["TK","country_select_modal_country_tk","+690"],["TO","country_select_modal_country_to","+676"],["TT","country_select_modal_country_tt","+1 868"],["TN","country_select_modal_country_tn","+216"],["TR","country_select_modal_country_tr","+90"],["TM","country_select_modal_country_tm","+993"],["TC","country_select_modal_country_tc","+1 649"],["TV","country_select_modal_country_tv","+688"],["UG","country_select_modal_country_ug","+256"],["UA","country_select_modal_country_ua","+380"],["AE","country_select_modal_country_ae","+971"],["UK","country_select_modal_country_uk","+44"],["US","country_select_modal_country_us","+1"],["UY","country_select_modal_country_uy","+598"],["VI","country_select_modal_country_vi","+1 340"],["UZ","country_select_modal_country_uz","+998"],["VU","country_select_modal_country_vu","+678"],["VE","country_select_modal_country_ve","+58"],["VA","country_select_modal_country_va","+39 06 698","+379"],["VN","country_select_modal_country_vn","+84"],["WF","country_select_modal_country_wf","+681"],["YE","country_select_modal_country_ye","+967"],["ZM","country_select_modal_country_zm","+260"],[!1,"country_select_modal_country_tz_uk","+255"],["ZW","country_select_modal_country_zw","+263"]],
Config.LangCountries={es:"ES",ru:"RU",en:"US",de:"DE",it:"IT",nl:"NL",fr:"FR",ca:"ES","es-419":"MX",ar:"SA",he:"IL",tr:"TR",id:"ID",pl:"PL"},function(e){function t(e){l=e}function n(){c=!0}function i(){return c?(c=!1,""):l}function a(e,t){var n=!1;Array.isArray(e)||(e=Array.prototype.slice.call(arguments),t=e.pop(),n=1==e.length);var a,r,o,s=[],l=!0,c=i();for(r=0;r<e.length;r++)if(o=e[r]=c+e[r],"xt_"!=o.substr(0,3)&&void 0!==d[o])s.push(d[o]);else if(p){try{a=localStorage.getItem(o)}catch(f){p=!1}try{a=void 0!==a&&null!==a&&JSON.parse(a)}catch(f){a=!1}s.push(d[o]=a)}else u?l=!1:s.push(d[o]=!1);return l?t(n?s[0]:s):void chrome.storage.local.get(e,function(i){var a;for(s=[],r=0;r<e.length;r++)o=e[r],a=i[o],a=void 0!==a&&null!==a&&JSON.parse(a),s.push(d[o]=a);t(n?s[0]:s)})}function r(e,t){var n,a,r={},o=i();for(n in e)if(e.hasOwnProperty(n))if(a=e[n],n=o+n,d[n]=a,a=JSON.stringify(a),p)try{localStorage.setItem(n,a)}catch(s){p=!1}else r[n]=a;return p||!u?void(t&&t()):void chrome.storage.local.set(r,t)}function o(e,t){Array.isArray(e)||(e=Array.prototype.slice.call(arguments),"function"==typeof e[e.length-1]&&(t=e.pop()));var n,a,r=i();for(n=0;n<e.length;n++)if(a=e[n]=r+e[n],delete d[a],p)try{localStorage.removeItem(a)}catch(o){p=!1}u?chrome.storage.local.remove(e,t):t&&t()}function s(e){if(p)try{localStorage.clear()}catch(t){p=!1}u?chrome.storage.local.clear(function(){d={},e()}):(d={},e())}var l="",c=!1,d={},u=!!(e.chrome&&chrome.storage&&chrome.storage.local),p=!u&&!!e.localStorage;e.ConfigStorage={prefix:t,noPrefix:n,get:a,set:r,remove:o,clear:s}}(this),function(){try{window==window.top||window.chrome&&chrome.app&&chrome.app.window?document.documentElement.style.display="block":top.location=self.location}catch(e){console.error("CJ protection",e)}var t=[Config.Navigator.osX?"osx":"non_osx",Config.Navigator.msie?"msie":"non_msie",Config.Navigator.retina?"is_2x":"is_1x"];Config.Modes.ios_standalone&&t.push("ios_standalone"),$(document.body).addClass(t.join(" ")),ConfigStorage.get("layout_selected","i18n_locale",function(e){var t=e[0],n=e[1],i="en-us",a={dom:!1,i18n_ng:!1,i18n_messages:!1,i18n_fallback:!1},r=function(){var e,t=!0;for(e in a)if(a.hasOwnProperty(e)&&a[e]===!1){t=!1;break}t&&(a.boot=!1,angular.bootstrap(document,["myApp"]))};switch(Config.Modes.force_mobile?t="mobile":Config.Modes.force_desktop&&(t="desktop"),t){case"mobile":Config.Mobile=!0;break;case"desktop":Config.Mobile=!1;break;default:var o=$(window).width();Config.Mobile=Config.Navigator.mobile||o>10&&o<480}$("head").append('<link rel="stylesheet" href="css/'+(Config.Mobile?"mobile.css":"desktop.css")+'" />'),n||(n=(navigator.language||"").toLowerCase(),n=Config.I18n.aliases[n]||n);for(var s=0;s<Config.I18n.supported.length;s++)if(Config.I18n.supported[s]==n){Config.I18n.locale=n;break}a.i18n_ng=Config.I18n.locale==i,$.getJSON("js/locales/"+Config.I18n.locale+".json").success(function(e){Config.I18n.messages=e,a.i18n_messages=!0,Config.I18n.locale==i&&(a.i18n_fallback=!0),r()}),Config.I18n.locale!=i&&$.getJSON("js/locales/"+i+".json").success(function(e){Config.I18n.fallback_messages=e,a.i18n_fallback=!0,r()}),$(document).ready(function(){a.dom=!0,a.i18n_ng?r():$("<script>").appendTo("body").on("load",function(){a.i18n_ng=!0,r()}).attr("src","vendor/angular/i18n/angular-locale_"+Config.I18n.locale+".js")})})}(),function(){function e(){t||safeConfirm({type:"WEBOGRAM_UPDATED_RELOAD",message:"A new version of Webogram is downloaded. Launch it?"},function(e){e?window.location.reload():t=!0})}if(window.safeConfirm=function(e,t){"string"==typeof e&&(e={message:e});var n=!1;try{n=confirm(e.message)}catch(i){n=!0}setTimeout(function(){t(n)},10)},(navigator.serviceWorker||window.applicationCache)&&!Config.Modes.packed&&window.addEventListener){var t=!1;if(navigator.serviceWorker)navigator.serviceWorker.register("service_worker.js").then(function(t){console.log("Offline worker registered"),t.addEventListener("updatefound",function(){var t=this.installing;t.addEventListener("statechange",function(){switch(t.state){case"installed":navigator.serviceWorker.controller&&e();break;case"redundant":console.error("The installing service worker became redundant.")}})})})["catch"](function(e){console.error("Offline register SW error",e)});else{var n=window.applicationCache,i=!1,a=function(e){clearTimeout(i),i=setTimeout(function(){try{n.update()}catch(e){console.log("appCache.update: "+e)}},e||3e5)};a(3e3),window.addEventListener("load",function(){n.addEventListener("updateready",function(){n.status==n.UPDATEREADY&&e()},!1),n.addEventListener("noupdate",function(){a()},!1),n.addEventListener("error",function(){a()},!1)})}}}(),function(e,t,n){"use strict";var i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v,y,b,w,k,M,S,A,C,T,E,$,I,x,P,D;A={paneClass:"nano-pane",sliderClass:"nano-slider",contentClass:"nano-content",iOSNativeScrolling:!1,preventPageScrolling:!1,disableResize:!1,alwaysVisible:!1,flashDelay:1500,sliderMinHeight:20,sliderMaxHeight:null,documentContext:null,windowContext:null},b="scrollbar",y="scroll",u="mousedown",p="mouseenter",f="mousemove",h="mousewheel",m="mouseup",v="resize",s="drag",l="enter",k="up",_="panedown",r="DOMMouseScroll",o="down",M="wheel",c="keydown",d="keyup",w="touchmove",i="Microsoft Internet Explorer"===t.navigator.appName&&/msie 7./i.test(t.navigator.appVersion)&&t.ActiveXObject,a=null,$=t.requestAnimationFrame,S=t.cancelAnimationFrame,x=n.createElement("div").style,D=function(){var e,t,n,i,a,r;for(i=["t","webkitT","MozT","msT","OT"],e=a=0,r=i.length;a<r;e=++a)if(n=i[e],t=i[e]+"ransform",t in x)return i[e].substr(0,i[e].length-1);return!1}(),P=function(e){return D!==!1&&(""===D?e:D+e.charAt(0).toUpperCase()+e.substr(1))},I=P("transform"),T=I!==!1,C=function(){var e,t,i;return e=n.createElement("div"),t=e.style,t.position="absolute",t.width="100px",t.height="100px",t.overflow=y,t.top="-9999px",n.body.appendChild(e),i=e.offsetWidth-e.clientWidth,n.body.removeChild(e),i},E=function(){var e,n,i;return n=t.navigator.userAgent,!!(e=/(?=.+Mac OS X)(?=.+Firefox)/.test(n))&&(i=/Firefox\/\d{2}\./.exec(n),i&&(i=i[0].replace(/\D+/g,"")),e&&+i>23)},g=function(){function c(i,r){this.el=i,this.options=r,a||(a=C()),this.$el=e(this.el),this.doc=e(this.options.documentContext||n),this.win=e(this.options.windowContext||t),this.body=this.doc.find("body"),this.$content=this.$el.children("."+r.contentClass),this.$content.attr("tabindex",this.options.tabIndex||0),this.content=this.$content[0],this.previousPosition=0,this.options.iOSNativeScrolling&&(null!=this.el.style.WebkitOverflowScrolling||navigator.userAgent.match(/mobi.+Gecko/i))?this.nativeScrolling():this.generate(),this.createEvents(),this.addEvents(),this.reset()}return c.prototype.preventScrolling=function(e,t){if(this.isActive)if(e.type===r)(t===o&&e.originalEvent.detail>0||t===k&&e.originalEvent.detail<0)&&e.preventDefault();else if(e.type===h){if(!e.originalEvent||!e.originalEvent.wheelDelta)return;(t===o&&e.originalEvent.wheelDelta<0||t===k&&e.originalEvent.wheelDelta>0)&&e.preventDefault()}},c.prototype.nativeScrolling=function(){this.$content.css({WebkitOverflowScrolling:"touch"}),this.iOSNativeScrolling=!0,this.isActive=!0},c.prototype.updateScrollValues=function(){var e,t;e=this.content,this.maxScrollTop=e.scrollHeight-e.clientHeight,this.prevScrollTop=this.contentScrollTop||0,this.contentScrollTop=e.scrollTop,t=this.contentScrollTop>this.previousPosition?"down":this.contentScrollTop<this.previousPosition?"up":"same",this.previousPosition=this.contentScrollTop,"same"!==t&&this.$el.trigger("update",{position:this.contentScrollTop,maximum:this.maxScrollTop,direction:t}),this.iOSNativeScrolling||(this.maxSliderTop=this.paneHeight-this.sliderHeight,this.sliderTop=0===this.maxScrollTop?0:this.contentScrollTop*this.maxSliderTop/this.maxScrollTop)},c.prototype.setOnScrollStyles=function(){var e;T?(e={},e[I]="translate(0, "+this.sliderTop+"px)"):e={top:this.sliderTop},$?(S&&this.scrollRAF&&S(this.scrollRAF),this.scrollRAF=$(function(t){return function(){return t.scrollRAF=null,t.slider.css(e)}}(this))):this.slider.css(e)},c.prototype.createEvents=function(){this.events={down:function(e){return function(t){return e.isBeingDragged=!0,e.offsetY=t.pageY-e.slider.offset().top,e.slider.is(t.target)||(e.offsetY=0),e.pane.addClass("active"),e.doc.bind(f,e.events[s]).bind(m,e.events[k]),e.body.bind(p,e.events[l]),!1}}(this),drag:function(e){return function(t){return e.sliderY=t.pageY-e.$el.offset().top-e.paneTop-(e.offsetY||.5*e.sliderHeight),e.scroll(),e.contentScrollTop>=e.maxScrollTop&&e.prevScrollTop!==e.maxScrollTop?e.$el.trigger("scrollend"):0===e.contentScrollTop&&0!==e.prevScrollTop&&e.$el.trigger("scrolltop"),!1}}(this),up:function(e){return function(t){return e.isBeingDragged=!1,e.pane.removeClass("active"),e.doc.unbind(f,e.events[s]).unbind(m,e.events[k]),e.body.unbind(p,e.events[l]),!1}}(this),resize:function(e){return function(t){e.reset()}}(this),panedown:function(e){return function(t){return e.sliderY=(t.offsetY||t.originalEvent.layerY)-.5*e.sliderHeight,e.scroll(),e.events.down(t),!1}}(this),scroll:function(e){return function(t){e.updateScrollValues(),e.isBeingDragged||(e.iOSNativeScrolling||(e.sliderY=e.sliderTop,e.setOnScrollStyles()),null!=t&&(e.contentScrollTop>=e.maxScrollTop?(e.options.preventPageScrolling&&e.preventScrolling(t,o),e.prevScrollTop!==e.maxScrollTop&&e.$el.trigger("scrollend")):0===e.contentScrollTop&&(e.options.preventPageScrolling&&e.preventScrolling(t,k),0!==e.prevScrollTop&&e.$el.trigger("scrolltop"))))}}(this),wheel:function(e){return function(t){var n;if(null!=t)return n=t.delta||t.wheelDelta||t.originalEvent&&t.originalEvent.wheelDelta||-t.detail||t.originalEvent&&-t.originalEvent.detail,n&&(e.sliderY+=-n/3),e.scroll(),!1}}(this),enter:function(e){return function(t){var n;if(e.isBeingDragged)return 1!==(t.buttons||t.which)?(n=e.events)[k].apply(n,arguments):void 0}}(this)}},c.prototype.addEvents=function(){var e;this.removeEvents(),e=this.events,this.options.disableResize||this.win.bind(v,e[v]),this.iOSNativeScrolling||(this.slider.bind(u,e[o]),this.pane.bind(u,e[_]).bind(""+h+" "+r,e[M])),this.$content.bind(""+y+" "+h+" "+r+" "+w,e[y])},c.prototype.removeEvents=function(){var e;e=this.events,this.win.unbind(v,e[v]),this.iOSNativeScrolling||(this.slider.unbind(),this.pane.unbind()),this.$content.unbind(""+y+" "+h+" "+r+" "+w,e[y])},c.prototype.generate=function(){var e,n,i,r,o,s,l;return r=this.options,s=r.paneClass,l=r.sliderClass,e=r.contentClass,(o=this.$el.children("."+s)).length||o.children("."+l).length||this.$el.append('<div class="'+s+'"><div class="'+l+'" /></div>'),this.pane=this.$el.children("."+s),this.slider=this.pane.find("."+l),0===a&&E()?(i=t.getComputedStyle(this.content,null).getPropertyValue("padding-right").replace(/[^0-9.]+/g,""),n={right:-14,paddingRight:+i+14}):a&&(n={right:-a},this.$el.addClass("has-scrollbar")),null!=n&&this.$content.css(n),this},c.prototype.restore=function(){this.stopped=!1,this.iOSNativeScrolling||this.pane.show(),this.addEvents()},c.prototype.reset=function(){var e,t,n,r,o,s,l,c,d,u,p,f;return this.iOSNativeScrolling?void(this.contentHeight=this.content.scrollHeight):(this.$el.find("."+this.options.paneClass).length||this.generate().stop(),this.stopped&&this.restore(),e=this.content,r=e.style,o=r.overflowY,i&&this.$content.css({height:this.$content.height()}),t=e.scrollHeight+a,u=parseInt(this.$el.css("max-height"),10),u>0&&(this.$el.height(""),this.$el.height(e.scrollHeight>u?u:e.scrollHeight)),l=this.pane.outerHeight(!1),d=parseInt(this.pane.css("top"),10),s=parseInt(this.pane.css("bottom"),10),c=l+d+s,f=Math.round(c/t*c),f<this.options.sliderMinHeight?f=this.options.sliderMinHeight:null!=this.options.sliderMaxHeight&&f>this.options.sliderMaxHeight&&(f=this.options.sliderMaxHeight),o===y&&r.overflowX!==y&&(f+=a),this.maxSliderTop=c-f,this.contentHeight=t,this.paneHeight=l,this.paneOuterHeight=c,this.sliderHeight=f,this.paneTop=d,this.slider.height(f),this.events.scroll(),this.pane.show(),this.isActive=!0,e.scrollHeight===e.clientHeight||this.pane.outerHeight(!0)>=e.scrollHeight&&o!==y?(this.pane.hide(),this.isActive=!1):this.el.clientHeight===e.scrollHeight&&o===y?this.slider.hide():this.slider.show(),this.$el.toggleClass("active-scrollbar",this.isActive),this.pane.css({opacity:this.options.alwaysVisible?1:"",visibility:this.options.alwaysVisible?"visible":""}),n=this.$content.css("position"),"static"!==n&&"relative"!==n||(p=parseInt(this.$content.css("right"),10),p&&this.$content.css({right:"",marginRight:p})),this)},c.prototype.scroll=function(){if(this.isActive)return this.sliderY=Math.max(0,this.sliderY),this.sliderY=Math.min(this.maxSliderTop,this.sliderY),this.$content.scrollTop(this.maxScrollTop*this.sliderY/this.maxSliderTop),this.iOSNativeScrolling||(this.updateScrollValues(),this.setOnScrollStyles()),this},c.prototype.scrollBottom=function(e){if(this.isActive)return this.$content.scrollTop(this.contentHeight-this.$content.height()-e).trigger(h),this.stop().restore(),this},c.prototype.scrollTop=function(e){if(this.isActive)return this.$content.scrollTop(+e).trigger(h),this.stop().restore(),this},c.prototype.scrollTo=function(e){if(this.isActive)return this.scrollTop(this.$el.find(e).get(0).offsetTop),this},c.prototype.stop=function(){return S&&this.scrollRAF&&(S(this.scrollRAF),this.scrollRAF=null),this.stopped=!0,this.removeEvents(),this.iOSNativeScrolling||this.pane.hide(),this},c.prototype.destroy=function(){return this.stopped||this.stop(),!this.iOSNativeScrolling&&this.pane.length&&this.pane.remove(),i&&this.$content.height(""),this.$content.removeAttr("tabindex"),this.$el.hasClass("has-scrollbar")&&(this.$el.removeClass("has-scrollbar"),this.$content.css({right:""})),this},c.prototype.flash=function(){if(!this.iOSNativeScrolling&&this.isActive)return this.reset(),this.pane.addClass("flashed"),setTimeout(function(e){return function(){e.pane.removeClass("flashed")}}(this),this.options.flashDelay),this},c}(),e.fn.nanoScroller=function(t){return this.each(function(){var n,i;if((i=this.nanoscroller)||(n=e.extend({},A,t),this.nanoscroller=i=new g(this,n)),t&&"object"==typeof t){if(e.extend(i.options,t),null!=t.scrollBottom)return i.scrollBottom(t.scrollBottom);if(null!=t.scrollTop)return i.scrollTop(t.scrollTop);if(t.scrollTo)return i.scrollTo(t.scrollTo);if("bottom"===t.scroll)return i.scrollBottom(0);if("top"===t.scroll)return i.scrollTop(0);if(t.scroll&&t.scroll instanceof e)return i.scrollTo(t.scroll);if(t.stop)return i.stop();if(t.destroy)return i.destroy();if(t.flash)return i.flash()}return i.reset()})},e.fn.nanoScroller.Constructor=g}(jQuery,window,document),function(e){"use strict";function t(e,t){return t=t||Error,function(){var n,i,a=2,r=arguments,o=r[0],s="["+(e?e+":":"")+o+"] ",l=r[1];for(s+=l.replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1),n=t+a;return n<r.length?ve(r[n]):e}),s+="\nhttp://errors.angularjs.org/1.5.7/"+(e?e+"/":"")+o,i=a,n="?";i<r.length;i++,n="&")s+=n+"p"+(i-a)+"="+encodeURIComponent(ve(r[i]));return new t(s)}}function n(e){if(null==e||C(e))return!1;if(Yi(e)||w(e)||Fi&&e instanceof Fi)return!0;var t="length"in Object(e)&&e.length;return k(t)&&(t>=0&&(t-1 in e||e instanceof Array)||"function"==typeof e.item)}function i(e,t,a){var r,o;if(e)if(S(e))for(r in e)"prototype"==r||"length"==r||"name"==r||e.hasOwnProperty&&!e.hasOwnProperty(r)||t.call(a,e[r],r,e);else if(Yi(e)||n(e)){var s="object"!=typeof e;for(r=0,o=e.length;r<o;r++)(s||r in e)&&t.call(a,e[r],r,e)}else if(e.forEach&&e.forEach!==i)e.forEach(t,a,e);else if(b(e))for(r in e)t.call(a,e[r],r,e);else if("function"==typeof e.hasOwnProperty)for(r in e)e.hasOwnProperty(r)&&t.call(a,e[r],r,e);else for(r in e)Pi.call(e,r)&&t.call(a,e[r],r,e);return e}function a(e,t,n){for(var i=Object.keys(e).sort(),a=0;a<i.length;a++)t.call(n,e[i[a]],i[a]);return i}function r(e){return function(t,n){e(n,t)}}function o(){return++Ki}function s(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function l(e,t,n){for(var i=e.$$hashKey,a=0,r=t.length;a<r;++a){var o=t[a];if(y(o)||S(o))for(var c=Object.keys(o),d=0,u=c.length;d<u;d++){var p=c[d],f=o[p];n&&y(f)?M(f)?e[p]=new Date(f.valueOf()):A(f)?e[p]=new RegExp(f):f.nodeName?e[p]=f.cloneNode(!0):O(f)?e[p]=f.clone():(y(e[p])||(e[p]=Yi(f)?[]:{}),l(e[p],[f],!0)):e[p]=f}}return s(e,i),e}function c(e){return l(e,Hi.call(arguments,1),!1)}function d(e){return l(e,Hi.call(arguments,1),!0)}function u(e){return parseInt(e,10)}function p(e,t){return c(Object.create(e),t)}function f(){}function m(e){return e}function h(e){return function(){return e}}function g(e){return S(e.toString)&&e.toString!==qi}function _(e){return"undefined"==typeof e}function v(e){return"undefined"!=typeof e}function y(e){return null!==e&&"object"==typeof e}function b(e){return null!==e&&"object"==typeof e&&!zi(e)}function w(e){return"string"==typeof e}function k(e){return"number"==typeof e}function M(e){return"[object Date]"===qi.call(e)}function S(e){return"function"==typeof e}function A(e){return"[object RegExp]"===qi.call(e)}function C(e){return e&&e.window===e}function T(e){return e&&e.$evalAsync&&e.$watch}function E(e){return"[object File]"===qi.call(e)}function $(e){return"[object FormData]"===qi.call(e)}function I(e){return"[object Blob]"===qi.call(e)}function x(e){return"boolean"==typeof e}function P(e){return e&&S(e.then)}function D(e){return e&&k(e.length)&&Xi.test(qi.call(e))}function R(e){return"[object ArrayBuffer]"===qi.call(e)}function O(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function N(e){var t,n={},i=e.split(",");for(t=0;t<i.length;t++)n[i[t]]=!0;return n}function L(e){return Di(e.nodeName||e[0]&&e[0].nodeName)}function F(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function U(e,t){function n(e,t){var n,i=t.$$hashKey;if(Yi(e))for(var r=0,o=e.length;r<o;r++)t.push(a(e[r]));else if(b(e))for(n in e)t[n]=a(e[n]);else if(e&&"function"==typeof e.hasOwnProperty)for(n in e)e.hasOwnProperty(n)&&(t[n]=a(e[n]));else for(n in e)Pi.call(e,n)&&(t[n]=a(e[n]));return s(t,i),t}function a(e){if(!y(e))return e;var t=o.indexOf(e);if(t!==-1)return l[t];if(C(e)||T(e))throw Wi("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var i=!1,a=r(e);return void 0===a&&(a=Yi(e)?[]:Object.create(zi(e)),i=!0),o.push(e),l.push(a),i?n(e,a):a}function r(e){switch(qi.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(a(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^\/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(S(e.cloneNode))return e.cloneNode(!0)}var o=[],l=[];if(t){if(D(t)||R(t))throw Wi("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===t)throw Wi("cpi","Can't copy! Source and destination are identical.");return Yi(t)?t.length=0:i(t,function(e,n){"$$hashKey"!==n&&delete t[n]}),o.push(e),l.push(t),n(e,t)}return a(e)}function B(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var n,i,a,r=typeof e,o=typeof t;if(r==o&&"object"==r){if(!Yi(e)){if(M(e))return!!M(t)&&B(e.getTime(),t.getTime());if(A(e))return!!A(t)&&e.toString()==t.toString();if(T(e)||T(t)||C(e)||C(t)||Yi(t)||M(t)||A(t))return!1;a=me();for(i in e)if("$"!==i.charAt(0)&&!S(e[i])){if(!B(e[i],t[i]))return!1;a[i]=!0}for(i in t)if(!(i in a)&&"$"!==i.charAt(0)&&v(t[i])&&!S(t[i]))return!1;return!0}if(!Yi(t))return!1;if((n=e.length)==t.length){for(i=0;i<n;i++)if(!B(e[i],t[i]))return!1;return!0}}return!1}function H(e,t,n){return e.concat(Hi.call(t,n))}function j(e,t){return Hi.call(e,t||0)}function V(e,t){var n=arguments.length>2?j(arguments,2):[];return!S(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,H(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function q(t,n){var i=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=void 0:C(n)?i="$WINDOW":n&&e.document===n?i="$DOCUMENT":T(n)&&(i="$SCOPE"),i}function z(e,t){if(!_(e))return k(t)||(t=t?2:null),JSON.stringify(e,q,t)}function W(e){return w(e)?JSON.parse(e):e}function G(e,t){e=e.replace(ta,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function K(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Y(e,t,n){n=n?-1:1;var i=e.getTimezoneOffset(),a=G(t,i);return K(e,n*(a-i))}function X(e){e=Fi(e).clone();try{e.empty()}catch(t){}var n=Fi("<div>").append(e).html();try{return e[0].nodeType===sa?Di(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(e,t){return"<"+Di(t)})}catch(t){return Di(n)}}function J(e){try{return decodeURIComponent(e)}catch(t){}}function Z(e){var t={};return i((e||"").split("&"),function(e){var n,i,a;e&&(i=e=e.replace(/\+/g,"%20"),n=e.indexOf("="),n!==-1&&(i=e.substring(0,n),a=e.substring(n+1)),i=J(i),v(i)&&(a=!v(a)||J(a),Pi.call(t,i)?Yi(t[i])?t[i].push(a):t[i]=[t[i],a]:t[i]=a))}),t}function Q(e){var t=[];return i(e,function(e,n){Yi(e)?i(e,function(e){t.push(te(n,!0)+(e===!0?"":"="+te(e,!0)))}):t.push(te(n,!0)+(e===!0?"":"="+te(e,!0)))}),t.length?t.join("&"):""}function ee(e){return te(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function te(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function ne(e,t){var n,i,a=na.length;for(i=0;i<a;++i)if(n=na[i]+t,w(n=e.getAttribute(n)))return n;return null}function ie(e,t){var n,a,r={};i(na,function(t){var i=t+"app";!n&&e.hasAttribute&&e.hasAttribute(i)&&(n=e,a=e.getAttribute(i))}),i(na,function(t){var i,r=t+"app";!n&&(i=e.querySelector("["+r.replace(":","\\:")+"]"))&&(n=i,a=i.getAttribute(r))}),n&&(r.strictDi=null!==ne(n,"strict-di"),t(n,a?[a]:[],r))}function ae(t,n,a){y(a)||(a={});var r={strictDi:!1};a=c(r,a);var o=function(){if(t=Fi(t),t.injector()){var i=t[0]===e.document?"document":X(t);throw Wi("btstrpd","App already bootstrapped with this element '{0}'",i.replace(/</,"&lt;").replace(/>/,"&gt;"))}n=n||[],n.unshift(["$provide",function(e){e.value("$rootElement",t)}]),a.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var r=it(n,a.strictDi);return r.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,i){e.$apply(function(){t.data("$injector",i),n(t)(e)})}]),r},s=/^NG_ENABLE_DEBUG_INFO!/,l=/^NG_DEFER_BOOTSTRAP!/;return e&&s.test(e.name)&&(a.debugInfoEnabled=!0,e.name=e.name.replace(s,"")),e&&!l.test(e.name)?o():(e.name=e.name.replace(l,""),Gi.resumeBootstrap=function(e){return i(e,function(e){n.push(e)}),o()},void(S(Gi.resumeDeferredBootstrap)&&Gi.resumeDeferredBootstrap()))}function re(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function oe(e){var t=Gi.element(e).injector();if(!t)throw Wi("test","no injector found for element argument to getTestability");return t.get("$$testability")}function se(e,t){return t=t||"_",e.replace(ia,function(e,n){return(n?t:"")+e.toLowerCase()})}function le(){var t;if(!aa){var n=ea();Ui=_(n)?e.jQuery:n?e[n]:void 0,Ui&&Ui.fn.on?(Fi=Ui,c(Ui.fn,{scope:Ca.scope,isolateScope:Ca.isolateScope,controller:Ca.controller,injector:Ca.injector,inheritedData:Ca.inheritedData}),t=Ui.cleanData,Ui.cleanData=function(e){for(var n,i,a=0;null!=(i=e[a]);a++)n=Ui._data(i,"events"),n&&n.$destroy&&Ui(i).triggerHandler("$destroy");t(e)}):Fi=$e,Gi.element=Fi,aa=!0}}function ce(e,t,n){if(!e)throw Wi("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function de(e,t,n){return n&&Yi(e)&&(e=e[e.length-1]),ce(S(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function ue(e,t){if("hasOwnProperty"===e)throw Wi("badname","hasOwnProperty is not a valid {0} name",t)}function pe(e,t,n){if(!t)return e;for(var i,a=t.split("."),r=e,o=a.length,s=0;s<o;s++)i=a[s],e&&(e=(r=e)[i]);return!n&&S(e)?V(r,e):e}function fe(e){for(var t,n=e[0],i=e[e.length-1],a=1;n!==i&&(n=n.nextSibling);a++)(t||e[a]!==n)&&(t||(t=Fi(Hi.call(e,0,a))),t.push(n));return t||e}function me(){return Object.create(null)}function he(e){function n(e,t,n){return e[t]||(e[t]=n())}var i=t("$injector"),a=t("ng"),r=n(e,"angular",Object);return r.$$minErr=r.$$minErr||t,n(r,"module",function(){var e={};return function(t,r,o){var s=function(e,t){if("hasOwnProperty"===e)throw a("badname","hasOwnProperty is not a valid {0} name",t)};return s(t,"module"),r&&e.hasOwnProperty(t)&&(e[t]=null),n(e,t,function(){function e(e,t,n,i){return i||(i=a),function(){return i[n||"push"]([e,t,arguments]),d}}function n(e,n){return function(i,r){return r&&S(r)&&(r.$$moduleName=t),a.push([e,n,arguments]),d}}if(!r)throw i("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",t);var a=[],s=[],l=[],c=e("$injector","invoke","push",s),d={_invokeQueue:a,_configBlocks:s,_runBlocks:l,requires:r,name:t,provider:n("$provide","provider"),factory:n("$provide","factory"),service:n("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),decorator:n("$provide","decorator"),animation:n("$animateProvider","register"),filter:n("$filterProvider","register"),controller:n("$controllerProvider","register"),directive:n("$compileProvider","directive"),component:n("$compileProvider","component"),config:c,run:function(e){return l.push(e),this}};return o&&c(o),d})}})}function ge(e,t){if(Yi(e)){t=t||[];for(var n=0,i=e.length;n<i;n++)t[n]=e[n]}else if(y(e)){t=t||{};for(var a in e)"$"===a.charAt(0)&&"$"===a.charAt(1)||(t[a]=e[a])}return t||e}function _e(e){var t=[];return JSON.stringify(e,function(e,n){if(n=q(e,n),y(n)){if(t.indexOf(n)>=0)return"...";t.push(n)}return n})}function ve(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):_(e)?"undefined":"string"!=typeof e?_e(e):e}function ye(n){c(n,{bootstrap:ae,copy:U,extend:c,merge:d,equals:B,element:Fi,forEach:i,injector:it,noop:f,bind:V,toJson:z,fromJson:W,identity:m,isUndefined:_,isDefined:v,isString:w,isFunction:S,isObject:y,isNumber:k,isElement:O,isArray:Yi,version:ua,isDate:M,lowercase:Di,uppercase:Ri,callbacks:{counter:0},getTestability:oe,$$minErr:t,$$csp:Qi,reloadWithDebugInfo:re}),(Bi=he(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:An}),e.provider("$compile",mt).directive({a:Dr,input:Zr,textarea:Zr,form:Fr,script:Ko,select:Jo,style:Qo,option:Zo,ngBind:to,ngBindHtml:io,ngBindTemplate:no,ngClass:ro,ngClassEven:so,ngClassOdd:oo,ngCloak:lo,ngController:co,ngForm:Ur,ngHide:Ho,ngIf:fo,ngInclude:mo,ngInit:go,ngNonBindable:Po,ngPluralize:No,ngRepeat:Lo,ngShow:Bo,ngStyle:jo,ngSwitch:Vo,ngSwitchWhen:qo,ngSwitchDefault:zo,ngOptions:Oo,ngTransclude:Go,ngModel:$o,ngList:_o,ngChange:ao,pattern:ts,ngPattern:ts,required:es,ngRequired:es,minlength:is,ngMinlength:is,maxlength:ns,ngMaxlength:ns,ngValue:eo,ngModelOptions:xo}).directive({ngInclude:ho}).directive(Rr).directive(uo),e.provider({$anchorScroll:at,$animate:ja,$animateCss:za,$$animateJs:Ba,$$animateQueue:Ha,$$AnimateRunner:qa,$$animateAsyncRun:Va,$browser:dt,$cacheFactory:ut,$controller:bt,$document:wt,$exceptionHandler:kt,$filter:Un,$$forceReflow:Ja,$interpolate:Nt,$interval:Lt,$http:Pt,$httpParamSerializer:St,$httpParamSerializerJQLike:At,$httpBackend:Rt,$xhrFactory:Dt,$location:Zt,$log:Qt,$parse:yn,$rootScope:Sn,$q:bn,$$q:wn,$sce:$n,$sceDelegate:En,$sniffer:In,$templateCache:pt,$templateRequest:xn,$$testability:Pn,$timeout:Dn,$window:Nn,$$rAF:Mn,$$jqLite:Xe,$$HashMap:Ia,$$cookieReader:Fn})}])}function be(){return++fa}function we(e){return e.replace(ga,function(e,t,n,i){return i?n.toUpperCase():n}).replace(_a,"Moz$1")}function ke(e){return!wa.test(e)}function Me(e){var t=e.nodeType;return t===ra||!t||t===ca}function Se(e){for(var t in pa[e.ng339])return!0;return!1}function Ae(e){for(var t=0,n=e.length;t<n;t++)De(e[t])}function Ce(e,t){var n,a,r,o,s=t.createDocumentFragment(),l=[];if(ke(e))l.push(t.createTextNode(e));else{for(n=n||s.appendChild(t.createElement("div")),a=(ka.exec(e)||["",""])[1].toLowerCase(),r=Sa[a]||Sa._default,n.innerHTML=r[1]+e.replace(Ma,"<$1></$2>")+r[2],o=r[0];o--;)n=n.lastChild;l=H(l,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",i(l,function(e){s.appendChild(e)}),s}function Te(t,n){n=n||e.document;var i;return(i=ba.exec(t))?[n.createElement(i[1])]:(i=Ce(t,n))?i.childNodes:[]}function Ee(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}function $e(e){if(e instanceof $e)return e;var t;if(w(e)&&(e=Ji(e),t=!0),!(this instanceof $e)){if(t&&"<"!=e.charAt(0))throw ya("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new $e(e)}t?Ue(this,Te(e)):Ue(this,e)}function Ie(e){return e.cloneNode(!0)}function xe(e,t){if(t||De(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),i=0,a=n.length;i<a;i++)De(n[i])}function Pe(e,t,n,a){if(v(a))throw ya("offargs","jqLite#off() does not support the `selector` argument");var r=Re(e),o=r&&r.events,s=r&&r.handle;if(s)if(t){var l=function(t){var i=o[t];v(n)&&F(i||[],n),v(n)&&i&&i.length>0||(ha(e,t,s),delete o[t])};i(t.split(" "),function(e){l(e),va[e]&&l(va[e])})}else for(t in o)"$destroy"!==t&&ha(e,t,s),delete o[t]}function De(e,t){var n=e.ng339,i=n&&pa[n];if(i){if(t)return void delete i.data[t];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),Pe(e)),delete pa[n],e.ng339=void 0}}function Re(e,t){var n=e.ng339,i=n&&pa[n];return t&&!i&&(e.ng339=n=be(),i=pa[n]={events:{},data:{},handle:void 0}),i}function Oe(e,t,n){if(Me(e)){var i=v(n),a=!i&&t&&!y(t),r=!t,o=Re(e,!a),s=o&&o.data;if(i)s[t]=n;else{if(r)return s;if(a)return s&&s[t];c(s,t)}}}function Ne(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function Le(e,t){t&&e.setAttribute&&i(t.split(" "),function(t){e.setAttribute("class",Ji((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+Ji(t)+" "," ")))})}function Fe(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");i(t.split(" "),function(e){e=Ji(e),n.indexOf(" "+e+" ")===-1&&(n+=e+" ")}),e.setAttribute("class",Ji(n))}}function Ue(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var i=0;i<n;i++)e[e.length++]=t[i]}else e[e.length++]=t}}function Be(e,t){return He(e,"$"+(t||"ngController")+"Controller")}function He(e,t,n){e.nodeType==ca&&(e=e.documentElement);for(var i=Yi(t)?t:[t];e;){for(var a=0,r=i.length;a<r;a++)if(v(n=Fi.data(e,i[a])))return n;e=e.parentNode||e.nodeType===da&&e.host}}function je(e){for(xe(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function Ve(e,t){t||xe(e);var n=e.parentNode;n&&n.removeChild(e)}function qe(t,n){n=n||e,"complete"===n.document.readyState?n.setTimeout(t):Fi(n).on("load",t)}function ze(e,t){var n=Ta[t.toLowerCase()];return n&&Ea[L(e)]&&n}function We(e){return $a[e]}function Ge(e,t){var n=function(n,i){n.isDefaultPrevented=function(){return n.defaultPrevented};var a=t[i||n.type],r=a?a.length:0;if(r){if(_(n.immediatePropagationStopped)){var o=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),o&&o.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0};var s=a.specialHandlerWrapper||Ke;r>1&&(a=ge(a));for(var l=0;l<r;l++)n.isImmediatePropagationStopped()||s(e,n,a[l]);
}};return n.elem=e,n}function Ke(e,t,n){n.call(e,t)}function Ye(e,t,n){var i=t.relatedTarget;i&&(i===e||Aa.call(e,i))||n.call(e,t)}function Xe(){this.$get=function(){return c($e,{hasClass:function(e,t){return e.attr&&(e=e[0]),Ne(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),Fe(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),Le(e,t)}})}}function Je(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var i=typeof e;return n="function"==i||"object"==i&&null!==e?e.$$hashKey=i+":"+(t||o)():i+":"+e}function Ze(e,t){if(t){var n=0;this.nextUid=function(){return++n}}i(e,this.put,this)}function Qe(e){return Function.prototype.toString.call(e)+" "}function et(e){var t=Qe(e).replace(Oa,""),n=t.match(xa)||t.match(Pa);return n}function tt(e){var t=et(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function nt(e,t,n){var a,r,o;if("function"==typeof e){if(!(a=e.$inject)){if(a=[],e.length){if(t)throw w(n)&&n||(n=e.name||tt(e)),Na("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);r=et(e),i(r[1].split(Da),function(e){e.replace(Ra,function(e,t,n){a.push(n)})})}e.$inject=a}}else Yi(e)?(o=e.length-1,de(e[o],"fn"),a=e.slice(0,o)):de(e,"fn",!0);return a}function it(e,t){function n(e){return function(t,n){return y(t)?void i(t,r(e)):e(t,n)}}function a(e,t){if(ue(e,"service"),(S(t)||Yi(t))&&(t=M.instantiate(t)),!t.$get)throw Na("pget","Provider '{0}' must define $get factory method.",e);return k[e+g]=t}function o(e,t){return function(){var n=T.invoke(t,this);if(_(n))throw Na("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function s(e,t,n){return a(e,{$get:n!==!1?o(e,t):t})}function l(e,t){return s(e,["$injector",function(e){return e.instantiate(t)}])}function c(e,t){return s(e,h(t),!1)}function d(e,t){ue(e,"constant"),k[e]=t,A[e]=t}function u(e,t){var n=M.get(e+g),i=n.$get;n.$get=function(){var e=T.invoke(i,n);return T.invoke(t,null,{$delegate:e})}}function p(e){ce(_(e)||Yi(e),"modulesToLoad","not an array");var t,n=[];return i(e,function(e){function i(e){var t,n;for(t=0,n=e.length;t<n;t++){var i=e[t],a=M.get(i[0]);a[i[1]].apply(a,i[2])}}if(!b.get(e)){b.put(e,!0);try{w(e)?(t=Bi(e),n=n.concat(p(t.requires)).concat(t._runBlocks),i(t._invokeQueue),i(t._configBlocks)):S(e)?n.push(M.invoke(e)):Yi(e)?n.push(M.invoke(e)):de(e,"module")}catch(a){throw Yi(e)&&(e=e[e.length-1]),a.message&&a.stack&&a.stack.indexOf(a.message)==-1&&(a=a.message+"\n"+a.stack),Na("modulerr","Failed to instantiate module {0} due to:\n{1}",e,a.stack||a.message||a)}}}),n}function f(e,n){function i(t,i){if(e.hasOwnProperty(t)){if(e[t]===m)throw Na("cdep","Circular dependency found: {0}",t+" <- "+v.join(" <- "));return e[t]}try{return v.unshift(t),e[t]=m,e[t]=n(t,i)}catch(a){throw e[t]===m&&delete e[t],a}finally{v.shift()}}function a(e,n,a){for(var r=[],o=it.$$annotate(e,t,a),s=0,l=o.length;s<l;s++){var c=o[s];if("string"!=typeof c)throw Na("itkn","Incorrect injection token! Expected service name as string, got {0}",c);r.push(n&&n.hasOwnProperty(c)?n[c]:i(c,a))}return r}function r(e){return!(Li<=11)&&("function"==typeof e&&/^(?:class\s|constructor\()/.test(Qe(e)))}function o(e,t,n,i){"string"==typeof n&&(i=n,n=null);var o=a(e,n,i);return Yi(e)&&(e=e[e.length-1]),r(e)?(o.unshift(null),new(Function.prototype.bind.apply(e,o))):e.apply(t,o)}function s(e,t,n){var i=Yi(e)?e[e.length-1]:e,r=a(e,t,n);return r.unshift(null),new(Function.prototype.bind.apply(i,r))}return{invoke:o,instantiate:s,get:i,annotate:it.$$annotate,has:function(t){return k.hasOwnProperty(t+g)||e.hasOwnProperty(t)}}}t=t===!0;var m={},g="Provider",v=[],b=new Ze([],(!0)),k={$provide:{provider:n(a),factory:n(s),service:n(l),value:n(c),constant:n(d),decorator:u}},M=k.$injector=f(k,function(e,t){throw Gi.isString(t)&&v.push(t),Na("unpr","Unknown provider: {0}",v.join(" <- "))}),A={},C=f(A,function(e,t){var n=M.get(e+g,t);return T.invoke(n.$get,n,void 0,e)}),T=C;k["$injector"+g]={$get:h(C)};var E=p(e);return T=C.get("$injector"),T.strictDi=t,i(E,function(e){e&&T.invoke(e)}),T}function at(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=["$window","$location","$rootScope",function(t,n,i){function a(e){var t=null;return Array.prototype.some.call(e,function(e){if("a"===L(e))return t=e,!0}),t}function r(){var e=s.yOffset;if(S(e))e=e();else if(O(e)){var n=e[0],i=t.getComputedStyle(n);e="fixed"!==i.position?0:n.getBoundingClientRect().bottom}else k(e)||(e=0);return e}function o(e){if(e){e.scrollIntoView();var n=r();if(n){var i=e.getBoundingClientRect().top;t.scrollBy(0,i-n)}}else t.scrollTo(0,0)}function s(e){e=w(e)?e:n.hash();var t;e?(t=l.getElementById(e))?o(t):(t=a(l.getElementsByName(e)))?o(t):"top"===e&&o(null):o(null)}var l=t.document;return e&&i.$watch(function(){return n.hash()},function(e,t){e===t&&""===e||qe(function(){i.$evalAsync(s)})}),s}]}function rt(e,t){return e||t?e?t?(Yi(e)&&(e=e.join(" ")),Yi(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function ot(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===Fa)return n}}function st(e){w(e)&&(e=e.split(" "));var t=me();return i(e,function(e){e.length&&(t[e]=!0)}),t}function lt(e){return y(e)?e:{}}function ct(e,t,n,a){function r(e){try{e.apply(null,j(arguments,1))}finally{if(v--,0===v)for(;y.length;)try{y.pop()()}catch(t){n.error(t)}}}function o(e){var t=e.indexOf("#");return t===-1?"":e.substr(t)}function s(){S=null,l(),c()}function l(){b=A(),b=_(b)?null:b,B(b,E)&&(b=E),E=b}function c(){k===d.url()&&w===b||(k=d.url(),w=b,i(C,function(e){e(d.url(),b)}))}var d=this,u=e.location,p=e.history,m=e.setTimeout,h=e.clearTimeout,g={};d.isMock=!1;var v=0,y=[];d.$$completeOutstandingRequest=r,d.$$incOutstandingRequestCount=function(){v++},d.notifyWhenNoOutstandingRequests=function(e){0===v?e():y.push(e)};var b,w,k=u.href,M=t.find("base"),S=null,A=a.history?function(){try{return p.state}catch(e){}}:f;l(),w=b,d.url=function(t,n,i){if(_(i)&&(i=null),u!==e.location&&(u=e.location),p!==e.history&&(p=e.history),t){var r=w===i;if(k===t&&(!a.history||r))return d;var s=k&&Vt(k)===Vt(t);return k=t,w=i,!a.history||s&&r?(s||(S=t),n?u.replace(t):s?u.hash=o(t):u.href=t,u.href!==t&&(S=t)):(p[n?"replaceState":"pushState"](i,"",t),l(),w=b),S&&(S=t),d}return S||u.href.replace(/%27/g,"'")},d.state=function(){return b};var C=[],T=!1,E=null;d.onUrlChange=function(t){return T||(a.history&&Fi(e).on("popstate",s),Fi(e).on("hashchange",s),T=!0),C.push(t),t},d.$$applicationDestroyed=function(){Fi(e).off("hashchange popstate",s)},d.$$checkUrlChange=c,d.baseHref=function(){var e=M.attr("href");return e?e.replace(/^(https?\:)?\/\/[^\/]*/,""):""},d.defer=function(e,t){var n;return v++,n=m(function(){delete g[n],r(e)},t||0),g[n]=!0,n},d.defer.cancel=function(e){return!!g[e]&&(delete g[e],h(e),r(f),!0)}}function dt(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,i){return new ct(e,i,t,n)}]}function ut(){this.$get=function(){function e(e,i){function a(e){e!=p&&(f?f==e&&(f=e.n):f=e,r(e.n,e.p),r(e,p),p=e,p.n=null)}function r(e,t){e!=t&&(e&&(e.p=t),t&&(t.n=e))}if(e in n)throw t("$cacheFactory")("iid","CacheId '{0}' is already taken!",e);var o=0,s=c({},i,{id:e}),l=me(),d=i&&i.capacity||Number.MAX_VALUE,u=me(),p=null,f=null;return n[e]={put:function(e,t){if(!_(t)){if(d<Number.MAX_VALUE){var n=u[e]||(u[e]={key:e});a(n)}return e in l||o++,l[e]=t,o>d&&this.remove(f.key),t}},get:function(e){if(d<Number.MAX_VALUE){var t=u[e];if(!t)return;a(t)}return l[e]},remove:function(e){if(d<Number.MAX_VALUE){var t=u[e];if(!t)return;t==p&&(p=t.p),t==f&&(f=t.n),r(t.n,t.p),delete u[e]}e in l&&(delete l[e],o--)},removeAll:function(){l=me(),o=0,u=me(),p=f=null},destroy:function(){l=null,s=null,u=null,delete n[e]},info:function(){return c({},s,{size:o})}}}var n={};return e.info=function(){var e={};return i(n,function(t,n){e[n]=t.info()}),e},e.get=function(e){return n[e]},e}}function pt(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function ft(){}function mt(t,n){function a(e,t,n){var a=/^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/,r=me();return i(e,function(e,i){if(e in C)return void(r[i]=C[e]);var o=e.match(a);if(!o)throw Wa("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,i,e,n?"controller bindings definition":"isolate scope definition");r[i]={mode:o[1][0],collection:"*"===o[2],optional:"?"===o[3],attrName:o[4]||i},o[4]&&(C[e]=r[i])}),r}function o(e,t){var n={isolateScope:null,bindToController:null};if(y(e.scope)&&(e.bindToController===!0?(n.bindToController=a(e.scope,t,!0),n.isolateScope={}):n.isolateScope=a(e.scope,t,!1)),y(e.bindToController)&&(n.bindToController=a(e.bindToController,t,!0)),y(n.bindToController)){var i=e.controller,r=e.controllerAs;if(!i)throw Wa("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);if(!yt(i,r))throw Wa("noident","Cannot bind to controller without identifier for directive '{0}'.",t)}return n}function s(e){var t=e.charAt(0);if(!t||t!==Di(t))throw Wa("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw Wa("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}function l(e){var t=e.require||e.controller&&e.name;return!Yi(t)&&y(t)&&i(t,function(e,n){var i=e.match(M),a=e.substring(i[0].length);a||(t[n]=i[0]+n)}),t}var d={},u="Directive",g=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,b=/(([\w\-]+)(?:\:([^;]+))?;?)/,k=N("ngSrc,ngSrcset,src,srcset"),M=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,A=/^(on[a-z]+|formaction)$/,C=me();this.directive=function I(e,n){return ue(e,"directive"),w(e)?(s(e),ce(n,"directiveFactory"),d.hasOwnProperty(e)||(d[e]=[],t.factory(e+u,["$injector","$exceptionHandler",function(t,n){var a=[];return i(d[e],function(i,r){try{var o=t.invoke(i);S(o)?o={compile:h(o)}:!o.compile&&o.link&&(o.compile=h(o.link)),o.priority=o.priority||0,o.index=r,o.name=o.name||e,o.require=l(o),o.restrict=o.restrict||"EA",o.$$moduleName=i.$$moduleName,a.push(o)}catch(s){n(s)}}),a}])),d[e].push(n)):i(e,r(I)),this},this.component=function(e,t){function n(e){function n(t){return S(t)||Yi(t)?function(n,i){return e.invoke(t,this,{$element:n,$attrs:i})}:t}var r=t.template||t.templateUrl?t.template:"",o={controller:a,controllerAs:yt(t.controller)||t.controllerAs||"$ctrl",template:n(r),templateUrl:n(t.templateUrl),transclude:t.transclude,scope:{},bindToController:t.bindings||{},restrict:"E",require:t.require};return i(t,function(e,t){"$"===t.charAt(0)&&(o[t]=e)}),o}var a=t.controller||function(){};return i(t,function(e,t){"$"===t.charAt(0)&&(n[t]=e,S(a)&&(a[t]=e))}),n.$inject=["$injector"],this.directive(e,n)},this.aHrefSanitizationWhitelist=function(e){return v(e)?(n.aHrefSanitizationWhitelist(e),this):n.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return v(e)?(n.imgSrcSanitizationWhitelist(e),this):n.imgSrcSanitizationWhitelist()};var E=!0;this.debugInfoEnabled=function(e){return v(e)?(E=e,this):E};var $=10;this.onChangesTtl=function(e){return arguments.length?($=e,this):$},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(t,n,a,r,s,l,h,C,I,P){function D(){try{if(!--we)throw ve=void 0,Wa("infchng","{0} $onChanges() iterations reached. Aborting!\n",$);h.$apply(function(){for(var e=[],t=0,n=ve.length;t<n;++t)try{ve[t]()}catch(i){e.push(i)}if(ve=void 0,e.length)throw e})}finally{we++}}function R(e,t){if(t){var n,i,a,r=Object.keys(t);for(n=0,i=r.length;n<i;n++)a=r[n],this[a]=t[a]}else this.$attr={};this.$$element=e}function O(e,t,n){be.innerHTML="<span "+t+">";var i=be.firstChild.attributes,a=i[0];i.removeNamedItem(a.name),a.value=n,e.attributes.setNamedItem(a)}function N(e,t){try{e.addClass(t)}catch(n){}}function U(t,n,i,a,r){t instanceof Fi||(t=Fi(t));for(var o=/\S+/,s=0,l=t.length;s<l;s++){var c=t[s];c.nodeType===sa&&c.nodeValue.match(o)&&Ee(c,t[s]=e.document.createElement("span"))}var d=q(t,n,t,i,a,r);U.$$addScopeClass(t);var u=null;return function(e,n,i){ce(e,"scope"),r&&r.needsNewScope&&(e=e.$parent.$new()),i=i||{};var a=i.parentBoundTranscludeFn,o=i.transcludeControllers,s=i.futureParentElement;a&&a.$$boundTransclude&&(a=a.$$boundTransclude),u||(u=H(s));var l;if(l="html"!==u?Fi(de(u,Fi("<div>").append(t).html())):n?Ca.clone.call(t):t,o)for(var c in o)l.data("$"+c+"Controller",o[c].instance);return U.$$addScopeInfo(l,e),n&&n(l,e),d&&d(e,l,l,a),l}}function H(e){var t=e&&e[0];return t&&"foreignobject"!==L(t)&&qi.call(t).match(/SVG/)?"svg":"html"}function q(e,t,n,i,a,r){function o(e,n,i,a){var r,o,s,l,c,d,u,p,h;if(f){var g=n.length;for(h=new Array(g),c=0;c<m.length;c+=3)u=m[c],h[u]=n[u]}else h=n;for(c=0,d=m.length;c<d;)s=h[m[c++]],r=m[c++],o=m[c++],r?(r.scope?(l=e.$new(),U.$$addScopeInfo(Fi(s),l)):l=e,p=r.transcludeOnThisElement?z(e,r.transclude,a):!r.templateOnThisElement&&a?a:!a&&t?z(e,t):null,r(o,l,s,i,p)):o&&o(e,s.childNodes,void 0,a)}for(var s,l,c,d,u,p,f,m=[],h=0;h<e.length;h++)s=new R,l=W(e[h],[],s,0===h?i:void 0,a),c=l.length?J(l,e[h],s,t,n,null,[],[],r):null,c&&c.scope&&U.$$addScopeClass(s.$$element),u=c&&c.terminal||!(d=e[h].childNodes)||!d.length?null:q(d,c?(c.transcludeOnThisElement||!c.templateOnThisElement)&&c.transclude:t),(c||u)&&(m.push(h,c,u),p=!0,f=f||c),r=null;return p?o:null}function z(e,t,n){function i(i,a,r,o,s){return i||(i=e.$new(!1,s),i.$$transcluded=!0),t(i,a,{parentBoundTranscludeFn:n,transcludeControllers:r,futureParentElement:o})}var a=i.$$slots=me();for(var r in t.$$slots)t.$$slots[r]?a[r]=z(e,t.$$slots[r],n):a[r]=null;return i}function W(e,t,n,i,a){var r,o,s=e.nodeType,l=n.$attr;switch(s){case ra:te(t,gt(L(e)),"E",i,a);for(var c,d,u,p,f,m,h=e.attributes,_=0,v=h&&h.length;_<v;_++){var k=!1,M=!1;c=h[_],d=c.name,f=Ji(c.value),p=gt(d),(m=Ce.test(p))&&(d=d.replace(Ka,"").substr(8).replace(/_(.)/g,function(e,t){return t.toUpperCase()}));var S=p.match(Te);S&&ne(S[1])&&(k=d,M=d.substr(0,d.length-5)+"end",d=d.substr(0,d.length-6)),u=gt(d.toLowerCase()),l[u]=d,!m&&n.hasOwnProperty(u)||(n[u]=f,ze(e,u)&&(n[u]=!0)),pe(e,t,f,u,m),te(t,u,"A",i,a,k,M)}if(o=e.className,y(o)&&(o=o.animVal),w(o)&&""!==o)for(;r=b.exec(o);)u=gt(r[2]),te(t,u,"C",i,a)&&(n[u]=Ji(r[3])),o=o.substr(r.index+r[0].length);break;case sa:if(11===Li)for(;e.parentNode&&e.nextSibling&&e.nextSibling.nodeType===sa;)e.nodeValue=e.nodeValue+e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);le(t,e.nodeValue);break;case la:try{r=g.exec(e.nodeValue),r&&(u=gt(r[1]),te(t,u,"M",i,a)&&(n[u]=Ji(r[2])))}catch(A){}}return t.sort(re),t}function G(e,t,n){var i=[],a=0;if(t&&e.hasAttribute&&e.hasAttribute(t)){do{if(!e)throw Wa("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType==ra&&(e.hasAttribute(t)&&a++,e.hasAttribute(n)&&a--),i.push(e),e=e.nextSibling}while(a>0)}else i.push(e);return Fi(i)}function K(e,t,n){return function(i,a,r,o,s){return a=G(a[0],t,n),e(i,a,r,o,s)}}function Y(e,t,n,i,a,r){var o;return e?U(t,n,i,a,r):function(){return o||(o=U(t,n,i,a,r),t=n=r=null),o.apply(this,arguments)}}function J(e,t,n,r,o,s,l,d,u){function p(e,t,n,i){e&&(n&&(e=K(e,n,i)),e.require=m.require,e.directiveName=h,(A===m||m.$$isolateScope)&&(e=he(e,{isolateScope:!0})),l.push(e)),t&&(n&&(t=K(t,n,i)),t.require=m.require,t.directiveName=h,(A===m||m.$$isolateScope)&&(t=he(t,{isolateScope:!0})),d.push(t))}function f(e,r,o,s,u){function p(e,t,n,i){var a;if(T(e)||(i=n,n=t,t=e,e=void 0),x&&(a=b),n||(n=x?E.parent():E),!i)return u(e,t,a,n,F);var r=u.$$slots[i];if(r)return r(e,t,a,n,F);if(_(r))throw Wa("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',i,X(E))}var f,m,h,g,v,b,w,E,$,I;t===o?($=n,E=n.$$element):(E=Fi(o),$=new R(E,n)),v=r,A?g=r.$new(!0):k&&(v=r.$parent),u&&(w=p,w.$$boundTransclude=u,w.isSlotFilled=function(e){return!!u.$$slots[e]}),M&&(b=Q(E,$,w,M,g,r,A)),A&&(U.$$addScopeInfo(E,g,!0,!(C&&(C===A||C===A.$$originalDirective))),U.$$addScopeClass(E,!0),g.$$isolateBindings=A.$$isolateBindings,I=_e(r,$,g,g.$$isolateBindings,A),I.removeWatches&&g.$on("$destroy",I.removeWatches));for(var P in b){var D=M[P],O=b[P],N=D.$$bindings.bindToController;O.identifier&&N?O.bindingInfo=_e(v,$,O.instance,N,D):O.bindingInfo={};var L=O();L!==O.instance&&(O.instance=L,E.data("$"+D.name+"Controller",L),O.bindingInfo.removeWatches&&O.bindingInfo.removeWatches(),O.bindingInfo=_e(v,$,O.instance,N,D))}for(i(M,function(e,t){var n=e.require;e.bindToController&&!Yi(n)&&y(n)&&c(b[t].instance,Z(t,n,E,b))}),i(b,function(e){var t=e.instance;if(S(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(n){a(n)}if(S(t.$onInit))try{t.$onInit()}catch(n){a(n)}S(t.$onDestroy)&&v.$on("$destroy",function(){t.$onDestroy()})}),f=0,m=l.length;f<m;f++)h=l[f],ge(h,h.isolateScope?g:r,E,$,h.require&&Z(h.directiveName,h.require,E,b),w);var F=r;for(A&&(A.template||null===A.templateUrl)&&(F=g),e&&e(F,o.childNodes,void 0,u),f=d.length-1;f>=0;f--)h=d[f],ge(h,h.isolateScope?g:r,E,$,h.require&&Z(h.directiveName,h.require,E,b),w);i(b,function(e){var t=e.instance;S(t.$postLink)&&t.$postLink()})}u=u||{};for(var m,h,g,v,b,w=-Number.MAX_VALUE,k=u.newScopeDirective,M=u.controllerDirectives,A=u.newIsolateScopeDirective,C=u.templateDirective,E=u.nonTlbTranscludeDirective,$=!1,I=!1,x=u.hasElementTranscludeDirective,P=n.$$element=Fi(t),D=s,O=r,N=!1,F=!1,B=0,H=e.length;B<H;B++){m=e[B];var q=m.$$start,z=m.$$end;if(q&&(P=G(t,q,z)),g=void 0,w>m.priority)break;if((b=m.scope)&&(m.templateUrl||(y(b)?(oe("new/isolated scope",A||k,m,P),A=m):oe("new/isolated scope",A,m,P)),k=k||m),h=m.name,!N&&(m.replace&&(m.templateUrl||m.template)||m.transclude&&!m.$$tlb)){for(var J,te=B+1;J=e[te++];)if(J.transclude&&!J.$$tlb||J.replace&&(J.templateUrl||J.template)){F=!0;break}N=!0}if(!m.templateUrl&&m.controller&&(b=m.controller,M=M||me(),oe("'"+h+"' controller",M[h],m,P),M[h]=m),b=m.transclude)if($=!0,m.$$tlb||(oe("transclusion",E,m,P),E=m),"element"==b)x=!0,w=m.priority,g=P,P=n.$$element=Fi(U.$$createComment(h,n[h])),t=P[0],fe(o,j(g),t),g[0].$$parentNode=g[0].parentNode,O=Y(F,g,r,w,D&&D.name,{nonTlbTranscludeDirective:E});else{var ne=me();if(g=Fi(Ie(t)).contents(),y(b)){g=[];var re=me(),se=me();i(b,function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,re[e]=t,ne[t]=null,se[t]=n}),i(P.contents(),function(e){var t=re[gt(L(e))];t?(se[t]=!0,ne[t]=ne[t]||[],ne[t].push(e)):g.push(e)}),i(se,function(e,t){if(!e)throw Wa("reqslot","Required transclusion slot `{0}` was not filled.",t)});for(var le in ne)ne[le]&&(ne[le]=Y(F,ne[le],r))}P.empty(),O=Y(F,g,r,void 0,void 0,{needsNewScope:m.$$isolateScope||m.$$newScope}),O.$$slots=ne}if(m.template)if(I=!0,oe("template",C,m,P),C=m,b=S(m.template)?m.template(P,n):m.template,b=Ae(b),m.replace){if(D=m,g=ke(b)?[]:vt(de(m.templateNamespace,Ji(b))),t=g[0],1!=g.length||t.nodeType!==ra)throw Wa("tplrt","Template for directive '{0}' must have exactly one root element. {1}",h,"");fe(o,P,t);var ce={$attr:{}},ue=W(t,[],ce),pe=e.splice(B+1,e.length-(B+1));(A||k)&&ee(ue,A,k),e=e.concat(ue).concat(pe),ie(n,ce),H=e.length}else P.html(b);if(m.templateUrl)I=!0,oe("template",C,m,P),C=m,m.replace&&(D=m),f=ae(e.splice(B,e.length-B),P,n,o,$&&O,l,d,{controllerDirectives:M,newScopeDirective:k!==m&&k,newIsolateScopeDirective:A,templateDirective:C,nonTlbTranscludeDirective:E}),H=e.length;else if(m.compile)try{v=m.compile(P,n,O);var ve=m.$$originalDirective||m;S(v)?p(null,V(ve,v),q,z):v&&p(V(ve,v.pre),V(ve,v.post),q,z)}catch(ye){a(ye,X(P))}m.terminal&&(f.terminal=!0,w=Math.max(w,m.priority))}return f.scope=k&&k.scope===!0,f.transcludeOnThisElement=$,f.templateOnThisElement=I,f.transclude=O,u.hasElementTranscludeDirective=x,f}function Z(e,t,n,a){var r;if(w(t)){var o=t.match(M),s=t.substring(o[0].length),l=o[1]||o[3],c="?"===o[2];if("^^"===l?n=n.parent():(r=a&&a[s],r=r&&r.instance),!r){var d="$"+s+"Controller";r=l?n.inheritedData(d):n.data(d)}if(!r&&!c)throw Wa("ctreq","Controller '{0}', required by directive '{1}', can't be found!",s,e)}else if(Yi(t)){r=[];for(var u=0,p=t.length;u<p;u++)r[u]=Z(e,t[u],n,a)}else y(t)&&(r={},i(t,function(t,i){r[i]=Z(e,t,n,a)}));return r||null}function Q(e,t,n,i,a,r,o){var s=me();for(var c in i){var d=i[c],u={$scope:d===o||d.$$isolateScope?a:r,$element:e,$attrs:t,$transclude:n},p=d.controller;"@"==p&&(p=t[d.name]);var f=l(p,u,!0,d.controllerAs);s[d.name]=f,e.data("$"+d.name+"Controller",f.instance)}return s}function ee(e,t,n){for(var i=0,a=e.length;i<a;i++)e[i]=p(e[i],{$$isolateScope:t,$$newScope:n})}function te(e,n,i,r,s,l,c){if(n===s)return null;var f=null;if(d.hasOwnProperty(n))for(var m,h=t.get(n+u),g=0,v=h.length;g<v;g++)try{if(m=h[g],(_(r)||r>m.priority)&&m.restrict.indexOf(i)!=-1){if(l&&(m=p(m,{$$start:l,$$end:c})),!m.$$bindings){var b=m.$$bindings=o(m,m.name);y(b.isolateScope)&&(m.$$isolateBindings=b.isolateScope)}e.push(m),f=m}}catch(w){a(w)}return f}function ne(e){if(d.hasOwnProperty(e))for(var n,i=t.get(e+u),a=0,r=i.length;a<r;a++)if(n=i[a],n.multiElement)return!0;return!1}function ie(e,t){var n=t.$attr,a=e.$attr;e.$$element;i(e,function(i,a){"$"!=a.charAt(0)&&(t[a]&&t[a]!==i&&(i+=("style"===a?";":" ")+t[a]),e.$set(a,i,!0,n[a]))}),i(t,function(t,i){e.hasOwnProperty(i)||"$"===i.charAt(0)||(e[i]=t,"class"!==i&&"style"!==i&&(a[i]=n[i]))})}function ae(e,t,n,a,o,s,l,c){var d,u,f=[],m=t[0],h=e.shift(),g=p(h,{templateUrl:null,transclude:null,replace:null,$$originalDirective:h}),_=S(h.templateUrl)?h.templateUrl(t,n):h.templateUrl,v=h.templateNamespace;return t.empty(),r(_).then(function(r){var p,b,w,k;if(r=Ae(r),h.replace){if(w=ke(r)?[]:vt(de(v,Ji(r))),p=w[0],1!=w.length||p.nodeType!==ra)throw Wa("tplrt","Template for directive '{0}' must have exactly one root element. {1}",h.name,_);b={$attr:{}},fe(a,t,p);var M=W(p,[],b);y(h.scope)&&ee(M,!0),e=M.concat(e),ie(n,b)}else p=m,t.html(r);for(e.unshift(g),d=J(e,p,n,o,t,h,s,l,c),i(a,function(e,n){e==p&&(a[n]=t[0])}),u=q(t[0].childNodes,o);f.length;){var S=f.shift(),A=f.shift(),C=f.shift(),T=f.shift(),E=t[0];if(!S.$$destroyed){if(A!==m){var $=A.className;c.hasElementTranscludeDirective&&h.replace||(E=Ie(p)),fe(C,Fi(A),E),N(Fi(E),$)}k=d.transcludeOnThisElement?z(S,d.transclude,T):T,d(u,S,E,a,k)}}f=null}),function(e,t,n,i,a){var r=a;t.$$destroyed||(f?f.push(t,n,i,r):(d.transcludeOnThisElement&&(r=z(t,d.transclude,a)),d(u,t,n,i,r)))}}function re(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function oe(e,t,n,i){function a(e){return e?" (module: "+e+")":""}if(t)throw Wa("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,a(t.$$moduleName),n.name,a(n.$$moduleName),e,X(i))}function le(e,t){var i=n(t,!0);i&&e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&&U.$$addBindingClass(t),function(e,t){var a=t.parent();n||U.$$addBindingClass(a),U.$$addBindingInfo(a,i.expressions),e.$watch(i,function(e){t[0].nodeValue=e})}}})}function de(t,n){switch(t=Di(t||"html")){case"svg":case"math":var i=e.document.createElement("div");return i.innerHTML="<"+t+">"+n+"</"+t+">",i.childNodes[0].childNodes;default:return n}}function ue(e,t){if("srcdoc"==t)return C.HTML;var n=L(e);return"xlinkHref"==t||"form"==n&&"action"==t||"img"!=n&&("src"==t||"ngSrc"==t)?C.RESOURCE_URL:void 0}function pe(e,t,i,a,r){var o=ue(e,a);r=k[a]||r;var s=n(i,!0,o,r);if(s){if("multiple"===a&&"select"===L(e))throw Wa("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",X(e));t.push({priority:100,compile:function(){return{pre:function(e,t,l){var c=l.$$observers||(l.$$observers=me());if(A.test(a))throw Wa("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var d=l[a];d!==i&&(s=d&&n(d,!0,o,r),i=d),s&&(l[a]=s(e),(c[a]||(c[a]=[])).$$inter=!0,(l.$$observers&&l.$$observers[a].$$scope||e).$watch(s,function(e,t){"class"===a&&e!=t?l.$updateClass(e,t):l.$set(a,e)}))}}}})}}function fe(t,n,i){var a,r,o=n[0],s=n.length,l=o.parentNode;if(t)for(a=0,r=t.length;a<r;a++)if(t[a]==o){t[a++]=i;for(var c=a,d=c+s-1,u=t.length;c<u;c++,d++)d<u?t[c]=t[d]:delete t[c];t.length-=s-1,t.context===o&&(t.context=i);break}l&&l.replaceChild(i,o);var p=e.document.createDocumentFragment();for(a=0;a<s;a++)p.appendChild(n[a]);for(Fi.hasData(o)&&(Fi.data(i,Fi.data(o)),Fi(o).off("$destroy")),Fi.cleanData(p.querySelectorAll("*")),a=1;a<s;a++)delete n[a];n[0]=i,n.length=1}function he(e,t){return c(function(){return e.apply(null,arguments)},e,t)}function ge(e,t,n,i,r,o){try{e(t,n,i,r,o)}catch(s){a(s,X(n))}}function _e(e,t,a,r,o){function l(t,n,i){S(a.$onChanges)&&n!==i&&(ve||(e.$$postDigest(D),ve=[]),d||(d={},ve.push(c)),d[t]&&(i=d[t].previousValue),d[t]=new ht(i,n))}function c(){a.$onChanges(d),d=void 0}var d,u=[],p={};return i(r,function(i,r){var c,d,m,h,g,_=i.attrName,v=i.optional,y=i.mode;switch(y){case"@":v||Pi.call(t,_)||(a[r]=t[_]=void 0),t.$observe(_,function(e){if(w(e)||x(e)){var t=a[r];l(r,e,t),a[r]=e}}),t.$$observers[_].$$scope=e,c=t[_],w(c)?a[r]=n(c)(e):x(c)&&(a[r]=c),p[r]=new ht(Ga,a[r]);break;case"=":if(!Pi.call(t,_)){if(v)break;t[_]=void 0}if(v&&!t[_])break;d=s(t[_]),h=d.literal?B:function(e,t){return e===t||e!==e&&t!==t},m=d.assign||function(){throw c=a[r]=d(e),Wa("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",t[_],_,o.name)},c=a[r]=d(e);var b=function(t){return h(t,a[r])||(h(t,c)?m(e,t=a[r]):a[r]=t),c=t};b.$stateful=!0,g=i.collection?e.$watchCollection(t[_],b):e.$watch(s(t[_],b),null,d.literal),u.push(g);break;case"<":if(!Pi.call(t,_)){if(v)break;t[_]=void 0}if(v&&!t[_])break;d=s(t[_]);var k=a[r]=d(e);p[r]=new ht(Ga,a[r]),g=e.$watch(d,function(e,t){if(t===e){if(t===k)return;t=k}l(r,e,t),a[r]=e},d.literal),u.push(g);break;case"&":if(d=t.hasOwnProperty(_)?s(t[_]):f,d===f&&v)break;a[r]=function(t){return d(e,t)}}}),{initialChanges:p,removeWatches:u.length&&function(){for(var e=0,t=u.length;e<t;++e)u[e]()}}}var ve,ye=/^\w/,be=e.document.createElement("div"),we=$;R.prototype={$normalize:gt,$addClass:function(e){e&&e.length>0&&I.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&I.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=_t(e,t);n&&n.length&&I.addClass(this.$$element,n);var i=_t(t,e);i&&i.length&&I.removeClass(this.$$element,i)},$set:function(e,t,n,r){var o,s=this.$$element[0],l=ze(s,e),c=We(e),d=e;if(l?(this.$$element.prop(e,t),r=l):c&&(this[c]=t,d=c),this[e]=t,r?this.$attr[e]=r:(r=this.$attr[e],r||(this.$attr[e]=r=se(e,"-"))),o=L(this.$$element),"a"===o&&("href"===e||"xlinkHref"===e)||"img"===o&&"src"===e)this[e]=t=P(t,"src"===e);else if("img"===o&&"srcset"===e&&v(t)){for(var u="",p=Ji(t),f=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,m=/\s/.test(p)?f:/(,)/,h=p.split(m),g=Math.floor(h.length/2),y=0;y<g;y++){var b=2*y;u+=P(Ji(h[b]),!0),u+=" "+Ji(h[b+1])}var w=Ji(h[2*y]).split(/\s/);u+=P(Ji(w[0]),!0),2===w.length&&(u+=" "+Ji(w[1])),this[e]=t=u}n!==!1&&(null===t||_(t)?this.$$element.removeAttr(r):ye.test(r)?this.$$element.attr(r,t):O(this.$$element[0],r,t));var k=this.$$observers;k&&i(k[d],function(e){try{e(t)}catch(n){a(n)}})},$observe:function(e,t){var n=this,i=n.$$observers||(n.$$observers=me()),a=i[e]||(i[e]=[]);return a.push(t),h.$evalAsync(function(){a.$$inter||!n.hasOwnProperty(e)||_(n[e])||t(n[e])}),function(){F(a,t)}}};var Me=n.startSymbol(),Se=n.endSymbol(),Ae="{{"==Me&&"}}"==Se?m:function(e){return e.replace(/\{\{/g,Me).replace(/}}/g,Se)},Ce=/^ngAttr[A-Z]/,Te=/^(.+)Start$/;return U.$$addBindingInfo=E?function(e,t){var n=e.data("$binding")||[];Yi(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:f,U.$$addBindingClass=E?function(e){N(e,"ng-binding")}:f,U.$$addScopeInfo=E?function(e,t,n,i){var a=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(a,t)}:f,U.$$addScopeClass=E?function(e,t){N(e,t?"ng-isolate-scope":"ng-scope")}:f,U.$$createComment=function(t,n){var i="";return E&&(i=" "+(t||"")+": ",n&&(i+=n+" ")),e.document.createComment(i)},U}]}function ht(e,t){this.previousValue=e,this.currentValue=t}function gt(e){return we(e.replace(Ka,""))}function _t(e,t){var n="",i=e.split(/\s+/),a=t.split(/\s+/);e:for(var r=0;r<i.length;r++){for(var o=i[r],s=0;s<a.length;s++)if(o==a[s])continue e;n+=(n.length>0?" ":"")+o}return n}function vt(e){e=Fi(e);var t=e.length;if(t<=1)return e;for(;t--;){var n=e[t];n.nodeType===la&&ji.call(e,t,1)}return e}function yt(e,t){if(t&&w(t))return t;if(w(e)){var n=Xa.exec(e);if(n)return n[3]}}function bt(){var e={},n=!1;this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){ue(t,"controller"),y(t)?c(e,t):e[t]=n},this.allowGlobals=function(){n=!0},this.$get=["$injector","$window",function(i,a){function r(e,n,i,a){if(!e||!y(e.$scope))throw t("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",a,n);e.$scope[n]=i}return function(t,o,s,l){var d,u,p,f;if(s=s===!0,l&&w(l)&&(f=l),w(t)){if(u=t.match(Xa),!u)throw Ya("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",t);p=u[1],f=f||u[3],t=e.hasOwnProperty(p)?e[p]:pe(o.$scope,p,!0)||(n?pe(a,p,!0):void 0),de(t,p,!0)}if(s){var m=(Yi(t)?t[t.length-1]:t).prototype;d=Object.create(m||null),f&&r(o,f,d,p||t.name);var h;return h=c(function(){var e=i.invoke(t,d,o,p);return e!==d&&(y(e)||S(e))&&(d=e,f&&r(o,f,d,p||t.name)),d},{instance:d,identifier:f})}return d=i.instantiate(t,o,p),f&&r(o,f,d,p||t.name),d}}]}function wt(){this.$get=["$window",function(e){return Fi(e.document)}]}function kt(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}function Mt(e){return y(e)?M(e)?e.toISOString():z(e):e}function St(){this.$get=function(){return function(e){if(!e)return"";var t=[];return a(e,function(e,n){null===e||_(e)||(Yi(e)?i(e,function(e){t.push(te(n)+"="+te(Mt(e)))}):t.push(te(n)+"="+te(Mt(e))))}),t.join("&")}}}function At(){this.$get=function(){return function(e){function t(e,r,o){null===e||_(e)||(Yi(e)?i(e,function(e,n){t(e,r+"["+(y(e)?n:"")+"]")}):y(e)&&!M(e)?a(e,function(e,n){t(e,r+(o?"":"[")+n+(o?"":"]"))}):n.push(te(r)+"="+te(Mt(e))))}if(!e)return"";var n=[];return t(e,"",!0),n.join("&")}}}function Ct(e,t){if(w(e)){var n=e.replace(nr,"").trim();if(n){var i=t("Content-Type");(i&&0===i.indexOf(Za)||Tt(n))&&(e=W(n))}}return e}function Tt(e){var t=e.match(er);return t&&tr[t[0]].test(e)}function Et(e){function t(e,t){e&&(a[e]=a[e]?a[e]+", "+t:t)}var n,a=me();return w(e)?i(e.split("\n"),function(e){n=e.indexOf(":"),t(Di(Ji(e.substr(0,n))),Ji(e.substr(n+1)))}):y(e)&&i(e,function(e,n){t(Di(n),Ji(e))}),a}function $t(e){var t;return function(n){if(t||(t=Et(e)),n){var i=t[Di(n)];return void 0===i&&(i=null),i}return t}}function It(e,t,n,a){return S(a)?a(e,t,n):(i(a,function(i){e=i(e,t,n)}),e)}function xt(e){return 200<=e&&e<300}function Pt(){var e=this.defaults={transformResponse:[Ct],transformRequest:[function(e){return!y(e)||E(e)||I(e)||$(e)?e:z(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ge(Qa),put:ge(Qa),patch:ge(Qa)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},n=!1;this.useApplyAsync=function(e){return v(e)?(n=!!e,this):n};var a=!0;this.useLegacyPromiseExtensions=function(e){return v(e)?(a=!!e,this):a};var r=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(o,s,l,d,u,p){function f(n){function r(e){var t=c({},e);return t.data=It(e.data,e.headers,e.status,l.transformResponse),xt(e.status)?t:u.reject(t)}function o(e,t){var n,a={};return i(e,function(e,i){S(e)?(n=e(t),null!=n&&(a[i]=n)):a[i]=e}),a}function s(t){var n,i,a,r=e.headers,s=c({},t.headers);r=c({},r.common,r[Di(t.method)]);e:for(n in r){i=Di(n);for(a in s)if(Di(a)===i)continue e;s[n]=r[n]}return o(s,ge(t))}if(!y(n))throw t("$http")("badreq","Http request configuration must be an object. Received: {0}",n);if(!w(n.url))throw t("$http")("badreq","Http request configuration url must be a string. Received: {0}",n.url);
var l=c({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},n);l.headers=s(n),l.method=Ri(l.method),l.paramSerializer=w(l.paramSerializer)?p.get(l.paramSerializer):l.paramSerializer;var d=function(t){var n=t.headers,a=It(t.data,$t(n),void 0,t.transformRequest);return _(a)&&i(n,function(e,t){"content-type"===Di(t)&&delete n[t]}),_(t.withCredentials)&&!_(e.withCredentials)&&(t.withCredentials=e.withCredentials),g(t,a).then(r,r)},f=[d,void 0],m=u.when(l);for(i(M,function(e){(e.request||e.requestError)&&f.unshift(e.request,e.requestError),(e.response||e.responseError)&&f.push(e.response,e.responseError)});f.length;){var h=f.shift(),v=f.shift();m=m.then(h,v)}return a?(m.success=function(e){return de(e,"fn"),m.then(function(t){e(t.data,t.status,t.headers,l)}),m},m.error=function(e){return de(e,"fn"),m.then(null,function(t){e(t.data,t.status,t.headers,l)}),m}):(m.success=ar("success"),m.error=ar("error")),m}function m(e){i(arguments,function(e){f[e]=function(t,n){return f(c({},n||{},{method:e,url:t}))}})}function h(e){i(arguments,function(e){f[e]=function(t,n,i){return f(c({},i||{},{method:e,url:t,data:n}))}})}function g(t,a){function r(e){if(e){var t={};return i(e,function(e,i){t[i]=function(t){function i(){e(t)}n?d.$applyAsync(i):d.$$phase?i():d.$apply(i)}}),t}}function l(e,t,i,a){function r(){c(t,e,i,a)}h&&(xt(e)?h.put(A,[e,t,Et(i),a]):h.remove(A)),n?d.$applyAsync(r):(r(),d.$$phase||d.$apply())}function c(e,n,i,a){n=n>=-1?n:0,(xt(n)?w.resolve:w.reject)({data:e,status:n,headers:$t(i),config:t,statusText:a})}function p(e){c(e.data,e.status,ge(e.headers()),e.statusText)}function m(){var e=f.pendingRequests.indexOf(t);e!==-1&&f.pendingRequests.splice(e,1)}var h,g,w=u.defer(),M=w.promise,S=t.headers,A=b(t.url,t.paramSerializer(t.params));if(f.pendingRequests.push(t),M.then(m,m),!t.cache&&!e.cache||t.cache===!1||"GET"!==t.method&&"JSONP"!==t.method||(h=y(t.cache)?t.cache:y(e.cache)?e.cache:k),h&&(g=h.get(A),v(g)?P(g)?g.then(p,p):Yi(g)?c(g[1],g[0],ge(g[2]),g[3]):c(g,200,{},"OK"):h.put(A,M)),_(g)){var C=On(t.url)?s()[t.xsrfCookieName||e.xsrfCookieName]:void 0;C&&(S[t.xsrfHeaderName||e.xsrfHeaderName]=C),o(t.method,A,a,l,S,t.timeout,t.withCredentials,t.responseType,r(t.eventHandlers),r(t.uploadEventHandlers))}return M}function b(e,t){return t.length>0&&(e+=(e.indexOf("?")==-1?"?":"&")+t),e}var k=l("$http");e.paramSerializer=w(e.paramSerializer)?p.get(e.paramSerializer):e.paramSerializer;var M=[];return i(r,function(e){M.unshift(w(e)?p.get(e):p.invoke(e))}),f.pendingRequests=[],m("get","delete","head","jsonp"),h("post","put","patch"),f.defaults=e,f}]}function Dt(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Rt(){this.$get=["$browser","$window","$document","$xhrFactory",function(e,t,n,i){return Ot(e,i,e.defer,t.angular.callbacks,n[0])}]}function Ot(e,t,n,a,r){function o(e,t,n){var i=r.createElement("script"),o=null;return i.type="text/javascript",i.src=e,i.async=!0,o=function(e){ha(i,"load",o),ha(i,"error",o),r.body.removeChild(i),i=null;var s=-1,l="unknown";e&&("load"!==e.type||a[t].called||(e={type:"error"}),l=e.type,s="error"===e.type?404:200),n&&n(s,l)},ma(i,"load",o),ma(i,"error",o),r.body.appendChild(i),o}return function(r,s,l,c,d,u,p,m,h,g){function y(){k&&k(),M&&M.abort()}function b(t,i,a,r,o){v(C)&&n.cancel(C),k=M=null,t(i,a,r,o),e.$$completeOutstandingRequest(f)}if(e.$$incOutstandingRequestCount(),s=s||e.url(),"jsonp"==Di(r)){var w="_"+(a.counter++).toString(36);a[w]=function(e){a[w].data=e,a[w].called=!0};var k=o(s.replace("JSON_CALLBACK","angular.callbacks."+w),w,function(e,t){b(c,e,a[w].data,"",t),a[w]=f})}else{var M=t(r,s);M.open(r,s,!0),i(d,function(e,t){v(e)&&M.setRequestHeader(t,e)}),M.onload=function(){var e=M.statusText||"",t="response"in M?M.response:M.responseText,n=1223===M.status?204:M.status;0===n&&(n=t?200:"file"==Rn(s).protocol?404:0),b(c,n,t,M.getAllResponseHeaders(),e)};var S=function(){b(c,-1,null,null,"")};if(M.onerror=S,M.onabort=S,i(h,function(e,t){M.addEventListener(t,e)}),i(g,function(e,t){M.upload.addEventListener(t,e)}),p&&(M.withCredentials=!0),m)try{M.responseType=m}catch(A){if("json"!==m)throw A}M.send(_(l)?null:l)}if(u>0)var C=n(y,u);else P(u)&&u.then(y)}}function Nt(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,i,a){function r(e){return"\\\\\\"+e}function o(n){return n.replace(f,e).replace(m,t)}function s(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=z(e)}return e}function l(e,t,n,i){var a;return a=e.$watch(function(e){return a(),i(e)},t,n)}function d(r,d,f,m){function g(e){try{return e=P(e),m&&!v(e)?e:s(e)}catch(t){i(rr.interr(r,t))}}if(!r.length||r.indexOf(e)===-1){var y;if(!d){var b=o(r);y=h(b),y.exp=r,y.expressions=[],y.$$watchDelegate=l}return y}m=!!m;for(var w,k,M,A=0,C=[],T=[],E=r.length,$=[],I=[];A<E;){if((w=r.indexOf(e,A))==-1||(k=r.indexOf(t,w+u))==-1){A!==E&&$.push(o(r.substring(A)));break}A!==w&&$.push(o(r.substring(A,w))),M=r.substring(w+u,k),C.push(M),T.push(n(M,g)),A=k+p,I.push($.length),$.push("")}if(f&&$.length>1&&rr.throwNoconcat(r),!d||C.length){var x=function(e){for(var t=0,n=C.length;t<n;t++){if(m&&_(e[t]))return;$[I[t]]=e[t]}return $.join("")},P=function(e){return f?a.getTrusted(f,e):a.valueOf(e)};return c(function(e){var t=0,n=C.length,a=new Array(n);try{for(;t<n;t++)a[t]=T[t](e);return x(a)}catch(o){i(rr.interr(r,o))}},{exp:r,expressions:C,$$watchDelegate:function(e,t){var n;return e.$watchGroup(T,function(i,a){var r=x(i);S(t)&&t.call(this,r,i!==a?n:r,e),n=r})}})}}var u=e.length,p=t.length,f=new RegExp(e.replace(/./g,r),"g"),m=new RegExp(t.replace(/./g,r),"g");return d.startSymbol=function(){return e},d.endSymbol=function(){return t},d}]}function Lt(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(e,t,n,i,a){function r(r,s,l,c){function d(){u?r.apply(null,p):r(h)}var u=arguments.length>4,p=u?j(arguments,4):[],f=t.setInterval,m=t.clearInterval,h=0,g=v(c)&&!c,_=(g?i:n).defer(),y=_.promise;return l=v(l)?l:0,y.$$intervalId=f(function(){g?a.defer(d):e.$evalAsync(d),_.notify(h++),l>0&&h>=l&&(_.resolve(h),m(y.$$intervalId),delete o[y.$$intervalId]),g||e.$apply()},s),o[y.$$intervalId]=_,y}var o={};return r.cancel=function(e){return!!(e&&e.$$intervalId in o)&&(o[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete o[e.$$intervalId],!0)},r}]}function Ft(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=ee(t[n]);return t.join("/")}function Ut(e,t){var n=Rn(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=u(n.port)||sr[n.protocol]||null}function Bt(e,t){var n="/"!==e.charAt(0);n&&(e="/"+e);var i=Rn(e);t.$$path=decodeURIComponent(n&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname),t.$$search=Z(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&"/"!=t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function Ht(e,t){return 0===e.lastIndexOf(t,0)}function jt(e,t){if(Ht(t,e))return t.substr(e.length)}function Vt(e){var t=e.indexOf("#");return t==-1?e:e.substr(0,t)}function qt(e){return e.replace(/(#.+)|#$/,"$1")}function zt(e){return e.substr(0,Vt(e).lastIndexOf("/")+1)}function Wt(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function Gt(e,t,n){this.$$html5=!0,n=n||"",Ut(e,this),this.$$parse=function(e){var n=jt(t,e);if(!w(n))throw lr("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);Bt(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=Q(this.$$search),n=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Ft(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,a){if(a&&"#"===a[0])return this.hash(a.slice(1)),!0;var r,o,s;return v(r=jt(e,i))?(o=r,s=v(r=jt(n,r))?t+(jt("/",r)||r):e+o):v(r=jt(t,i))?s=t+r:t==i+"/"&&(s=t),s&&this.$$parse(s),!!s}}function Kt(e,t,n){Ut(e,this),this.$$parse=function(i){function a(e,t,n){var i,a=/^\/[A-Z]:(\/.*)/;return Ht(t,n)&&(t=t.replace(n,"")),a.exec(t)?e:(i=a.exec(e),i?i[1]:e)}var r,o=jt(e,i)||jt(t,i);_(o)||"#"!==o.charAt(0)?this.$$html5?r=o:(r="",_(o)&&(e=i,this.replace())):(r=jt(n,o),_(r)&&(r=o)),Bt(r,this),this.$$path=a(this.$$path,r,e),this.$$compose()},this.$$compose=function(){var t=Q(this.$$search),i=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Ft(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t,n){return Vt(e)==Vt(t)&&(this.$$parse(t),!0)}}function Yt(e,t,n){this.$$html5=!0,Kt.apply(this,arguments),this.$$parseLinkUrl=function(i,a){if(a&&"#"===a[0])return this.hash(a.slice(1)),!0;var r,o;return e==Vt(i)?r=i:(o=jt(t,i))?r=e+n+o:t===i+"/"&&(r=t),r&&this.$$parse(r),!!r},this.$$compose=function(){var t=Q(this.$$search),i=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Ft(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+n+this.$$url}}function Xt(e){return function(){return this[e]}}function Jt(e,t){return function(n){return _(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function Zt(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return v(t)?(e=t,this):e},this.html5Mode=function(e){return x(e)?(t.enabled=e,this):y(e)?(x(e.enabled)&&(t.enabled=e.enabled),x(e.requireBase)&&(t.requireBase=e.requireBase),x(e.rewriteLinks)&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,i,a,r,o){function s(e,t,n){var a=c.url(),r=c.$$state;try{i.url(e,t,n),c.$$state=i.state()}catch(o){throw c.url(a),c.$$state=r,o}}function l(e,t){n.$broadcast("$locationChangeSuccess",c.absUrl(),e,c.$$state,t)}var c,d,u,p=i.baseHref(),f=i.url();if(t.enabled){if(!p&&t.requireBase)throw lr("nobase","$location in HTML5 mode requires a <base> tag to be present!");u=Wt(f)+(p||"/"),d=a.history?Gt:Yt}else u=Vt(f),d=Kt;var m=zt(u);c=new d(u,m,"#"+e),c.$$parseLinkUrl(f,f),c.$$state=i.state();var h=/^\s*(javascript|mailto):/i;r.on("click",function(e){if(t.rewriteLinks&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!=e.which&&2!=e.button){for(var a=Fi(e.target);"a"!==L(a[0]);)if(a[0]===r[0]||!(a=a.parent())[0])return;var s=a.prop("href"),l=a.attr("href")||a.attr("xlink:href");y(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=Rn(s.animVal).href),h.test(s)||!s||a.attr("target")||e.isDefaultPrevented()||c.$$parseLinkUrl(s,l)&&(e.preventDefault(),c.absUrl()!=i.url()&&(n.$apply(),o.angular["ff-684208-preventDefault"]=!0))}}),qt(c.absUrl())!=qt(f)&&i.url(c.absUrl(),!0);var g=!0;return i.onUrlChange(function(e,t){return _(jt(m,e))?void(o.location.href=e):(n.$evalAsync(function(){var i,a=c.absUrl(),r=c.$$state;e=qt(e),c.$$parse(e),c.$$state=t,i=n.$broadcast("$locationChangeStart",e,a,t,r).defaultPrevented,c.absUrl()===e&&(i?(c.$$parse(a),c.$$state=r,s(a,!1,r)):(g=!1,l(a,r)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var e=qt(i.url()),t=qt(c.absUrl()),r=i.state(),o=c.$$replace,d=e!==t||c.$$html5&&a.history&&r!==c.$$state;(g||d)&&(g=!1,n.$evalAsync(function(){var t=c.absUrl(),i=n.$broadcast("$locationChangeStart",t,e,c.$$state,r).defaultPrevented;c.absUrl()===t&&(i?(c.$$parse(e),c.$$state=r):(d&&s(t,o,r===c.$$state?null:c.$$state),l(e,r)))})),c.$$replace=!1}),c}]}function Qt(){var e=!0,t=this;this.debugEnabled=function(t){return v(t)?(e=t,this):e},this.$get=["$window",function(n){function a(e){return e instanceof Error&&(e.stack?e=e.message&&e.stack.indexOf(e.message)===-1?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function r(e){var t=n.console||{},r=t[e]||t.log||f,o=!1;try{o=!!r.apply}catch(s){}return o?function(){var e=[];return i(arguments,function(t){e.push(a(t))}),r.apply(t,e)}:function(e,t){r(e,null==t?"":t)}}return{log:r("log"),info:r("info"),warn:r("warn"),error:r("error"),debug:function(){var n=r("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function en(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw dr("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function tn(e){return e+""}function nn(e,t){if(e){if(e.constructor===e)throw dr("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e.window===e)throw dr("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw dr("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);if(e===Object)throw dr("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function an(e,t){if(e){if(e.constructor===e)throw dr("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===ur||e===pr||e===fr)throw dr("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function rn(e,t){if(e&&(e===(0).constructor||e===(!1).constructor||e==="".constructor||e==={}.constructor||e===[].constructor||e===Function.constructor))throw dr("isecaf","Assigning to a constructor is disallowed! Expression: {0}",t)}function on(e,t){return"undefined"!=typeof e?e:t}function sn(e,t){return"undefined"==typeof e?t:"undefined"==typeof t?e:e+t}function ln(e,t){var n=e(t);return!n.$stateful}function cn(e,t){var n,a;switch(e.type){case _r.Program:n=!0,i(e.body,function(e){cn(e.expression,t),n=n&&e.expression.constant}),e.constant=n;break;case _r.Literal:e.constant=!0,e.toWatch=[];break;case _r.UnaryExpression:cn(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case _r.BinaryExpression:cn(e.left,t),cn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case _r.LogicalExpression:cn(e.left,t),cn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case _r.ConditionalExpression:cn(e.test,t),cn(e.alternate,t),cn(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case _r.Identifier:e.constant=!1,e.toWatch=[e];break;case _r.MemberExpression:cn(e.object,t),e.computed&&cn(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case _r.CallExpression:n=!!e.filter&&ln(t,e.callee.name),a=[],i(e.arguments,function(e){cn(e,t),n=n&&e.constant,e.constant||a.push.apply(a,e.toWatch)}),e.constant=n,e.toWatch=e.filter&&ln(t,e.callee.name)?a:[e];break;case _r.AssignmentExpression:cn(e.left,t),cn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case _r.ArrayExpression:n=!0,a=[],i(e.elements,function(e){cn(e,t),n=n&&e.constant,e.constant||a.push.apply(a,e.toWatch)}),e.constant=n,e.toWatch=a;break;case _r.ObjectExpression:n=!0,a=[],i(e.properties,function(e){cn(e.value,t),n=n&&e.value.constant&&!e.computed,e.value.constant||a.push.apply(a,e.value.toWatch)}),e.constant=n,e.toWatch=a;break;case _r.ThisExpression:e.constant=!1,e.toWatch=[];break;case _r.LocalsExpression:e.constant=!1,e.toWatch=[]}}function dn(e){if(1==e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function un(e){return e.type===_r.Identifier||e.type===_r.MemberExpression}function pn(e){if(1===e.body.length&&un(e.body[0].expression))return{type:_r.AssignmentExpression,left:e.body[0].expression,right:{type:_r.NGValueParameter},operator:"="}}function fn(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===_r.Literal||e.body[0].expression.type===_r.ArrayExpression||e.body[0].expression.type===_r.ObjectExpression)}function mn(e){return e.constant}function hn(e,t){this.astBuilder=e,this.$filter=t}function gn(e,t){this.astBuilder=e,this.$filter=t}function _n(e){return"constructor"==e}function vn(e){return S(e.valueOf)?e.valueOf():yr.call(e)}function yn(){var e,t,n=me(),a=me(),r={"true":!0,"false":!1,"null":null,undefined:void 0};this.addLiteral=function(e,t){r[e]=t},this.setIdentifierFns=function(n,i){return e=n,t=i,this},this.$get=["$filter",function(o){function s(e,t,i){var r,s,c;switch(i=i||b,typeof e){case"string":e=e.trim(),c=e;var g=i?a:n;if(r=g[c],!r){":"===e.charAt(0)&&":"===e.charAt(1)&&(s=!0,e=e.substring(2));var v=i?y:_,w=new gr(v),k=new vr(w,o,v);r=k.parse(e),r.constant?r.$$watchDelegate=m:s?r.$$watchDelegate=r.literal?p:u:r.inputs&&(r.$$watchDelegate=d),i&&(r=l(r)),g[c]=r}return h(r,t);case"function":return h(e,t);default:return h(f,t)}}function l(e){function t(t,n,i,a){var r=b;b=!0;try{return e(t,n,i,a)}finally{b=r}}if(!e)return e;t.$$watchDelegate=e.$$watchDelegate,t.assign=l(e.assign),t.constant=e.constant,t.literal=e.literal;for(var n=0;e.inputs&&n<e.inputs.length;++n)e.inputs[n]=l(e.inputs[n]);return t.inputs=e.inputs,t}function c(e,t){return null==e||null==t?e===t:("object"!=typeof e||(e=vn(e),"object"!=typeof e))&&(e===t||e!==e&&t!==t)}function d(e,t,n,i,a){var r,o=i.inputs;if(1===o.length){var s=c;return o=o[0],e.$watch(function(e){var t=o(e);return c(t,s)||(r=i(e,void 0,void 0,[t]),s=t&&vn(t)),r},t,n,a)}for(var l=[],d=[],u=0,p=o.length;u<p;u++)l[u]=c,d[u]=null;return e.$watch(function(e){for(var t=!1,n=0,a=o.length;n<a;n++){var s=o[n](e);(t||(t=!c(s,l[n])))&&(d[n]=s,l[n]=s&&vn(s))}return t&&(r=i(e,void 0,void 0,d)),r},t,n,a)}function u(e,t,n,i){var a,r;return a=e.$watch(function(e){return i(e)},function(e,n,i){r=e,S(t)&&t.apply(this,arguments),v(e)&&i.$$postDigest(function(){v(r)&&a()})},n)}function p(e,t,n,a){function r(e){var t=!0;return i(e,function(e){v(e)||(t=!1)}),t}var o,s;return o=e.$watch(function(e){return a(e)},function(e,n,i){s=e,S(t)&&t.call(this,e,n,i),r(e)&&i.$$postDigest(function(){r(s)&&o()})},n)}function m(e,t,n,i){var a;return a=e.$watch(function(e){return a(),i(e)},t,n)}function h(e,t){if(!t)return e;var n=e.$$watchDelegate,i=!1,a=n!==p&&n!==u,r=a?function(n,a,r,o){var s=i&&o?o[0]:e(n,a,r,o);return t(s,n,a)}:function(n,i,a,r){var o=e(n,i,a,r),s=t(o,n,i);return v(o)?s:o};return e.$$watchDelegate&&e.$$watchDelegate!==d?r.$$watchDelegate=e.$$watchDelegate:t.$stateful||(r.$$watchDelegate=d,i=!e.inputs,r.inputs=e.inputs?e.inputs:[e]),r}var g=Qi().noUnsafeEval,_={csp:g,expensiveChecks:!1,literals:U(r),isIdentifierStart:S(e)&&e,isIdentifierContinue:S(t)&&t},y={csp:g,expensiveChecks:!0,literals:U(r),isIdentifierStart:S(e)&&e,isIdentifierContinue:S(t)&&t},b=!1;return s.$$runningExpensiveChecks=function(){return b},s}]}function bn(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return kn(function(t){e.$evalAsync(t)},t)}]}function wn(){this.$get=["$browser","$exceptionHandler",function(e,t){return kn(function(t){e.defer(t)},t)}]}function kn(e,n){function a(){this.$$state={status:0}}function r(e,t){return function(n){t.call(e,n)}}function o(e){var t,i,a;a=e.pending,e.processScheduled=!1,e.pending=void 0;for(var r=0,o=a.length;r<o;++r){i=a[r][0],t=a[r][e.status];try{S(t)?i.resolve(t(e.value)):1===e.status?i.resolve(e.value):i.reject(e.value)}catch(s){i.reject(s),n(s)}}}function s(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e(function(){o(t)}))}function l(){this.promise=new a}function d(e){var t=new l,n=0,a=Yi(e)?[]:{};return i(e,function(e,i){n++,g(e).then(function(e){a.hasOwnProperty(i)||(a[i]=e,--n||t.resolve(a))},function(e){a.hasOwnProperty(i)||t.reject(e)})}),0===n&&t.resolve(a),t.promise}var u=t("$q",TypeError),p=function(){var e=new l;return e.resolve=r(e,e.resolve),e.reject=r(e,e.reject),e.notify=r(e,e.notify),e};c(a.prototype,{then:function(e,t,n){if(_(e)&&_(t)&&_(n))return this;var i=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([i,e,t,n]),this.$$state.status>0&&s(this.$$state),i.promise},"catch":function(e){return this.then(null,e)},"finally":function(e,t){return this.then(function(t){return h(t,!0,e)},function(t){return h(t,!1,e)},t)}}),c(l.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(u("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){function t(e){l||(l=!0,o.$$resolve(e))}function i(e){l||(l=!0,o.$$reject(e))}var a,o=this,l=!1;try{(y(e)||S(e))&&(a=e&&e.then),S(a)?(this.promise.$$state.status=-1,a.call(e,t,i,r(this,this.notify))):(this.promise.$$state.value=e,this.promise.$$state.status=1,s(this.promise.$$state))}catch(c){i(c),n(c)}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,s(this.promise.$$state)},notify:function(t){var i=this.promise.$$state.pending;this.promise.$$state.status<=0&&i&&i.length&&e(function(){for(var e,a,r=0,o=i.length;r<o;r++){a=i[r][0],e=i[r][3];try{a.notify(S(e)?e(t):t)}catch(s){n(s)}}})}});var f=function(e){var t=new l;return t.reject(e),t.promise},m=function(e,t){var n=new l;return t?n.resolve(e):n.reject(e),n.promise},h=function(e,t,n){var i=null;try{S(n)&&(i=n())}catch(a){return m(a,!1)}return P(i)?i.then(function(){return m(e,t)},function(e){return m(e,!1)}):m(e,t)},g=function(e,t,n,i){var a=new l;return a.resolve(e),a.promise.then(t,n,i)},v=g,b=function(e){function t(e){i.resolve(e)}function n(e){i.reject(e)}if(!S(e))throw u("norslvr","Expected resolverFn, got '{0}'",e);var i=new l;return e(t,n),i.promise};return b.prototype=a.prototype,b.defer=p,b.reject=f,b.when=g,b.resolve=v,b.all=d,b}function Mn(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,i=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,a=!!n,r=a?function(e){var t=n(e);return function(){i(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return r.supported=a,r}]}function Sn(){function e(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=o(),this.$$ChildScope=null}return t.prototype=e,t}var a=10,r=t("$rootScope"),s=null,l=null;this.digestTtl=function(e){return arguments.length&&(a=e),a},this.$get=["$exceptionHandler","$parse","$browser",function(t,c,d){function u(e){e.currentScope.$$destroyed=!0}function p(e){9===Li&&(e.$$childHead&&p(e.$$childHead),e.$$nextSibling&&p(e.$$nextSibling)),e.$parent=e.$$nextSibling=e.$$prevSibling=e.$$childHead=e.$$childTail=e.$root=e.$$watchers=null}function m(){this.$id=o(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function h(e){if(A.$$phase)throw r("inprog","{0} already in progress",A.$$phase);A.$$phase=e}function g(){A.$$phase=null}function v(e,t){do e.$$watchersCount+=t;while(e=e.$parent)}function b(e,t,n){do e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n];while(e=e.$parent)}function w(){}function k(){for(;E.length;)try{E.shift()()}catch(e){t(e)}l=null}function M(){null===l&&(l=d.defer(function(){A.$apply(k)}))}m.prototype={constructor:m,$new:function(t,n){var i;return n=n||this,t?(i=new m,i.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=e(this)),i=new this.$$ChildScope),i.$parent=n,i.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=i,n.$$childTail=i):n.$$childHead=n.$$childTail=i,(t||n!=this)&&i.$on("$destroy",u),i},$watch:function(e,t,n,i){var a=c(e);if(a.$$watchDelegate)return a.$$watchDelegate(this,t,n,a,e);var r=this,o=r.$$watchers,l={fn:t,last:w,get:a,exp:i||e,eq:!!n};return s=null,S(t)||(l.fn=f),o||(o=r.$$watchers=[]),o.unshift(l),v(this,1),function(){F(o,l)>=0&&v(r,-1),s=null}},$watchGroup:function(e,t){function n(){l=!1,c?(c=!1,t(r,r,s)):t(r,a,s)}var a=new Array(e.length),r=new Array(e.length),o=[],s=this,l=!1,c=!0;if(!e.length){var d=!0;return s.$evalAsync(function(){d&&t(r,r,s)}),function(){d=!1}}return 1===e.length?this.$watch(e[0],function(e,n,i){r[0]=e,a[0]=n,t(r,e===n?r:a,i)}):(i(e,function(e,t){var i=s.$watch(e,function(e,i){r[t]=e,a[t]=i,l||(l=!0,s.$evalAsync(n))});o.push(i)}),function(){for(;o.length;)o.shift()()})},$watchCollection:function(e,t){function i(e){r=e;var t,i,a,s,l;if(!_(r)){if(y(r))if(n(r)){o!==f&&(o=f,g=o.length=0,u++),t=r.length,g!==t&&(u++,o.length=g=t);for(var c=0;c<t;c++)l=o[c],s=r[c],a=l!==l&&s!==s,a||l===s||(u++,o[c]=s)}else{o!==m&&(o=m={},g=0,u++),t=0;for(i in r)Pi.call(r,i)&&(t++,s=r[i],l=o[i],i in o?(a=l!==l&&s!==s,a||l===s||(u++,o[i]=s)):(g++,o[i]=s,u++));if(g>t){u++;for(i in o)Pi.call(r,i)||(g--,delete o[i])}}else o!==r&&(o=r,u++);return u}}function a(){if(h?(h=!1,t(r,r,l)):t(r,s,l),d)if(y(r))if(n(r)){s=new Array(r.length);for(var e=0;e<r.length;e++)s[e]=r[e]}else{s={};for(var i in r)Pi.call(r,i)&&(s[i]=r[i])}else s=r}i.$stateful=!0;var r,o,s,l=this,d=t.length>1,u=0,p=c(e,i),f=[],m={},h=!0,g=0;return this.$watch(p,a)},$digest:function(){var e,n,i,o,c,u,p,f,m,_,v,y,b=a,M=this,E=[];h("$digest"),d.$$checkUrlChange(),this===A&&null!==l&&(d.defer.cancel(l),k()),s=null;do{f=!1,_=M;for(var I=0;I<C.length;I++){try{y=C[I],y.scope.$eval(y.expression,y.locals)}catch(x){t(x)}s=null}C.length=0;e:do{if(u=_.$$watchers)for(p=u.length;p--;)try{if(e=u[p])if(c=e.get,(n=c(_))===(i=e.last)||(e.eq?B(n,i):"number"==typeof n&&"number"==typeof i&&isNaN(n)&&isNaN(i))){if(e===s){f=!1;break e}}else f=!0,s=e,e.last=e.eq?U(n,null):n,o=e.fn,o(n,i===w?n:i,_),b<5&&(v=4-b,E[v]||(E[v]=[]),E[v].push({msg:S(e.exp)?"fn: "+(e.exp.name||e.exp.toString()):e.exp,newVal:n,oldVal:i}))}catch(x){t(x)}if(!(m=_.$$watchersCount&&_.$$childHead||_!==M&&_.$$nextSibling))for(;_!==M&&!(m=_.$$nextSibling);)_=_.$parent}while(_=m);if((f||C.length)&&!b--)throw g(),r("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",a,E)}while(f||C.length);for(g();$<T.length;)try{T[$++]()}catch(x){t(x)}T.length=$=0},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===A&&d.$$applicationDestroyed(),v(this,-this.$$watchersCount);for(var t in this.$$listenerCount)b(this,this.$$listenerCount[t],t);e&&e.$$childHead==this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail==this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=f,this.$on=this.$watch=this.$watchGroup=function(){return f},this.$$listeners={},this.$$nextSibling=null,p(this)}},$eval:function(e,t){return c(e)(this,t)},$evalAsync:function(e,t){A.$$phase||C.length||d.defer(function(){C.length&&A.$digest()}),C.push({scope:this,expression:c(e),locals:t})},$$postDigest:function(e){T.push(e)},$apply:function(e){try{h("$apply");try{return this.$eval(e)}finally{g()}}catch(n){t(n)}finally{try{A.$digest()}catch(n){throw t(n),n}}},$applyAsync:function(e){function t(){n.$eval(e)}var n=this;e&&E.push(t),e=c(e),M()},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var i=this;do i.$$listenerCount[e]||(i.$$listenerCount[e]=0),i.$$listenerCount[e]++;while(i=i.$parent);var a=this;return function(){var i=n.indexOf(t);i!==-1&&(n[i]=null,b(a,1,e))}},$emit:function(e,n){var i,a,r,o=[],s=this,l=!1,c={name:e,targetScope:s,stopPropagation:function(){l=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},d=H([c],arguments,1);do{for(i=s.$$listeners[e]||o,c.currentScope=s,a=0,r=i.length;a<r;a++)if(i[a])try{i[a].apply(null,d)}catch(u){t(u)}else i.splice(a,1),a--,r--;if(l)return c.currentScope=null,c;s=s.$parent}while(s);return c.currentScope=null,c},$broadcast:function(e,n){var i=this,a=i,r=i,o={name:e,targetScope:i,preventDefault:function(){o.defaultPrevented=!0},defaultPrevented:!1};if(!i.$$listenerCount[e])return o;for(var s,l,c,d=H([o],arguments,1);a=r;){for(o.currentScope=a,s=a.$$listeners[e]||[],l=0,c=s.length;l<c;l++)if(s[l])try{s[l].apply(null,d)}catch(u){t(u)}else s.splice(l,1),l--,c--;if(!(r=a.$$listenerCount[e]&&a.$$childHead||a!==i&&a.$$nextSibling))for(;a!==i&&!(r=a.$$nextSibling);)a=a.$parent}return o.currentScope=null,o}};var A=new m,C=A.$$asyncQueue=[],T=A.$$postDigestQueue=[],E=A.$$applyAsyncQueue=[],$=0;return A}]}function An(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return v(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return v(e)?(t=e,this):t},this.$get=function(){return function(n,i){var a,r=i?t:e;return a=Rn(n).href,""===a||a.match(r)?n:"unsafe:"+a}}}function Cn(e){if("self"===e)return e;if(w(e)){if(e.indexOf("***")>-1)throw br("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=Zi(e).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+e+"$")}if(A(e))return new RegExp("^"+e.source+"$");throw br("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function Tn(e){var t=[];return v(e)&&i(e,function(e){t.push(Cn(e))}),t}function En(){this.SCE_CONTEXTS=wr;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=Tn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=Tn(e)),t},this.$get=["$injector",function(n){function i(e,t){return"self"===e?On(t):!!e.exec(t.href)}function a(n){var a,r,o=Rn(n.toString()),s=!1;for(a=0,r=e.length;a<r;a++)if(i(e[a],o)){s=!0;break}if(s)for(a=0,r=t.length;a<r;a++)if(i(t[a],o)){s=!1;break}return s}function r(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}function o(e,t){var n=u.hasOwnProperty(e)?u[e]:null;if(!n)throw br("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||_(t)||""===t)return t;if("string"!=typeof t)throw br("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)}function s(e){return e instanceof d?e.$$unwrapTrustedValue():e}function l(e,t){if(null===t||_(t)||""===t)return t;var n=u.hasOwnProperty(e)?u[e]:null;if(n&&t instanceof n)return t.$$unwrapTrustedValue();if(e===wr.RESOURCE_URL){if(a(t))return t;throw br("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",t.toString())}if(e===wr.HTML)return c(t);throw br("unsafe","Attempting to use an unsafe value in a safe context.")}var c=function(e){throw br("unsafe","Attempting to use an unsafe value in a safe context.")};n.has("$sanitize")&&(c=n.get("$sanitize"));var d=r(),u={};return u[wr.HTML]=r(d),u[wr.CSS]=r(d),u[wr.URL]=r(d),u[wr.JS]=r(d),u[wr.RESOURCE_URL]=r(u[wr.URL]),{trustAs:o,getTrusted:l,valueOf:s}}]}function $n(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&Li<8)throw br("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var a=ge(wr);a.isEnabled=function(){return e},a.trustAs=n.trustAs,a.getTrusted=n.getTrusted,a.valueOf=n.valueOf,e||(a.trustAs=a.getTrusted=function(e,t){return t},a.valueOf=m),a.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,function(t){return a.getTrusted(e,t)})};var r=a.parseAs,o=a.getTrusted,s=a.trustAs;return i(wr,function(e,t){var n=Di(t);a[we("parse_as_"+n)]=function(t){return r(e,t)},a[we("get_trusted_"+n)]=function(t){return o(e,t)},a[we("trust_as_"+n)]=function(t){return s(e,t)}}),a}]}function In(){this.$get=["$window","$document",function(e,t){
var n,i,a={},r=e.chrome&&e.chrome.app&&e.chrome.app.runtime,o=!r&&e.history&&e.history.pushState,s=u((/android (\d+)/.exec(Di((e.navigator||{}).userAgent))||[])[1]),l=/Boxee/i.test((e.navigator||{}).userAgent),c=t[0]||{},d=/^(Moz|webkit|ms)(?=[A-Z])/,p=c.body&&c.body.style,f=!1,m=!1;if(p){for(var h in p)if(i=d.exec(h)){n=i[0],n=n[0].toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in p&&"webkit"),f=!!("transition"in p||n+"Transition"in p),m=!!("animation"in p||n+"Animation"in p),!s||f&&m||(f=w(p.webkitTransition),m=w(p.webkitAnimation))}return{history:!(!o||s<4||l),hasEvent:function(e){if("input"===e&&Li<=11)return!1;if(_(a[e])){var t=c.createElement("div");a[e]="on"+e in t}return a[e]},csp:Qi(),vendorPrefix:n,transitions:f,animations:m,android:s}}]}function xn(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$templateCache","$http","$q","$sce",function(t,n,i,a){function r(o,s){function l(e){if(!s)throw kr("tpload","Failed to load template: {0} (HTTP status: {1} {2})",o,e.status,e.statusText);return i.reject(e)}r.totalPendingRequests++,w(o)&&!_(t.get(o))||(o=a.getTrustedResourceUrl(o));var d=n.defaults&&n.defaults.transformResponse;return Yi(d)?d=d.filter(function(e){return e!==Ct}):d===Ct&&(d=null),n.get(o,c({cache:t,transformResponse:d},e))["finally"](function(){r.totalPendingRequests--}).then(function(e){return t.put(o,e.data),e.data},l)}return r.totalPendingRequests=0,r}]}function Pn(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var a={};return a.findBindings=function(e,t,n){var a=e.getElementsByClassName("ng-binding"),r=[];return i(a,function(e){var a=Gi.element(e).data("$binding");a&&i(a,function(i){if(n){var a=new RegExp("(^|\\s)"+Zi(t)+"(\\s|\\||$)");a.test(i)&&r.push(e)}else i.indexOf(t)!=-1&&r.push(e)})}),r},a.findModels=function(e,t,n){for(var i=["ng-","data-ng-","ng\\:"],a=0;a<i.length;++a){var r=n?"=":"*=",o="["+i[a]+"model"+r+'"'+t+'"]',s=e.querySelectorAll(o);if(s.length)return s}},a.getLocation=function(){return n.url()},a.setLocation=function(t){t!==n.url()&&(n.url(t),e.$digest())},a.whenStable=function(e){t.notifyWhenNoOutstandingRequests(e)},a}]}function Dn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,i,a){function r(r,s,l){S(r)||(l=s,s=r,r=f);var c,d=j(arguments,3),u=v(l)&&!l,p=(u?i:n).defer(),m=p.promise;return c=t.defer(function(){try{p.resolve(r.apply(null,d))}catch(t){p.reject(t),a(t)}finally{delete o[m.$$timeoutId]}u||e.$apply()},s),m.$$timeoutId=c,o[c]=p,m}var o={};return r.cancel=function(e){return!!(e&&e.$$timeoutId in o)&&(o[e.$$timeoutId].reject("canceled"),delete o[e.$$timeoutId],t.defer.cancel(e.$$timeoutId))},r}]}function Rn(e){var t=e;return Li&&(Mr.setAttribute("href",t),t=Mr.href),Mr.setAttribute("href",t),{href:Mr.href,protocol:Mr.protocol?Mr.protocol.replace(/:$/,""):"",host:Mr.host,search:Mr.search?Mr.search.replace(/^\?/,""):"",hash:Mr.hash?Mr.hash.replace(/^#/,""):"",hostname:Mr.hostname,port:Mr.port,pathname:"/"===Mr.pathname.charAt(0)?Mr.pathname:"/"+Mr.pathname}}function On(e){var t=w(e)?Rn(e):e;return t.protocol===Sr.protocol&&t.host===Sr.host}function Nn(){this.$get=h(e)}function Ln(e){function t(e){try{return decodeURIComponent(e)}catch(t){return e}}var n=e[0]||{},i={},a="";return function(){var e,r,o,s,l,c=n.cookie||"";if(c!==a)for(a=c,e=a.split("; "),i={},o=0;o<e.length;o++)r=e[o],s=r.indexOf("="),s>0&&(l=t(r.substring(0,s)),_(i[l])&&(i[l]=t(r.substring(s+1))));return i}}function Fn(){this.$get=Ln}function Un(e){function t(a,r){if(y(a)){var o={};return i(a,function(e,n){o[n]=t(n,e)}),o}return e.factory(a+n,r)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",qn),t("date",ri),t("filter",Bn),t("json",oi),t("limitTo",si),t("lowercase",xr),t("number",zn),t("orderBy",ci),t("uppercase",Pr)}function Bn(){return function(e,i,a){if(!n(e)){if(null==e)return e;throw t("filter")("notarray","Expected array but received: {0}",e)}var r,o,s=Vn(i);switch(s){case"function":r=i;break;case"boolean":case"null":case"number":case"string":o=!0;case"object":r=Hn(i,a,o);break;default:return e}return Array.prototype.filter.call(e,r)}}function Hn(e,t,n){var i,a=y(e)&&"$"in e;return t===!0?t=B:S(t)||(t=function(e,t){return!_(e)&&(null===e||null===t?e===t:!(y(t)||y(e)&&!g(e))&&(e=Di(""+e),t=Di(""+t),e.indexOf(t)!==-1))}),i=function(i){return a&&!y(i)?jn(i,e.$,t,!1):jn(i,e,t,n)}}function jn(e,t,n,i,a){var r=Vn(e),o=Vn(t);if("string"===o&&"!"===t.charAt(0))return!jn(e,t.substring(1),n,i);if(Yi(e))return e.some(function(e){return jn(e,t,n,i)});switch(r){case"object":var s;if(i){for(s in e)if("$"!==s.charAt(0)&&jn(e[s],t,n,!0))return!0;return!a&&jn(e,t,n,!1)}if("object"===o){for(s in t){var l=t[s];if(!S(l)&&!_(l)){var c="$"===s,d=c?e:e[s];if(!jn(d,l,n,c,c))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function Vn(e){return null===e?"null":typeof e}function qn(e){var t=e.NUMBER_FORMATS;return function(e,n,i){return _(n)&&(n=t.CURRENCY_SYM),_(i)&&(i=t.PATTERNS[1].maxFrac),null==e?e:Kn(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,i).replace(/\u00A4/g,n)}}function zn(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:Kn(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Wn(e){var t,n,i,a,r,o=0;for((n=e.indexOf(Cr))>-1&&(e=e.replace(Cr,"")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;e.charAt(i)==Tr;i++);if(i==(r=e.length))t=[0],n=1;else{for(r--;e.charAt(r)==Tr;)r--;for(n-=i,t=[],a=0;i<=r;i++,a++)t[a]=+e.charAt(i)}return n>Ar&&(t=t.splice(0,Ar-1),o=n-1,n=1),{d:t,e:o,i:n}}function Gn(e,t,n,i){var a=e.d,r=a.length-e.i;t=_(t)?Math.min(Math.max(n,r),i):+t;var o=t+e.i,s=a[o];if(o>0){a.splice(Math.max(e.i,o));for(var l=o;l<a.length;l++)a[l]=0}else{r=Math.max(0,r),e.i=1,a.length=Math.max(1,o=t+1),a[0]=0;for(var c=1;c<o;c++)a[c]=0}if(s>=5)if(o-1<0){for(var d=0;d>o;d--)a.unshift(0),e.i++;a.unshift(1),e.i++}else a[o-1]++;for(;r<Math.max(0,t);r++)a.push(0);var u=a.reduceRight(function(e,t,n,i){return t+=e,i[n]=t%10,Math.floor(t/10)},0);u&&(a.unshift(u),e.i++)}function Kn(e,t,n,i,a){if(!w(e)&&!k(e)||isNaN(e))return"";var r,o=!isFinite(e),s=!1,l=Math.abs(e)+"",c="";if(o)c="∞";else{r=Wn(l),Gn(r,a,t.minFrac,t.maxFrac);var d=r.d,u=r.i,p=r.e,f=[];for(s=d.reduce(function(e,t){return e&&!t},!0);u<0;)d.unshift(0),u++;u>0?f=d.splice(u,d.length):(f=d,d=[0]);var m=[];for(d.length>=t.lgSize&&m.unshift(d.splice(-t.lgSize,d.length).join(""));d.length>t.gSize;)m.unshift(d.splice(-t.gSize,d.length).join(""));d.length&&m.unshift(d.join("")),c=m.join(n),f.length&&(c+=i+f.join("")),p&&(c+="e+"+p)}return e<0&&!s?t.negPre+c+t.negSuf:t.posPre+c+t.posSuf}function Yn(e,t,n,i){var a="";for((e<0||i&&e<=0)&&(i?e=-e+1:(e=-e,a="-")),e=""+e;e.length<t;)e=Tr+e;return n&&(e=e.substr(e.length-t)),a+e}function Xn(e,t,n,i,a){return n=n||0,function(r){var o=r["get"+e]();return(n>0||o>-n)&&(o+=n),0===o&&n==-12&&(o=12),Yn(o,t,i,a)}}function Jn(e,t,n){return function(i,a){var r=i["get"+e](),o=(n?"STANDALONE":"")+(t?"SHORT":""),s=Ri(o+e);return a[s][r]}}function Zn(e,t,n){var i=-1*n,a=i>=0?"+":"";return a+=Yn(Math[i>0?"floor":"ceil"](i/60),2)+Yn(Math.abs(i%60),2)}function Qn(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function ei(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function ti(e){return function(t){var n=Qn(t.getFullYear()),i=ei(t),a=+i-+n,r=1+Math.round(a/6048e5);return Yn(r,e)}}function ni(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function ii(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}function ai(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}function ri(e){function t(e){var t;if(t=e.match(n)){var i=new Date(0),a=0,r=0,o=t[8]?i.setUTCFullYear:i.setFullYear,s=t[8]?i.setUTCHours:i.setHours;t[9]&&(a=u(t[9]+t[10]),r=u(t[9]+t[11])),o.call(i,u(t[1]),u(t[2])-1,u(t[3]));var l=u(t[4]||0)-a,c=u(t[5]||0)-r,d=u(t[6]||0),p=Math.round(1e3*parseFloat("0."+(t[7]||0)));return s.call(i,l,c,d,p),i}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,a,r){var o,s,l="",c=[];if(a=a||"mediumDate",a=e.DATETIME_FORMATS[a]||a,w(n)&&(n=Ir.test(n)?u(n):t(n)),k(n)&&(n=new Date(n)),!M(n)||!isFinite(n.getTime()))return n;for(;a;)s=$r.exec(a),s?(c=H(c,s,1),a=c.pop()):(c.push(a),a=null);var d=n.getTimezoneOffset();return r&&(d=G(r,d),n=Y(n,r,!0)),i(c,function(t){o=Er[t],l+=o?o(n,e.DATETIME_FORMATS,d):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}}function oi(){return function(e,t){return _(t)&&(t=2),z(e,t)}}function si(){return function(e,t,i){return t=Math.abs(Number(t))===1/0?Number(t):u(t),isNaN(t)?e:(k(e)&&(e=e.toString()),n(e)?(i=!i||isNaN(i)?0:u(i),i=i<0?Math.max(0,e.length+i):i,t>=0?li(e,i,i+t):0===i?li(e,t,e.length):li(e,Math.max(0,i+t),i)):e)}}function li(e,t,n){return w(e)?e.slice(t,n):Hi.call(e,t,n)}function ci(e){function i(t){return t.map(function(t){var n=1,i=m;if(S(t))i=t;else if(w(t)&&("+"!=t.charAt(0)&&"-"!=t.charAt(0)||(n="-"==t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(i=e(t),i.constant))){var a=i();i=function(e){return e[a]}}return{get:i,descending:n}})}function a(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function r(e){return S(e.valueOf)&&(e=e.valueOf(),a(e))?e:g(e)&&(e=e.toString(),a(e))?e:e}function o(e,t){var n=typeof e;return null===e?(n="string",e="null"):"object"===n&&(e=r(e)),{value:e,type:n,index:t}}function s(e,t){var n=0,i=e.type,a=t.type;if(i===a){var r=e.value,o=t.value;"string"===i?(r=r.toLowerCase(),o=o.toLowerCase()):"object"===i&&(y(r)&&(r=e.index),y(o)&&(o=t.index)),r!==o&&(n=r<o?-1:1)}else n=i<a?-1:1;return n}return function(e,a,r,l){function c(e,t){return{value:e,tieBreaker:{value:t,type:"number",index:t},predicateValues:u.map(function(n){return o(n.get(e),t)})}}function d(e,t){for(var n=0,i=u.length;n<i;n++){var a=f(e.predicateValues[n],t.predicateValues[n]);if(a)return a*u[n].descending*p}return f(e.tieBreaker,t.tieBreaker)*p}if(null==e)return e;if(!n(e))throw t("orderBy")("notarray","Expected array but received: {0}",e);Yi(a)||(a=[a]),0===a.length&&(a=["+"]);var u=i(a),p=r?-1:1,f=S(l)?l:s,m=Array.prototype.map.call(e,c);return m.sort(d),e=m.map(function(e){return e.value})}}function di(e){return S(e)&&(e={link:e}),e.restrict=e.restrict||"AC",h(e)}function ui(e,t){e.$name=t}function pi(e,t,n,a,r){var o=this,s=[];o.$error={},o.$$success={},o.$pending=void 0,o.$name=r(t.name||t.ngForm||"")(n),o.$dirty=!1,o.$pristine=!0,o.$valid=!0,o.$invalid=!1,o.$submitted=!1,o.$$parentForm=Or,o.$rollbackViewValue=function(){i(s,function(e){e.$rollbackViewValue()})},o.$commitViewValue=function(){i(s,function(e){e.$commitViewValue()})},o.$addControl=function(e){ue(e.$name,"input"),s.push(e),e.$name&&(o[e.$name]=e),e.$$parentForm=o},o.$$renameControl=function(e,t){var n=e.$name;o[n]===e&&delete o[n],o[t]=e,e.$name=t},o.$removeControl=function(e){e.$name&&o[e.$name]===e&&delete o[e.$name],i(o.$pending,function(t,n){o.$setValidity(n,null,e)}),i(o.$error,function(t,n){o.$setValidity(n,null,e)}),i(o.$$success,function(t,n){o.$setValidity(n,null,e)}),F(s,e),e.$$parentForm=Or},Ti({ctrl:this,$element:e,set:function(e,t,n){var i=e[t];if(i){var a=i.indexOf(n);a===-1&&i.push(n)}else e[t]=[n]},unset:function(e,t,n){var i=e[t];i&&(F(i,n),0===i.length&&delete e[t])},$animate:a}),o.$setDirty=function(){a.removeClass(e,bo),a.addClass(e,wo),o.$dirty=!0,o.$pristine=!1,o.$$parentForm.$setDirty()},o.$setPristine=function(){a.setClass(e,bo,wo+" "+Nr),o.$dirty=!1,o.$pristine=!0,o.$submitted=!1,i(s,function(e){e.$setPristine()})},o.$setUntouched=function(){i(s,function(e){e.$setUntouched()})},o.$setSubmitted=function(){a.addClass(e,Nr),o.$submitted=!0,o.$$parentForm.$setSubmitted()}}function fi(e){e.$formatters.push(function(t){return e.$isEmpty(t)?t:t.toString()})}function mi(e,t,n,i,a,r){hi(e,t,n,i,a,r),fi(i)}function hi(e,t,n,i,a,r){var o=Di(t[0].type);if(!a.android){var s=!1;t.on("compositionstart",function(){s=!0}),t.on("compositionend",function(){s=!1,c()})}var l,c=function(e){if(l&&(r.defer.cancel(l),l=null),!s){var a=t.val(),c=e&&e.type;"password"===o||n.ngTrim&&"false"===n.ngTrim||(a=Ji(a)),(i.$viewValue!==a||""===a&&i.$$hasNativeValidators)&&i.$setViewValue(a,c)}};if(a.hasEvent("input"))t.on("input",c);else{var d=function(e,t,n){l||(l=r.defer(function(){l=null,t&&t.value===n||c(e)}))};t.on("keydown",function(e){var t=e.keyCode;91===t||15<t&&t<19||37<=t&&t<=40||d(e,this,this.value)}),a.hasEvent("paste")&&t.on("paste cut",d)}t.on("change",c),Xr[o]&&i.$$hasNativeValidators&&o===n.type&&t.on(Yr,function(e){if(!l){var t=this[xi],n=t.badInput,i=t.typeMismatch;l=r.defer(function(){l=null,t.badInput===n&&t.typeMismatch===i||c(e)})}}),i.$render=function(){var e=i.$isEmpty(i.$viewValue)?"":i.$viewValue;t.val()!==e&&t.val(e)}}function gi(e,t){if(M(e))return e;if(w(e)){Wr.lastIndex=0;var n=Wr.exec(e);if(n){var i=+n[1],a=+n[2],r=0,o=0,s=0,l=0,c=Qn(i),d=7*(a-1);return t&&(r=t.getHours(),o=t.getMinutes(),s=t.getSeconds(),l=t.getMilliseconds()),new Date(i,0,c.getDate()+d,r,o,s,l)}}return NaN}function _i(e,t){return function(n,a){var r,o;if(M(n))return n;if(w(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Br.test(n))return new Date(n);if(e.lastIndex=0,r=e.exec(n))return r.shift(),o=a?{yyyy:a.getFullYear(),MM:a.getMonth()+1,dd:a.getDate(),HH:a.getHours(),mm:a.getMinutes(),ss:a.getSeconds(),sss:a.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},i(r,function(e,n){n<t.length&&(o[t[n]]=+e)}),new Date(o.yyyy,o.MM-1,o.dd,o.HH,o.mm,o.ss||0,1e3*o.sss||0)}return NaN}}function vi(e,t,n,i){return function(a,r,o,s,l,c,d){function u(e){return e&&!(e.getTime&&e.getTime()!==e.getTime())}function p(e){return v(e)&&!M(e)?n(e)||void 0:e}yi(a,r,o,s),hi(a,r,o,s,l,c);var f,m=s&&s.$options&&s.$options.timezone;if(s.$$parserName=e,s.$parsers.push(function(e){if(s.$isEmpty(e))return null;if(t.test(e)){var i=n(e,f);return m&&(i=Y(i,m)),i}}),s.$formatters.push(function(e){if(e&&!M(e))throw To("datefmt","Expected `{0}` to be a date",e);return u(e)?(f=e,f&&m&&(f=Y(f,m,!0)),d("date")(e,i,m)):(f=null,"")}),v(o.min)||o.ngMin){var h;s.$validators.min=function(e){return!u(e)||_(h)||n(e)>=h},o.$observe("min",function(e){h=p(e),s.$validate()})}if(v(o.max)||o.ngMax){var g;s.$validators.max=function(e){return!u(e)||_(g)||n(e)<=g},o.$observe("max",function(e){g=p(e),s.$validate()})}}}function yi(e,t,n,i){var a=t[0],r=i.$$hasNativeValidators=y(a.validity);r&&i.$parsers.push(function(e){var n=t.prop(xi)||{};return n.badInput||n.typeMismatch?void 0:e})}function bi(e,t,n,i,a,r){if(yi(e,t,n,i),hi(e,t,n,i,a,r),i.$$parserName="number",i.$parsers.push(function(e){return i.$isEmpty(e)?null:Vr.test(e)?parseFloat(e):void 0}),i.$formatters.push(function(e){if(!i.$isEmpty(e)){if(!k(e))throw To("numfmt","Expected `{0}` to be a number",e);e=e.toString()}return e}),v(n.min)||n.ngMin){var o;i.$validators.min=function(e){return i.$isEmpty(e)||_(o)||e>=o},n.$observe("min",function(e){v(e)&&!k(e)&&(e=parseFloat(e,10)),o=k(e)&&!isNaN(e)?e:void 0,i.$validate()})}if(v(n.max)||n.ngMax){var s;i.$validators.max=function(e){return i.$isEmpty(e)||_(s)||e<=s},n.$observe("max",function(e){v(e)&&!k(e)&&(e=parseFloat(e,10)),s=k(e)&&!isNaN(e)?e:void 0,i.$validate()})}}function wi(e,t,n,i,a,r){hi(e,t,n,i,a,r),fi(i),i.$$parserName="url",i.$validators.url=function(e,t){var n=e||t;return i.$isEmpty(n)||Hr.test(n)}}function ki(e,t,n,i,a,r){hi(e,t,n,i,a,r),fi(i),i.$$parserName="email",i.$validators.email=function(e,t){var n=e||t;return i.$isEmpty(n)||jr.test(n)}}function Mi(e,t,n,i){_(n.name)&&t.attr("name",o());var a=function(e){t[0].checked&&i.$setViewValue(n.value,e&&e.type)};t.on("click",a),i.$render=function(){var e=n.value;t[0].checked=e==i.$viewValue},n.$observe("value",i.$render)}function Si(e,t,n,i,a){var r;if(v(i)){if(r=e(i),!r.constant)throw To("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,i);return r(t)}return a}function Ai(e,t,n,i,a,r,o,s){var l=Si(s,e,"ngTrueValue",n.ngTrueValue,!0),c=Si(s,e,"ngFalseValue",n.ngFalseValue,!1),d=function(e){i.$setViewValue(t[0].checked,e&&e.type)};t.on("click",d),i.$render=function(){t[0].checked=i.$viewValue},i.$isEmpty=function(e){return e===!1},i.$formatters.push(function(e){return B(e,l)}),i.$parsers.push(function(e){return e?l:c})}function Ci(e,t){return e="ngClass"+e,["$animate",function(n){function a(e,t){var n=[];e:for(var i=0;i<e.length;i++){for(var a=e[i],r=0;r<t.length;r++)if(a==t[r])continue e;n.push(a)}return n}function r(e){var t=[];return Yi(e)?(i(e,function(e){t=t.concat(r(e))}),t):w(e)?e.split(" "):y(e)?(i(e,function(e,n){e&&(t=t.concat(n.split(" ")))}),t):e}return{restrict:"AC",link:function(o,s,l){function c(e){var t=u(e,1);l.$addClass(t)}function d(e){var t=u(e,-1);l.$removeClass(t)}function u(e,t){var n=s.data("$classCounts")||me(),a=[];return i(e,function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&a.push(e))}),s.data("$classCounts",n),a.join(" ")}function p(e,t){var i=a(t,e),r=a(e,t);i=u(i,1),r=u(r,-1),i&&i.length&&n.addClass(s,i),r&&r.length&&n.removeClass(s,r)}function f(e){if(t===!0||(1&o.$index)===t){var n=r(e||[]);if(m){if(!B(e,m)){var i=r(m);p(i,n)}}else c(n)}m=Yi(e)?e.map(function(e){return ge(e)}):ge(e)}var m;o.$watch(l[e],f,!0),l.$observe("class",function(t){f(o.$eval(l[e]))}),"ngClass"!==e&&o.$watch("$index",function(n,i){var a=1&n;if(a!==(1&i)){var s=r(o.$eval(l[e]));a===t?c(s):d(s)}})}}}]}function Ti(e){function t(e,t,s){_(t)?n("$pending",e,s):i("$pending",e,s),x(t)?t?(d(o.$error,e,s),c(o.$$success,e,s)):(c(o.$error,e,s),d(o.$$success,e,s)):(d(o.$error,e,s),d(o.$$success,e,s)),o.$pending?(a(So,!0),o.$valid=o.$invalid=void 0,r("",null)):(a(So,!1),o.$valid=Ei(o.$error),o.$invalid=!o.$valid,r("",o.$valid));var l;l=o.$pending&&o.$pending[e]?void 0:!o.$error[e]&&(!!o.$$success[e]||null),r(e,l),o.$$parentForm.$setValidity(e,l,o)}function n(e,t,n){o[e]||(o[e]={}),c(o[e],t,n)}function i(e,t,n){o[e]&&d(o[e],t,n),Ei(o[e])&&(o[e]=void 0)}function a(e,t){t&&!l[e]?(u.addClass(s,e),l[e]=!0):!t&&l[e]&&(u.removeClass(s,e),l[e]=!1)}function r(e,t){e=e?"-"+se(e,"-"):"",a(vo+e,t===!0),a(yo+e,t===!1)}var o=e.ctrl,s=e.$element,l={},c=e.set,d=e.unset,u=e.$animate;l[yo]=!(l[vo]=s.hasClass(vo)),o.$setValidity=t}function Ei(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function $i(e){e[0].hasAttribute("selected")&&(e[0].selected=!0)}var Ii=/^\/(.+)\/([a-z]*)$/,xi="validity",Pi=Object.prototype.hasOwnProperty,Di=function(e){return w(e)?e.toLowerCase():e},Ri=function(e){return w(e)?e.toUpperCase():e},Oi=function(e){return w(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},Ni=function(e){return w(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(e.charCodeAt(0)&-33)}):e};"i"!=="I".toLowerCase()&&(Di=Oi,Ri=Ni);var Li,Fi,Ui,Bi,Hi=[].slice,ji=[].splice,Vi=[].push,qi=Object.prototype.toString,zi=Object.getPrototypeOf,Wi=t("ng"),Gi=e.angular||(e.angular={}),Ki=0;Li=e.document.documentMode,f.$inject=[],m.$inject=[];var Yi=Array.isArray,Xi=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,Ji=function(e){return w(e)?e.trim():e},Zi=function(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Qi=function(){function t(){try{return new Function(""),!1}catch(e){return!0}}if(!v(Qi.rules)){var n=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(n){var i=n.getAttribute("ng-csp")||n.getAttribute("data-ng-csp");Qi.rules={noUnsafeEval:!i||i.indexOf("no-unsafe-eval")!==-1,noInlineStyle:!i||i.indexOf("no-inline-style")!==-1}}else Qi.rules={noUnsafeEval:t(),noInlineStyle:!1}}return Qi.rules},ea=function(){if(v(ea.name_))return ea.name_;var t,n,i,a,r=na.length;for(n=0;n<r;++n)if(i=na[n],t=e.document.querySelector("["+i.replace(":","\\:")+"jq]")){a=t.getAttribute(i+"jq");break}return ea.name_=a},ta=/:/g,na=["ng-","data-ng-","ng:","x-ng-"],ia=/[A-Z]/g,aa=!1,ra=1,oa=2,sa=3,la=8,ca=9,da=11,ua={full:"1.5.7",major:1,minor:5,dot:7,codeName:"hexagonal-circumvolution"};$e.expando="ng339";var pa=$e.cache={},fa=1,ma=function(e,t,n){e.addEventListener(t,n,!1)},ha=function(e,t,n){e.removeEventListener(t,n,!1)};$e._data=function(e){return this.cache[e[this.expando]]||{}};var ga=/([\:\-\_]+(.))/g,_a=/^moz([A-Z])/,va={mouseleave:"mouseout",mouseenter:"mouseover"},ya=t("jqLite"),ba=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,wa=/<|&#?\w+;/,ka=/<([\w:-]+)/,Ma=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Sa={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Sa.optgroup=Sa.option,Sa.tbody=Sa.tfoot=Sa.colgroup=Sa.caption=Sa.thead,Sa.th=Sa.td;var Aa=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))},Ca=$e.prototype={ready:function(t){function n(){i||(i=!0,t())}var i=!1;"complete"===e.document.readyState?e.setTimeout(n):(this.on("DOMContentLoaded",n),$e(e).on("load",n))},toString:function(){var e=[];return i(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return Fi(e>=0?this[e]:this[this.length+e])},length:0,push:Vi,sort:[].sort,splice:[].splice},Ta={};i("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){Ta[Di(e)]=e});var Ea={};i("input,select,option,textarea,button,form,details".split(","),function(e){Ea[e]=!0});var $a={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};i({data:Oe,removeData:De,hasData:Se,cleanData:Ae},function(e,t){$e[t]=e}),i({data:Oe,inheritedData:He,scope:function(e){return Fi.data(e,"$scope")||He(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return Fi.data(e,"$isolateScope")||Fi.data(e,"$isolateScopeNoTemplate")},controller:Be,injector:function(e){return He(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:Ne,css:function(e,t,n){return t=we(t),v(n)?void(e.style[t]=n):e.style[t]},attr:function(e,t,n){var i=e.nodeType;if(i!==sa&&i!==oa&&i!==la){var a=Di(t);if(Ta[a]){if(!v(n))return e[t]||(e.attributes.getNamedItem(t)||f).specified?a:void 0;n?(e[t]=!0,e.setAttribute(t,a)):(e[t]=!1,e.removeAttribute(a))}else if(v(n))e.setAttribute(t,n);else if(e.getAttribute){var r=e.getAttribute(t,2);return null===r?void 0:r}}},prop:function(e,t,n){return v(n)?void(e[t]=n):e[t]},text:function(){function e(e,t){if(_(t)){var n=e.nodeType;return n===ra||n===sa?e.textContent:""}e.textContent=t}return e.$dv="",e}(),val:function(e,t){if(_(t)){if(e.multiple&&"select"===L(e)){var n=[];return i(e.options,function(e){e.selected&&n.push(e.value||e.text)}),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){return _(t)?e.innerHTML:(xe(e,!0),void(e.innerHTML=t))},empty:je},function(e,t){$e.prototype[t]=function(t,n){var i,a,r=this.length;if(e!==je&&_(2==e.length&&e!==Ne&&e!==Be?t:n)){if(y(t)){for(i=0;i<r;i++)if(e===Oe)e(this[i],t);else for(a in t)e(this[i],a,t[a]);return this}for(var o=e.$dv,s=_(o)?Math.min(r,1):r,l=0;l<s;l++){var c=e(this[l],t,n);o=o?o+c:c}return o}for(i=0;i<r;i++)e(this[i],t,n);return this}}),i({removeData:De,on:function(e,t,n,i){if(v(i))throw ya("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(Me(e)){var a=Re(e,!0),r=a.events,o=a.handle;o||(o=a.handle=Ge(e,r));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],l=s.length,c=function(t,i,a){var s=r[t];s||(s=r[t]=[],s.specialHandlerWrapper=i,"$destroy"===t||a||ma(e,t,o)),s.push(n)};l--;)t=s[l],va[t]?(c(va[t],Ye),c(t,void 0,!0)):c(t)}},off:Pe,one:function(e,t,n){e=Fi(e),e.on(t,function i(){e.off(t,n),e.off(t,i)}),e.on(t,n)},replaceWith:function(e,t){var n,a=e.parentNode;xe(e),i(new $e(t),function(t){n?a.insertBefore(t,n.nextSibling):a.replaceChild(t,e),n=t})},children:function(e){var t=[];return i(e.childNodes,function(e){e.nodeType===ra&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===ra||n===da){t=new $e(t);for(var i=0,a=t.length;i<a;i++){var r=t[i];e.appendChild(r)}}},prepend:function(e,t){if(e.nodeType===ra){var n=e.firstChild;i(new $e(t),function(t){e.insertBefore(t,n)})}},wrap:function(e,t){Ee(e,Fi(t).eq(0).clone()[0])},remove:Ve,detach:function(e){Ve(e,!0)},after:function(e,t){var n=e,i=e.parentNode;t=new $e(t);for(var a=0,r=t.length;a<r;a++){var o=t[a];i.insertBefore(o,n.nextSibling),n=o}},addClass:Fe,removeClass:Le,toggleClass:function(e,t,n){t&&i(t.split(" "),function(t){var i=n;_(i)&&(i=!Ne(e,t)),(i?Fe:Le)(e,t)})},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==da?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:Ie,triggerHandler:function(e,t,n){var a,r,o,s=t.type||t,l=Re(e),d=l&&l.events,u=d&&d[s];u&&(a={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:f,type:s,target:e},t.type&&(a=c(a,t)),r=ge(u),o=n?[a].concat(n):[a],i(r,function(t){a.isImmediatePropagationStopped()||t.apply(e,o)}))}},function(e,t){$e.prototype[t]=function(t,n,i){for(var a,r=0,o=this.length;r<o;r++)_(a)?(a=e(this[r],t,n,i),v(a)&&(a=Fi(a))):Ue(a,e(this[r],t,n,i));return v(a)?a:this},$e.prototype.bind=$e.prototype.on,$e.prototype.unbind=$e.prototype.off}),Ze.prototype={put:function(e,t){this[Je(e,this.nextUid)]=t},get:function(e){return this[Je(e,this.nextUid)]},remove:function(e){var t=this[e=Je(e,this.nextUid)];return delete this[e],t}};var Ia=[function(){this.$get=[function(){return Ze}]}],xa=/^([^\(]+?)=>/,Pa=/^[^\(]*\(\s*([^\)]*)\)/m,Da=/,/,Ra=/^\s*(_?)(\S+?)\1\s*$/,Oa=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Na=t("$injector");it.$$annotate=nt;var La=t("$animate"),Fa=1,Ua="ng-animate",Ba=function(){this.$get=f},Ha=function(){var e=new Ze,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,a){function r(e,t,n){var a=!1;return t&&(t=w(t)?t.split(" "):Yi(t)?t:[],i(t,function(t){t&&(a=!0,e[t]=n)})),a}function o(){i(t,function(t){var n=e.get(t);if(n){var a=st(t.attr("class")),r="",o="";i(n,function(e,t){var n=!!a[t];e!==n&&(e?r+=(r.length?" ":"")+t:o+=(o.length?" ":"")+t)}),i(t,function(e){r&&Fe(e,r),o&&Le(e,o)}),e.remove(t)}}),t.length=0}function s(n,i,s){var l=e.get(n)||{},c=r(l,i,!0),d=r(l,s,!1);(c||d)&&(e.put(n,l),t.push(n),1===t.length&&a.$$postDigest(o))}return{enabled:f,on:f,off:f,pin:f,push:function(e,t,i,a){a&&a(),i=i||{},i.from&&e.css(i.from),i.to&&e.css(i.to),(i.addClass||i.removeClass)&&s(e,i.addClass,i.removeClass);var r=new n;return r.complete(),r}}}]},ja=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,i){if(n&&"."!==n.charAt(0))throw La("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var a=n+"-animation";t.$$registeredAnimations[n.substr(1)]=a,e.factory(a,i)},this.classNameFilter=function(e){if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null,this.$$classNameFilter)){var t=new RegExp("(\\s+|\\/)"+Ua+"(\\s+|\\/)");if(t.test(this.$$classNameFilter.toString()))throw La("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',Ua)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var i=ot(n);!i||i.parentNode||i.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,i,a,r){return i=i&&Fi(i),a=a&&Fi(a),i=i||a.parent(),t(n,i,a),e.push(n,"enter",lt(r))},move:function(n,i,a,r){return i=i&&Fi(i),a=a&&Fi(a),i=i||a.parent(),t(n,i,a),e.push(n,"move",lt(r))},leave:function(t,n){return e.push(t,"leave",lt(n),function(){t.remove()})},addClass:function(t,n,i){return i=lt(i),i.addClass=rt(i.addclass,n),e.push(t,"addClass",i)},removeClass:function(t,n,i){return i=lt(i),i.removeClass=rt(i.removeClass,n),e.push(t,"removeClass",i)},setClass:function(t,n,i,a){return a=lt(a),a.addClass=rt(a.addClass,n),a.removeClass=rt(a.removeClass,i),e.push(t,"setClass",a)},animate:function(t,n,i,a,r){return r=lt(r),r.from=r.from?c(r.from,n):n,r.to=r.to?c(r.to,i):i,a=a||"ng-inline-animate",r.tempClasses=rt(r.tempClasses,a),e.push(t,"animate",r)}}}]}],Va=function(){this.$get=["$$rAF",function(e){function t(t){n.push(t),n.length>1||e(function(){for(var e=0;e<n.length;e++)n[e]();n=[]})}var n=[];return function(){var e=!1;return t(function(){e=!0}),function(n){e?n():t(n)}}}]},qa=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(e,t,n,a,r){function o(e){this.setHost(e);var t=n(),i=function(e){r(e,0,!1)};this._doneCallbacks=[],this._tick=function(e){var n=a[0];n&&n.hidden?i(e):t(e)},this._state=0}var s=0,l=1,c=2;return o.chain=function(e,t){function n(){return i===e.length?void t(!0):void e[i](function(e){return e===!1?void t(!1):(i++,void n())})}var i=0;n()},o.all=function(e,t){function n(n){r=r&&n,++a===e.length&&t(r)}var a=0,r=!0;i(e,function(e){e.done(n)})},o.prototype={setHost:function(e){this.host=e||{}},done:function(e){this._state===c?e():this._doneCallbacks.push(e)},progress:f,getPromise:function(){if(!this.promise){var t=this;this.promise=e(function(e,n){t.done(function(t){t===!1?n():e()})})}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},"catch":function(e){return this.getPromise()["catch"](e)},"finally":function(e){return this.getPromise()["finally"](e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;t._state===s&&(t._state=l,t._tick(function(){t._resolve(e)}))},_resolve:function(e){this._state!==c&&(i(this._doneCallbacks,function(t){t(e)}),this._doneCallbacks.length=0,this._state=c)}},o}]},za=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,i){function a(){return e(function(){r(),s||l.complete(),s=!0}),l}function r(){o.addClass&&(t.addClass(o.addClass),o.addClass=null),o.removeClass&&(t.removeClass(o.removeClass),o.removeClass=null),o.to&&(t.css(o.to),o.to=null)}var o=i||{};o.$$prepared||(o=U(o)),o.cleanupStyles&&(o.from=o.to=null),o.from&&(t.css(o.from),o.from=null);var s,l=new n;return{start:a,end:a}}}]},Wa=t("$compile"),Ga=new ft;mt.$inject=["$provide","$$sanitizeUriProvider"],ht.prototype.isFirstChange=function(){return this.previousValue===Ga};var Ka=/^((?:x|data)[\:\-_])/i,Ya=t("$controller"),Xa=/^(\S+)(\s+as\s+([\w$]+))?$/,Ja=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof Fi&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},Za="application/json",Qa={"Content-Type":Za+";charset=utf-8"},er=/^\[|^\{(?!\{)/,tr={"[":/]$/,"{":/}$/},nr=/^\)\]\}',?\n/,ir=t("$http"),ar=function(e){return function(){throw ir("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",e)}},rr=Gi.$interpolateMinErr=t("$interpolate");rr.throwNoconcat=function(e){throw rr("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",e)},rr.interr=function(e,t){return rr("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var or=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,sr={http:80,https:443,ftp:21},lr=t("$location"),cr={$$absUrl:"",$$html5:!1,$$replace:!1,absUrl:Xt("$$absUrl"),url:function(e){if(_(e))return this.$$url;
var t=or.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:Xt("$$protocol"),host:Xt("$$host"),port:Xt("$$port"),path:Jt("$$path",function(e){return e=null!==e?e.toString():"","/"==e.charAt(0)?e:"/"+e}),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(w(e)||k(e))e=e.toString(),this.$$search=Z(e);else{if(!y(e))throw lr("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");e=U(e,{}),i(e,function(t,n){null==t&&delete e[n]}),this.$$search=e}break;default:_(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:Jt("$$hash",function(e){return null!==e?e.toString():""}),replace:function(){return this.$$replace=!0,this}};i([Yt,Kt,Gt],function(e){e.prototype=Object.create(cr),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==Gt||!this.$$html5)throw lr("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=_(t)?null:t,this}});var dr=t("$parse"),ur=Function.prototype.call,pr=Function.prototype.apply,fr=Function.prototype.bind,mr=me();i("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(e){mr[e]=!0});var hr={n:"\n",f:"\f",r:"\r",t:"\t",v:"\x0B","'":"'",'"':'"'},gr=function(e){this.options=e};gr.prototype={constructor:gr,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),i=n+this.peek(2),a=mr[t],r=mr[n],o=mr[i];if(a||r||o){var s=o?i:r?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return t.indexOf(e)!==-1},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return"0"<=e&&e<="9"&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\x0B"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),i=t.charCodeAt(0);return n>=55296&&n<=56319&&i>=56320&&i<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var i=v(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw dr("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,i,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=Di(this.text.charAt(this.index));if("."==n||this.isNumber(n))e+=n;else{var i=this.peek();if("e"==n&&this.isExpOperator(i))e+=n;else if(this.isExpOperator(n)&&i&&this.isNumber(i)&&"e"==e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||i&&this.isNumber(i)||"e"!=e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",i=e,a=!1;this.index<this.text.length;){var r=this.text.charAt(this.index);if(i+=r,a){if("u"===r){var o=this.text.substring(this.index+1,this.index+5);o.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+o+"]"),this.index+=4,n+=String.fromCharCode(parseInt(o,16))}else{var s=hr[r];n+=s||r}a=!1}else if("\\"===r)a=!0;else{if(r===e)return this.index++,void this.tokens.push({index:t,text:i,constant:!0,value:n});n+=r}this.index++}this.throwError("Unterminated quote",t)}};var _r=function(e,t){this.lexer=e,this.options=t};_r.Program="Program",_r.ExpressionStatement="ExpressionStatement",_r.AssignmentExpression="AssignmentExpression",_r.ConditionalExpression="ConditionalExpression",_r.LogicalExpression="LogicalExpression",_r.BinaryExpression="BinaryExpression",_r.UnaryExpression="UnaryExpression",_r.CallExpression="CallExpression",_r.MemberExpression="MemberExpression",_r.Identifier="Identifier",_r.Literal="Literal",_r.ArrayExpression="ArrayExpression",_r.Property="Property",_r.ObjectExpression="ObjectExpression",_r.ThisExpression="ThisExpression",_r.LocalsExpression="LocalsExpression",_r.NGValueParameter="NGValueParameter",_r.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:_r.Program,body:e}},expressionStatement:function(){return{type:_r.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e,t=this.expression();e=this.expect("|");)t=this.filter(t);return t},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();return this.expect("=")&&(e={type:_r.AssignmentExpression,left:e,right:this.assignment(),operator:"="}),e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:_r.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:_r.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:_r.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:_r.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:_r.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:_r.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:_r.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:_r.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e;this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=U(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:_r.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());for(var t;t=this.expect("(","[",".");)"("===t.text?(e={type:_r.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:_r.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:_r.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:_r.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do e.push(this.filterChain());while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:_r.Identifier,name:e.text}},constant:function(){return{type:_r.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:_r.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:_r.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:_r.ObjectExpression,properties:t}},throwError:function(e,t){throw dr("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw dr("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw dr("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,i){return this.peekAhead(0,e,t,n,i)},peekAhead:function(e,t,n,i,a){if(this.tokens.length>e){var r=this.tokens[e],o=r.text;if(o===t||o===n||o===i||o===a||!t&&!n&&!i&&!a)return r}return!1},expect:function(e,t,n,i){var a=this.peek(e,t,n,i);return!!a&&(this.tokens.shift(),a)},selfReferential:{"this":{type:_r.ThisExpression},$locals:{type:_r.LocalsExpression}}},hn.prototype={compile:function(e,t){var n=this,a=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},cn(a,n.$filter);var r,o="";if(this.stage="assign",r=pn(a)){this.state.computing="assign";var s=this.nextId();this.recurse(r,s),this.return_(s),o="fn.assign="+this.generateFunction("assign","s,v,l")}var l=dn(a.body);n.stage="inputs",i(l,function(e,t){var i="fn"+t;n.state[i]={vars:[],body:[],own:{}},n.state.computing=i;var a=n.nextId();n.recurse(e,a),n.return_(a),n.state.inputs.push(i),e.watchId=t}),this.state.computing="fn",this.stage="main",this.recurse(a);var c='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+o+this.watchFns()+"return fn;",d=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",c)(this.$filter,en,nn,an,tn,rn,on,sn,e);return this.state=this.stage=void 0,d.literal=fn(a),d.constant=mn(a),d},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return i(t,function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))}),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return i(this.state.filters,function(n,i){e.push(n+"=$filter("+t.escape(i)+")")}),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,a,r,o){var s,l,c,d,u,p=this;if(a=a||f,!o&&v(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,a,r,!0));switch(e.type){case _r.Program:i(e.body,function(t,n){p.recurse(t.expression,void 0,void 0,function(e){l=e}),n!==e.body.length-1?p.current().body.push(l,";"):p.return_(l)});break;case _r.Literal:d=this.escape(e.value),this.assign(t,d),a(d);break;case _r.UnaryExpression:this.recurse(e.argument,void 0,void 0,function(e){l=e}),d=e.operator+"("+this.ifDefined(l,0)+")",this.assign(t,d),a(d);break;case _r.BinaryExpression:this.recurse(e.left,void 0,void 0,function(e){s=e}),this.recurse(e.right,void 0,void 0,function(e){l=e}),d="+"===e.operator?this.plus(s,l):"-"===e.operator?this.ifDefined(s,0)+e.operator+this.ifDefined(l,0):"("+s+")"+e.operator+"("+l+")",this.assign(t,d),a(d);break;case _r.LogicalExpression:t=t||this.nextId(),p.recurse(e.left,t),p.if_("&&"===e.operator?t:p.not(t),p.lazyRecurse(e.right,t)),a(t);break;case _r.ConditionalExpression:t=t||this.nextId(),p.recurse(e.test,t),p.if_(t,p.lazyRecurse(e.alternate,t),p.lazyRecurse(e.consequent,t)),a(t);break;case _r.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===p.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),en(e.name),p.if_("inputs"===p.stage||p.not(p.getHasOwnProperty("l",e.name)),function(){p.if_("inputs"===p.stage||"s",function(){r&&1!==r&&p.if_(p.not(p.nonComputedMember("s",e.name)),p.lazyAssign(p.nonComputedMember("s",e.name),"{}")),p.assign(t,p.nonComputedMember("s",e.name))})},t&&p.lazyAssign(t,p.nonComputedMember("l",e.name))),(p.state.expensiveChecks||_n(e.name))&&p.addEnsureSafeObject(t),a(t);break;case _r.MemberExpression:s=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),p.recurse(e.object,s,void 0,function(){p.if_(p.notNull(s),function(){r&&1!==r&&p.addEnsureSafeAssignContext(s),e.computed?(l=p.nextId(),p.recurse(e.property,l),p.getStringValue(l),p.addEnsureSafeMemberName(l),r&&1!==r&&p.if_(p.not(p.computedMember(s,l)),p.lazyAssign(p.computedMember(s,l),"{}")),d=p.ensureSafeObject(p.computedMember(s,l)),p.assign(t,d),n&&(n.computed=!0,n.name=l)):(en(e.property.name),r&&1!==r&&p.if_(p.not(p.nonComputedMember(s,e.property.name)),p.lazyAssign(p.nonComputedMember(s,e.property.name),"{}")),d=p.nonComputedMember(s,e.property.name),(p.state.expensiveChecks||_n(e.property.name))&&(d=p.ensureSafeObject(d)),p.assign(t,d),n&&(n.computed=!1,n.name=e.property.name))},function(){p.assign(t,"undefined")}),a(t)},!!r);break;case _r.CallExpression:t=t||this.nextId(),e.filter?(l=p.filter(e.callee.name),c=[],i(e.arguments,function(e){var t=p.nextId();p.recurse(e,t),c.push(t)}),d=l+"("+c.join(",")+")",p.assign(t,d),a(t)):(l=p.nextId(),s={},c=[],p.recurse(e.callee,l,s,function(){p.if_(p.notNull(l),function(){p.addEnsureSafeFunction(l),i(e.arguments,function(e){p.recurse(e,p.nextId(),void 0,function(e){c.push(p.ensureSafeObject(e))})}),s.name?(p.state.expensiveChecks||p.addEnsureSafeObject(s.context),d=p.member(s.context,s.name,s.computed)+"("+c.join(",")+")"):d=l+"("+c.join(",")+")",d=p.ensureSafeObject(d),p.assign(t,d)},function(){p.assign(t,"undefined")}),a(t)}));break;case _r.AssignmentExpression:if(l=this.nextId(),s={},!un(e.left))throw dr("lval","Trying to assign a value to a non l-value");this.recurse(e.left,void 0,s,function(){p.if_(p.notNull(s.context),function(){p.recurse(e.right,l),p.addEnsureSafeObject(p.member(s.context,s.name,s.computed)),p.addEnsureSafeAssignContext(s.context),d=p.member(s.context,s.name,s.computed)+e.operator+l,p.assign(t,d),a(t||d)})},1);break;case _r.ArrayExpression:c=[],i(e.elements,function(e){p.recurse(e,p.nextId(),void 0,function(e){c.push(e)})}),d="["+c.join(",")+"]",this.assign(t,d),a(d);break;case _r.ObjectExpression:c=[],u=!1,i(e.properties,function(e){e.computed&&(u=!0)}),u?(t=t||this.nextId(),this.assign(t,"{}"),i(e.properties,function(e){e.computed?(s=p.nextId(),p.recurse(e.key,s)):s=e.key.type===_r.Identifier?e.key.name:""+e.key.value,l=p.nextId(),p.recurse(e.value,l),p.assign(p.member(t,s,e.computed),l)})):(i(e.properties,function(t){p.recurse(t.value,e.constant?void 0:p.nextId(),void 0,function(e){c.push(p.escape(t.key.type===_r.Identifier?t.key.name:""+t.key.value)+":"+e)})}),d="{"+c.join(",")+"}",this.assign(t,d)),a(t||d);break;case _r.ThisExpression:this.assign(t,"s"),a("s");break;case _r.LocalsExpression:this.assign(t,"l"),a("l");break;case _r.NGValueParameter:this.assign(t,"v"),a("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,i=this.current().own;return i.hasOwnProperty(n)||(i[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),i[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(e===!0)t();else{var i=this.current().body;i.push("if(",e,"){"),t(),i.push("}"),n&&(i.push("else{"),n(),i.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){var n=/[$_a-zA-Z][$_a-zA-Z0-9]*/,i=/[^$_a-zA-Z0-9]/g;return n.test(t)?e+"."+t:e+'["'+t.replace(i,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,i,a,r){var o=this;return function(){o.recurse(e,t,n,i,a,r)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(w(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(k(e))return e.toString();if(e===!0)return"true";if(e===!1)return"false";if(null===e)return"null";if("undefined"==typeof e)return"undefined";throw dr("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},gn.prototype={compile:function(e,t){var n=this,a=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,cn(a,n.$filter);var r,o;(r=pn(a))&&(o=this.recurse(r));var s,l=dn(a.body);l&&(s=[],i(l,function(e,t){var i=n.recurse(e);e.input=i,s.push(i),e.watchId=t}));var c=[];i(a.body,function(e){c.push(n.recurse(e.expression))});var d=0===a.body.length?f:1===a.body.length?c[0]:function(e,t){var n;return i(c,function(i){n=i(e,t)}),n};return o&&(d.assign=function(e,t,n){return o(e,n,t)}),s&&(d.inputs=s),d.literal=fn(a),d.constant=mn(a),d},recurse:function(e,t,n){var a,r,o,s=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case _r.Literal:return this.value(e.value,t);case _r.UnaryExpression:return r=this.recurse(e.argument),this["unary"+e.operator](r,t);case _r.BinaryExpression:return a=this.recurse(e.left),r=this.recurse(e.right),this["binary"+e.operator](a,r,t);case _r.LogicalExpression:return a=this.recurse(e.left),r=this.recurse(e.right),this["binary"+e.operator](a,r,t);case _r.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case _r.Identifier:return en(e.name,s.expression),s.identifier(e.name,s.expensiveChecks||_n(e.name),t,n,s.expression);case _r.MemberExpression:return a=this.recurse(e.object,!1,!!n),e.computed||(en(e.property.name,s.expression),r=e.property.name),e.computed&&(r=this.recurse(e.property)),e.computed?this.computedMember(a,r,t,n,s.expression):this.nonComputedMember(a,r,s.expensiveChecks,t,n,s.expression);case _r.CallExpression:return o=[],i(e.arguments,function(e){o.push(s.recurse(e))}),e.filter&&(r=this.$filter(e.callee.name)),e.filter||(r=this.recurse(e.callee,!0)),e.filter?function(e,n,i,a){for(var s=[],l=0;l<o.length;++l)s.push(o[l](e,n,i,a));var c=r.apply(void 0,s,a);return t?{context:void 0,name:void 0,value:c}:c}:function(e,n,i,a){var l,c=r(e,n,i,a);if(null!=c.value){nn(c.context,s.expression),an(c.value,s.expression);for(var d=[],u=0;u<o.length;++u)d.push(nn(o[u](e,n,i,a),s.expression));l=nn(c.value.apply(c.context,d),s.expression)}return t?{value:l}:l};case _r.AssignmentExpression:return a=this.recurse(e.left,!0,1),r=this.recurse(e.right),function(e,n,i,o){var l=a(e,n,i,o),c=r(e,n,i,o);return nn(l.value,s.expression),rn(l.context),l.context[l.name]=c,t?{value:c}:c};case _r.ArrayExpression:return o=[],i(e.elements,function(e){o.push(s.recurse(e))}),function(e,n,i,a){for(var r=[],s=0;s<o.length;++s)r.push(o[s](e,n,i,a));return t?{value:r}:r};case _r.ObjectExpression:return o=[],i(e.properties,function(e){e.computed?o.push({key:s.recurse(e.key),computed:!0,value:s.recurse(e.value)}):o.push({key:e.key.type===_r.Identifier?e.key.name:""+e.key.value,computed:!1,value:s.recurse(e.value)})}),function(e,n,i,a){for(var r={},s=0;s<o.length;++s)o[s].computed?r[o[s].key(e,n,i,a)]=o[s].value(e,n,i,a):r[o[s].key]=o[s].value(e,n,i,a);return t?{value:r}:r};case _r.ThisExpression:return function(e){return t?{value:e}:e};case _r.LocalsExpression:return function(e,n){return t?{value:n}:n};case _r.NGValueParameter:return function(e,n,i){return t?{value:i}:i}}},"unary+":function(e,t){return function(n,i,a,r){var o=e(n,i,a,r);return o=v(o)?+o:0,t?{value:o}:o}},"unary-":function(e,t){return function(n,i,a,r){var o=e(n,i,a,r);return o=v(o)?-o:0,t?{value:o}:o}},"unary!":function(e,t){return function(n,i,a,r){var o=!e(n,i,a,r);return t?{value:o}:o}},"binary+":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o),l=t(i,a,r,o),c=sn(s,l);return n?{value:c}:c}},"binary-":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o),l=t(i,a,r,o),c=(v(s)?s:0)-(v(l)?l:0);return n?{value:c}:c}},"binary*":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)*t(i,a,r,o);return n?{value:s}:s}},"binary/":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)/t(i,a,r,o);return n?{value:s}:s}},"binary%":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)%t(i,a,r,o);return n?{value:s}:s}},"binary===":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)===t(i,a,r,o);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)!==t(i,a,r,o);return n?{value:s}:s}},"binary==":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)==t(i,a,r,o);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)!=t(i,a,r,o);return n?{value:s}:s}},"binary<":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)<t(i,a,r,o);return n?{value:s}:s}},"binary>":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)>t(i,a,r,o);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)<=t(i,a,r,o);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)>=t(i,a,r,o);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)&&t(i,a,r,o);return n?{value:s}:s}},"binary||":function(e,t,n){return function(i,a,r,o){var s=e(i,a,r,o)||t(i,a,r,o);return n?{value:s}:s}},"ternary?:":function(e,t,n,i){return function(a,r,o,s){var l=e(a,r,o,s)?t(a,r,o,s):n(a,r,o,s);return i?{value:l}:l}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n,i,a){return function(r,o,s,l){var c=o&&e in o?o:r;i&&1!==i&&c&&!c[e]&&(c[e]={});var d=c?c[e]:void 0;return t&&nn(d,a),n?{context:c,name:e,value:d}:d}},computedMember:function(e,t,n,i,a){return function(r,o,s,l){var c,d,u=e(r,o,s,l);return null!=u&&(c=t(r,o,s,l),c=tn(c),en(c,a),i&&1!==i&&(rn(u),u&&!u[c]&&(u[c]={})),d=u[c],nn(d,a)),n?{context:u,name:c,value:d}:d}},nonComputedMember:function(e,t,n,i,a,r){return function(o,s,l,c){var d=e(o,s,l,c);a&&1!==a&&(rn(d),d&&!d[t]&&(d[t]={}));var u=null!=d?d[t]:void 0;return(n||_n(t))&&nn(u,r),i?{context:d,name:t,value:u}:u}},inputs:function(e,t){return function(n,i,a,r){return r?r[t]:e(n,i,a)}}};var vr=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new _r(e,n),this.astCompiler=n.csp?new gn(this.ast,t):new hn(this.ast,t)};vr.prototype={constructor:vr,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var yr=Object.prototype.valueOf,br=t("$sce"),wr={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},kr=t("$compile"),Mr=e.document.createElement("a"),Sr=Rn(e.location.href);Ln.$inject=["$document"],Un.$inject=["$provide"];var Ar=22,Cr=".",Tr="0";qn.$inject=["$locale"],zn.$inject=["$locale"];var Er={yyyy:Xn("FullYear",4,0,!1,!0),yy:Xn("FullYear",2,0,!0,!0),y:Xn("FullYear",1,0,!1,!0),MMMM:Jn("Month"),MMM:Jn("Month",!0),MM:Xn("Month",2,1),M:Xn("Month",1,1),LLLL:Jn("Month",!1,!0),dd:Xn("Date",2),d:Xn("Date",1),HH:Xn("Hours",2),H:Xn("Hours",1),hh:Xn("Hours",2,-12),h:Xn("Hours",1,-12),mm:Xn("Minutes",2),m:Xn("Minutes",1),ss:Xn("Seconds",2),s:Xn("Seconds",1),sss:Xn("Milliseconds",3),EEEE:Jn("Day"),EEE:Jn("Day",!0),a:ni,Z:Zn,ww:ti(2),w:ti(1),G:ii,GG:ii,GGG:ii,GGGG:ai},$r=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Ir=/^\-?\d+$/;ri.$inject=["$locale"];var xr=h(Di),Pr=h(Ri);ci.$inject=["$parse"];var Dr=h({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===qi.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}}),Rr={};i(Ta,function(e,t){function n(e,n,a){e.$watch(a[i],function(e){a.$set(t,!!e)})}if("multiple"!=e){var i=gt("ng-"+t),a=n;"checked"===e&&(a=function(e,t,a){a.ngModel!==a[i]&&n(e,t,a)}),Rr[i]=function(){return{restrict:"A",priority:100,link:a}}}}),i($a,function(e,t){Rr[t]=function(){return{priority:100,link:function(e,n,i){if("ngPattern"===t&&"/"==i.ngPattern.charAt(0)){var a=i.ngPattern.match(Ii);if(a)return void i.$set("ngPattern",new RegExp(a[1],a[2]))}e.$watch(i[t],function(e){i.$set(t,e)})}}}}),i(["src","srcset","href"],function(e){var t=gt("ng-"+e);Rr[t]=function(){return{priority:99,link:function(n,i,a){var r=e,o=e;"href"===e&&"[object SVGAnimatedString]"===qi.call(i.prop("href"))&&(o="xlinkHref",a.$attr[o]="xlink:href",r=null),a.$observe(t,function(t){return t?(a.$set(o,t),void(Li&&r&&i.prop(r,a[o]))):void("href"===e&&a.$set(o,null))})}}}});var Or={$addControl:f,$$renameControl:ui,$removeControl:f,$setValidity:f,$setDirty:f,$setPristine:f,$setSubmitted:f},Nr="ng-submitted";pi.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Lr=function(e){return["$timeout","$parse",function(t,n){function i(e){return""===e?n('this[""]').assign:n(e).assign||f}var a={name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:pi,compile:function(n,a){n.addClass(bo).addClass(vo);var r=a.name?"name":!(!e||!a.ngForm)&&"ngForm";return{pre:function(e,n,a,o){var s=o[0];if(!("action"in a)){var l=function(t){e.$apply(function(){s.$commitViewValue(),s.$setSubmitted()}),t.preventDefault()};ma(n[0],"submit",l),n.on("$destroy",function(){t(function(){ha(n[0],"submit",l)},0,!1)})}var d=o[1]||s.$$parentForm;d.$addControl(s);var u=r?i(s.$name):f;r&&(u(e,s),a.$observe(r,function(t){s.$name!==t&&(u(e,void 0),s.$$parentForm.$$renameControl(s,t),(u=i(s.$name))(e,s))})),n.on("$destroy",function(){s.$$parentForm.$removeControl(s),u(e,void 0),c(s,Or)})}}}};return a}]},Fr=Lr(),Ur=Lr(!0),Br=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Hr=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,jr=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,Vr=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,qr=/^(\d{4,})-(\d{2})-(\d{2})$/,zr=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Wr=/^(\d{4,})-W(\d\d)$/,Gr=/^(\d{4,})-(\d\d)$/,Kr=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Yr="keydown wheel mousedown",Xr=me();i("date,datetime-local,month,time,week".split(","),function(e){Xr[e]=!0});var Jr={text:mi,date:vi("date",qr,_i(qr,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":vi("datetimelocal",zr,_i(zr,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:vi("time",Kr,_i(Kr,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:vi("week",Wr,gi,"yyyy-Www"),month:vi("month",Gr,_i(Gr,["yyyy","MM"]),"yyyy-MM"),number:bi,url:wi,email:ki,radio:Mi,checkbox:Ai,hidden:f,button:f,submit:f,reset:f,file:f},Zr=["$browser","$sniffer","$filter","$parse",function(e,t,n,i){return{restrict:"E",require:["?ngModel"],link:{pre:function(a,r,o,s){s[0]&&(Jr[Di(o.type)]||Jr.text)(a,r,o,s[0],t,e,n,i)}}}}],Qr=/^(true|false|\d+)$/,eo=function(){return{restrict:"A",priority:100,compile:function(e,t){return Qr.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e)})}}}},to=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,i){e.$$addBindingInfo(n,i.ngBind),n=n[0],t.$watch(i.ngBind,function(e){n.textContent=_(e)?"":e})}}}}],no=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,i,a){var r=e(i.attr(a.$attr.ngBindTemplate));t.$$addBindingInfo(i,r.expressions),i=i[0],a.$observe("ngBindTemplate",function(e){i.textContent=_(e)?"":e})}}}}],io=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(i,a){var r=t(a.ngBindHtml),o=t(a.ngBindHtml,function(t){return e.valueOf(t)});return n.$$addBindingClass(i),function(t,i,a){n.$$addBindingInfo(i,a.ngBindHtml),t.$watch(o,function(){var n=r(t);i.html(e.getTrustedHtml(n)||"")})}}}}],ao=h({restrict:"A",require:"ngModel",link:function(e,t,n,i){i.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),ro=Ci("",!0),oo=Ci("Odd",0),so=Ci("Even",1),lo=di({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),co=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],uo={},po={blur:!0,focus:!0};i("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=gt("ng-"+e);uo[t]=["$parse","$rootScope",function(n,i){return{restrict:"A",compile:function(a,r){var o=n(r[t],null,!0);return function(t,n){n.on(e,function(n){var a=function(){o(t,{$event:n})};po[e]&&i.$$phase?t.$evalAsync(a):t.$apply(a)})}}}}]});var fo=["$animate","$compile",function(e,t){
return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,i,a,r,o){var s,l,c;n.$watch(a.ngIf,function(n){n?l||o(function(n,r){l=r,n[n.length++]=t.$$createComment("end ngIf",a.ngIf),s={clone:n},e.enter(n,i.parent(),i)}):(c&&(c.remove(),c=null),l&&(l.$destroy(),l=null),s&&(c=fe(s.clone),e.leave(c).then(function(){c=null}),s=null))})}}}],mo=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Gi.noop,compile:function(i,a){var r=a.ngInclude||a.src,o=a.onload||"",s=a.autoscroll;return function(i,a,l,c,d){var u,p,f,m=0,h=function(){p&&(p.remove(),p=null),u&&(u.$destroy(),u=null),f&&(n.leave(f).then(function(){p=null}),p=f,f=null)};i.$watch(r,function(r){var l=function(){!v(s)||s&&!i.$eval(s)||t()},p=++m;r?(e(r,!0).then(function(e){if(!i.$$destroyed&&p===m){var t=i.$new();c.template=e;var s=d(t,function(e){h(),n.enter(e,null,a).then(l)});u=t,f=s,u.$emit("$includeContentLoaded",r),i.$eval(o)}},function(){i.$$destroyed||p===m&&(h(),i.$emit("$includeContentError",r))}),i.$emit("$includeContentRequested",r)):(h(),c.template=null)})}}}}],ho=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,i,a,r){return qi.call(i[0]).match(/SVG/)?(i.empty(),void t(Ce(r.template,e.document).childNodes)(n,function(e){i.append(e)},{futureParentElement:i})):(i.html(r.template),void t(i.contents())(n))}}}],go=di({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),_o=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,a){var r=t.attr(n.$attr.ngList)||", ",o="false"!==n.ngTrim,s=o?Ji(r):r,l=function(e){if(!_(e)){var t=[];return e&&i(e.split(s),function(e){e&&t.push(o?Ji(e):e)}),t}};a.$parsers.push(l),a.$formatters.push(function(e){if(Yi(e))return e.join(r)}),a.$isEmpty=function(e){return!e||!e.length}}}},vo="ng-valid",yo="ng-invalid",bo="ng-pristine",wo="ng-dirty",ko="ng-untouched",Mo="ng-touched",So="ng-pending",Ao="ng-empty",Co="ng-not-empty",To=t("ngModel"),Eo=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,n,a,r,o,s,l,c,d){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=d(n.name||"",!1)(e),this.$$parentForm=Or;var u,p=r(n.ngModel),m=p.assign,h=p,g=m,y=null,b=this;this.$$setOptions=function(e){if(b.$options=e,e&&e.getterSetter){var t=r(n.ngModel+"()"),i=r(n.ngModel+"($$$p)");h=function(e){var n=p(e);return S(n)&&(n=t(e)),n},g=function(e,t){S(p(e))?i(e,{$$$p:t}):m(e,t)}}else if(!p.assign)throw To("nonassign","Expression '{0}' is non-assignable. Element: {1}",n.ngModel,X(a))},this.$render=f,this.$isEmpty=function(e){return _(e)||""===e||null===e||e!==e},this.$$updateEmptyClasses=function(e){b.$isEmpty(e)?(o.removeClass(a,Co),o.addClass(a,Ao)):(o.removeClass(a,Ao),o.addClass(a,Co))};var w=0;Ti({ctrl:this,$element:a,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:o}),this.$setPristine=function(){b.$dirty=!1,b.$pristine=!0,o.removeClass(a,wo),o.addClass(a,bo)},this.$setDirty=function(){b.$dirty=!0,b.$pristine=!1,o.removeClass(a,bo),o.addClass(a,wo),b.$$parentForm.$setDirty()},this.$setUntouched=function(){b.$touched=!1,b.$untouched=!0,o.setClass(a,ko,Mo)},this.$setTouched=function(){b.$touched=!0,b.$untouched=!1,o.setClass(a,Mo,ko)},this.$rollbackViewValue=function(){s.cancel(y),b.$viewValue=b.$$lastCommittedViewValue,b.$render()},this.$validate=function(){if(!k(b.$modelValue)||!isNaN(b.$modelValue)){var e=b.$$lastCommittedViewValue,t=b.$$rawModelValue,n=b.$valid,i=b.$modelValue,a=b.$options&&b.$options.allowInvalid;b.$$runValidators(t,e,function(e){a||n===e||(b.$modelValue=e?t:void 0,b.$modelValue!==i&&b.$$writeModelToScope())})}},this.$$runValidators=function(e,t,n){function a(){var e=b.$$parserName||"parse";return _(u)?(s(e,null),!0):(u||(i(b.$validators,function(e,t){s(t,null)}),i(b.$asyncValidators,function(e,t){s(t,null)})),s(e,u),u)}function r(){var n=!0;return i(b.$validators,function(i,a){var r=i(e,t);n=n&&r,s(a,r)}),!!n||(i(b.$asyncValidators,function(e,t){s(t,null)}),!1)}function o(){var n=[],a=!0;i(b.$asyncValidators,function(i,r){var o=i(e,t);if(!P(o))throw To("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",o);s(r,void 0),n.push(o.then(function(){s(r,!0)},function(){a=!1,s(r,!1)}))}),n.length?c.all(n).then(function(){l(a)},f):l(!0)}function s(e,t){d===w&&b.$setValidity(e,t)}function l(e){d===w&&n(e)}w++;var d=w;return a()&&r()?void o():void l(!1)},this.$commitViewValue=function(){var e=b.$viewValue;s.cancel(y),(b.$$lastCommittedViewValue!==e||""===e&&b.$$hasNativeValidators)&&(b.$$updateEmptyClasses(e),b.$$lastCommittedViewValue=e,b.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function t(){b.$modelValue!==r&&b.$$writeModelToScope()}var n=b.$$lastCommittedViewValue,i=n;if(u=!_(i)||void 0)for(var a=0;a<b.$parsers.length;a++)if(i=b.$parsers[a](i),_(i)){u=!1;break}k(b.$modelValue)&&isNaN(b.$modelValue)&&(b.$modelValue=h(e));var r=b.$modelValue,o=b.$options&&b.$options.allowInvalid;b.$$rawModelValue=i,o&&(b.$modelValue=i,t()),b.$$runValidators(i,b.$$lastCommittedViewValue,function(e){o||(b.$modelValue=e?i:void 0,t())})},this.$$writeModelToScope=function(){g(e,b.$modelValue),i(b.$viewChangeListeners,function(e){try{e()}catch(n){t(n)}})},this.$setViewValue=function(e,t){b.$viewValue=e,b.$options&&!b.$options.updateOnDefault||b.$$debounceViewValueCommit(t)},this.$$debounceViewValueCommit=function(t){var n,i=0,a=b.$options;a&&v(a.debounce)&&(n=a.debounce,k(n)?i=n:k(n[t])?i=n[t]:k(n["default"])&&(i=n["default"])),s.cancel(y),i?y=s(function(){b.$commitViewValue()},i):l.$$phase?b.$commitViewValue():e.$apply(function(){b.$commitViewValue()})},e.$watch(function(){var t=h(e);if(t!==b.$modelValue&&(b.$modelValue===b.$modelValue||t===t)){b.$modelValue=b.$$rawModelValue=t,u=void 0;for(var n=b.$formatters,i=n.length,a=t;i--;)a=n[i](a);b.$viewValue!==a&&(b.$$updateEmptyClasses(a),b.$viewValue=b.$$lastCommittedViewValue=a,b.$render(),b.$$runValidators(t,a,f))}return t})}],$o=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Eo,priority:1,compile:function(t){return t.addClass(bo).addClass(ko).addClass(vo),{pre:function(e,t,n,i){var a=i[0],r=i[1]||a.$$parentForm;a.$$setOptions(i[2]&&i[2].$options),r.$addControl(a),n.$observe("name",function(e){a.$name!==e&&a.$$parentForm.$$renameControl(a,e)}),e.$on("$destroy",function(){a.$$parentForm.$removeControl(a)})},post:function(t,n,i,a){var r=a[0];r.$options&&r.$options.updateOn&&n.on(r.$options.updateOn,function(e){r.$$debounceViewValueCommit(e&&e.type)}),n.on("blur",function(){r.$touched||(e.$$phase?t.$evalAsync(r.$setTouched):t.$apply(r.$setTouched))})}}}}}],Io=/(\s+|^)default(\s+|$)/,xo=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var n=this;this.$options=U(e.$eval(t.ngModelOptions)),v(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=Ji(this.$options.updateOn.replace(Io,function(){return n.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},Po=di({terminal:!0,priority:1e3}),Do=t("ngOptions"),Ro=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,Oo=["$compile","$document","$parse",function(t,a,r){function o(e,t,i){function a(e,t,n,i,a){this.selectValue=e,this.viewValue=t,this.label=n,this.group=i,this.disabled=a}function o(e){var t;if(!c&&n(e))t=e;else{t=[];for(var i in e)e.hasOwnProperty(i)&&"$"!==i.charAt(0)&&t.push(i)}return t}var s=e.match(Ro);if(!s)throw Do("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,X(t));var l=s[5]||s[7],c=s[6],d=/ as /.test(s[0])&&s[1],u=s[9],p=r(s[2]?s[1]:l),f=d&&r(d),m=f||p,h=u&&r(u),g=u?function(e,t){return h(i,t)}:function(e){return Je(e)},_=function(e,t){return g(e,M(e,t))},v=r(s[2]||s[1]),y=r(s[3]||""),b=r(s[4]||""),w=r(s[8]),k={},M=c?function(e,t){return k[c]=t,k[l]=e,k}:function(e){return k[l]=e,k};return{trackBy:u,getTrackByValue:_,getWatchables:r(w,function(e){var t=[];e=e||[];for(var n=o(e),a=n.length,r=0;r<a;r++){var l=e===n?r:n[r],c=e[l],d=M(c,l),u=g(c,d);if(t.push(u),s[2]||s[1]){var p=v(i,d);t.push(p)}if(s[4]){var f=b(i,d);t.push(f)}}return t}),getOptions:function(){for(var e=[],t={},n=w(i)||[],r=o(n),s=r.length,l=0;l<s;l++){var c=n===r?l:r[l],d=n[c],p=M(d,c),f=m(i,p),h=g(f,p),k=v(i,p),S=y(i,p),A=b(i,p),C=new a(h,f,k,S,A);e.push(C),t[h]=C}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[_(e)]},getViewValueFromOption:function(e){return u?Gi.copy(e.viewValue):e.viewValue}}}}}function s(e,n,r,s){function d(e,t){var n=l.cloneNode(!1);t.appendChild(n),u(e,n)}function u(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),e.value!==t.value&&(t.value=e.selectValue)}function p(){var e=M&&m.readValue();if(M)for(var t=M.items.length-1;t>=0;t--){var i=M.items[t];Ve(i.group?i.element.parentNode:i.element)}M=S.getOptions();var a={};if(w&&n.prepend(f),M.items.forEach(function(e){var t;v(e.group)?(t=a[e.group],t||(t=c.cloneNode(!1),A.appendChild(t),t.label=e.group,a[e.group]=t),d(e,t)):d(e,A)}),n[0].appendChild(A),h.$render(),!h.$isEmpty(e)){var r=m.readValue(),o=S.trackBy||g;(o?B(e,r):e===r)||(h.$setViewValue(r),h.$render())}}for(var f,m=s[0],h=s[1],g=r.multiple,_=0,y=n.children(),b=y.length;_<b;_++)if(""===y[_].value){f=y.eq(_);break}var w=!!f,k=Fi(l.cloneNode(!1));k.val("?");var M,S=o(r.ngOptions,n,e),A=a[0].createDocumentFragment(),C=function(){w||n.prepend(f),n.val(""),f.prop("selected",!0),f.attr("selected",!0)},T=function(){w||f.remove()},E=function(){n.prepend(k),n.val("?"),k.prop("selected",!0),k.attr("selected",!0)},$=function(){k.remove()};g?(h.$isEmpty=function(e){return!e||0===e.length},m.writeValue=function(e){M.items.forEach(function(e){e.element.selected=!1}),e&&e.forEach(function(e){var t=M.getOptionFromViewValue(e);t&&(t.element.selected=!0)})},m.readValue=function(){var e=n.val()||[],t=[];return i(e,function(e){var n=M.selectValueMap[e];n&&!n.disabled&&t.push(M.getViewValueFromOption(n))}),t},S.trackBy&&e.$watchCollection(function(){if(Yi(h.$viewValue))return h.$viewValue.map(function(e){return S.getTrackByValue(e)})},function(){h.$render()})):(m.writeValue=function(e){var t=M.getOptionFromViewValue(e);t?(n[0].value!==t.selectValue&&($(),T(),n[0].value=t.selectValue,t.element.selected=!0),t.element.setAttribute("selected","selected")):null===e||w?($(),C()):(T(),E())},m.readValue=function(){var e=M.selectValueMap[n.val()];return e&&!e.disabled?(T(),$(),M.getViewValueFromOption(e)):null},S.trackBy&&e.$watch(function(){return S.getTrackByValue(h.$viewValue)},function(){h.$render()})),w?(f.remove(),t(f)(e),f.removeClass("ng-scope")):f=Fi(l.cloneNode(!1)),n.empty(),p(),e.$watchCollection(S.getWatchables,p)}var l=e.document.createElement("option"),c=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,i){i[0].registerOption=f},post:s}}}],No=["$locale","$interpolate","$log",function(e,t,n){var a=/{}/g,r=/^when(Minus)?(.+)$/;return{link:function(o,s,l){function c(e){s.text(e||"")}var d,u=l.count,p=l.$attr.when&&s.attr(l.$attr.when),m=l.offset||0,h=o.$eval(p)||{},g={},v=t.startSymbol(),y=t.endSymbol(),b=v+u+"-"+m+y,w=Gi.noop;i(l,function(e,t){var n=r.exec(t);if(n){var i=(n[1]?"-":"")+Di(n[2]);h[i]=s.attr(l.$attr[t])}}),i(h,function(e,n){g[n]=t(e.replace(a,b))}),o.$watch(u,function(t){var i=parseFloat(t),a=isNaN(i);if(a||i in h||(i=e.pluralCat(i-m)),i!==d&&!(a&&k(d)&&isNaN(d))){w();var r=g[i];_(r)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+i+"' in "+p),w=f,c()):w=o.$watch(r,c),d=i}})}}}],Lo=["$parse","$animate","$compile",function(e,a,r){var o="$$NG_REMOVED",s=t("ngRepeat"),l=function(e,t,n,i,a,r,o){e[n]=i,a&&(e[a]=r),e.$index=t,e.$first=0===t,e.$last=t===o-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0===(1&t))},c=function(e){return e.clone[0]},d=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(t,u){var p=u.ngRepeat,f=r.$$createComment("end ngRepeat",p),m=p.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw s("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",p);var h=m[1],g=m[2],_=m[3],v=m[4];if(m=h.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!m)throw s("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",h);var y=m[3]||m[1],b=m[2];if(_&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(_)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(_)))throw s("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",_);var w,k,M,S,A={$id:Je};return v?w=e(v):(M=function(e,t){return Je(t)},S=function(e){return e}),function(e,t,r,u,m){w&&(k=function(t,n,i){return b&&(A[b]=t),A[y]=n,A.$index=i,w(e,A)});var h=me();e.$watchCollection(g,function(r){var u,g,v,w,A,C,T,E,$,I,x,P,D=t[0],R=me();if(_&&(e[_]=r),n(r))$=r,E=k||M;else{E=k||S,$=[];for(var O in r)Pi.call(r,O)&&"$"!==O.charAt(0)&&$.push(O)}for(w=$.length,x=new Array(w),u=0;u<w;u++)if(A=r===$?u:$[u],C=r[A],T=E(A,C,u),h[T])I=h[T],delete h[T],R[T]=I,x[u]=I;else{if(R[T])throw i(x,function(e){e&&e.scope&&(h[e.id]=e)}),s("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",p,T,C);x[u]={id:T,scope:void 0,clone:void 0},R[T]=!0}for(var N in h){if(I=h[N],P=fe(I.clone),a.leave(P),P[0].parentNode)for(u=0,g=P.length;u<g;u++)P[u][o]=!0;I.scope.$destroy()}for(u=0;u<w;u++)if(A=r===$?u:$[u],C=r[A],I=x[u],I.scope){v=D;do v=v.nextSibling;while(v&&v[o]);c(I)!=v&&a.move(fe(I.clone),null,D),D=d(I),l(I.scope,u,y,C,b,A,w)}else m(function(e,t){I.scope=t;var n=f.cloneNode(!1);e[e.length++]=n,a.enter(e,null,D),D=n,I.clone=e,R[I.id]=I,l(I.scope,u,y,C,b,A,w)});h=R})}}}}],Fo="ng-hide",Uo="ng-hide-animate",Bo=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngShow,function(t){e[t?"removeClass":"addClass"](n,Fo,{tempClasses:Uo})})}}}],Ho=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngHide,function(t){e[t?"addClass":"removeClass"](n,Fo,{tempClasses:Uo})})}}}],jo=di(function(e,t,n){e.$watch(n.ngStyle,function(e,n){n&&e!==n&&i(n,function(e,n){t.css(n,"")}),e&&t.css(e)},!0)}),Vo=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,a,r,o){var s=r.ngSwitch||r.on,l=[],c=[],d=[],u=[],p=function(e,t){return function(){e.splice(t,1)}};n.$watch(s,function(n){var a,r;for(a=0,r=d.length;a<r;++a)e.cancel(d[a]);for(d.length=0,a=0,r=u.length;a<r;++a){var s=fe(c[a].clone);u[a].$destroy();var f=d[a]=e.leave(s);f.then(p(d,a))}c.length=0,u.length=0,(l=o.cases["!"+n]||o.cases["?"])&&i(l,function(n){n.transclude(function(i,a){u.push(a);var r=n.element;i[i.length++]=t.$$createComment("end ngSwitchWhen");var o={clone:i};c.push(o),e.enter(i,r.parent(),r)})})})}}}],qo=di({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,a){i.cases["!"+n.ngSwitchWhen]=i.cases["!"+n.ngSwitchWhen]||[],i.cases["!"+n.ngSwitchWhen].push({transclude:a,element:t})}}),zo=di({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,a){i.cases["?"]=i.cases["?"]||[],i.cases["?"].push({transclude:a,element:t})}}),Wo=t("ngTransclude"),Go=di({restrict:"EAC",link:function(e,t,n,i,a){function r(e){e.length&&(t.empty(),t.append(e))}if(n.ngTransclude===n.$attr.ngTransclude&&(n.ngTransclude=""),!a)throw Wo("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",X(t));var o=n.ngTransclude||n.ngTranscludeSlot;a(r,null,o)}}),Ko=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"==n.type){var i=n.id,a=t[0].text;e.put(i,a)}}}}],Yo={$setViewValue:f,$render:f},Xo=["$element","$scope",function(t,n){var i=this,a=new Ze;i.ngModelCtrl=Yo,i.unknownOption=Fi(e.document.createElement("option")),i.renderUnknownOption=function(e){var n="? "+Je(e)+" ?";i.unknownOption.val(n),t.prepend(i.unknownOption),t.val(n)},n.$on("$destroy",function(){i.renderUnknownOption=f}),i.removeUnknownOption=function(){i.unknownOption.parent()&&i.unknownOption.remove()},i.readValue=function(){return i.removeUnknownOption(),t.val()},i.writeValue=function(e){i.hasOption(e)?(i.removeUnknownOption(),t.val(e),""===e&&i.emptyOption.prop("selected",!0)):null==e&&i.emptyOption?(i.removeUnknownOption(),t.val("")):i.renderUnknownOption(e)},i.addOption=function(e,t){if(t[0].nodeType!==la){ue(e,'"option value"'),""===e&&(i.emptyOption=t);var n=a.get(e)||0;a.put(e,n+1),i.ngModelCtrl.$render(),$i(t)}},i.removeOption=function(e){var t=a.get(e);t&&(1===t?(a.remove(e),""===e&&(i.emptyOption=void 0)):a.put(e,t-1))},i.hasOption=function(e){return!!a.get(e)},i.registerOption=function(e,t,n,a,r){if(a){var o;n.$observe("value",function(e){v(o)&&i.removeOption(o),o=e,i.addOption(e,t)})}else r?e.$watch(r,function(e,a){n.$set("value",e),a!==e&&i.removeOption(a),i.addOption(e,t)}):i.addOption(n.value,t);t.on("$destroy",function(){i.removeOption(n.value),i.ngModelCtrl.$render()})}}],Jo=function(){function e(e,t,n,a){var r=a[1];if(r){var o=a[0];if(o.ngModelCtrl=r,t.on("change",function(){e.$apply(function(){r.$setViewValue(o.readValue())})}),n.multiple){o.readValue=function(){var e=[];return i(t.find("option"),function(t){t.selected&&e.push(t.value)}),e},o.writeValue=function(e){var n=new Ze(e);i(t.find("option"),function(e){e.selected=v(n.get(e.value))})};var s,l=NaN;e.$watch(function(){l!==r.$viewValue||B(s,r.$viewValue)||(s=ge(r.$viewValue),r.$render()),l=r.$viewValue}),r.$isEmpty=function(e){return!e||0===e.length}}}}function t(e,t,n,i){var a=i[1];if(a){var r=i[0];a.$render=function(){r.writeValue(a.$viewValue)}}}return{restrict:"E",require:["select","?ngModel"],controller:Xo,priority:1,link:{pre:e,post:t}}},Zo=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){if(v(n.value))var i=e(n.value,!0);else{var a=e(t.text(),!0);a||n.$set("value",t.text())}return function(e,t,n){var r="$selectController",o=t.parent(),s=o.data(r)||o.parent().data(r);s&&s.registerOption(e,t,n,i,a)}}}}],Qo=h({restrict:"E",terminal:!1}),es=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){i&&(n.required=!0,i.$validators.required=function(e,t){return!n.required||!i.$isEmpty(t)},n.$observe("required",function(){i.$validate()}))}}},ts=function(){return{restrict:"A",require:"?ngModel",link:function(e,n,i,a){if(a){var r,o=i.ngPattern||i.pattern;i.$observe("pattern",function(e){if(w(e)&&e.length>0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw t("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",o,e,X(n));r=e||void 0,a.$validate()}),a.$validators.pattern=function(e,t){return a.$isEmpty(t)||_(r)||r.test(t)}}}}},ns=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var a=-1;n.$observe("maxlength",function(e){var t=u(e);a=isNaN(t)?-1:t,i.$validate()}),i.$validators.maxlength=function(e,t){return a<0||i.$isEmpty(t)||t.length<=a}}}}},is=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var a=0;n.$observe("minlength",function(e){a=u(e)||0,i.$validate()}),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length>=a}}}}};return e.angular.bootstrap?void(e.console&&console.log("WARNING: Tried to load angular more than once.")):(le(),ye(Gi),Gi.module("ngLocale",[],["$provide",function(e){function t(e){e+="";var t=e.indexOf(".");return t==-1?0:e.length-t-1}function n(e,n){var i=n;void 0===i&&(i=Math.min(t(e),3));var a=Math.pow(10,i),r=(e*a|0)%a;return{v:i,f:r}}var i={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var a=0|e,r=n(e,t);return 1==a&&0==r.v?i.ONE:i.OTHER}})}]),void Fi(e.document).ready(function(){ie(e.document,ae)}))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),function(e,t){"use strict";function n(e,t){if(s(e)){t=t||[];for(var n=0,i=e.length;n<i;n++)t[n]=e[n]}else if(l(e)){t=t||{};for(var a in e)"$"===a.charAt(0)&&"$"===a.charAt(1)||(t[a]=e[a])}return t||e}function i(){function e(e,n){return t.extend(Object.create(e),n)}function i(e,t){var n=t.caseInsensitiveMatch,i={originalPath:e,regexp:e},a=i.keys=[];return e=e.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[\?\*])?/g,function(e,t,n,i){var r="?"===i||"*?"===i?"?":null,o="*"===i||"*?"===i?"*":null;return a.push({name:n,optional:!!r}),t=t||"",""+(r?"":t)+"(?:"+(r?t:"")+(o&&"(.+?)"||"([^/]+)")+(r||"")+")"+(r||"")}).replace(/([\/$\*])/g,"\\$1"),i.regexp=new RegExp("^"+e+"$",n?"i":""),i}var a={};this.when=function(e,r){var o=n(r);if(t.isUndefined(o.reloadOnSearch)&&(o.reloadOnSearch=!0),t.isUndefined(o.caseInsensitiveMatch)&&(o.caseInsensitiveMatch=this.caseInsensitiveMatch),a[e]=t.extend(o,e&&i(e,o)),e){var s="/"==e[e.length-1]?e.substr(0,e.length-1):e+"/";a[s]=t.extend({redirectTo:e},i(s,o))}return this},this.caseInsensitiveMatch=!1,this.otherwise=function(e){return"string"==typeof e&&(e={redirectTo:e}),this.when(null,e),this},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce",function(n,i,r,o,s,l,c){function u(e,t){var n=t.keys,i={};if(!t.regexp)return null;var a=t.regexp.exec(e);if(!a)return null;for(var r=1,o=a.length;r<o;++r){var s=n[r-1],l=a[r];s&&l&&(i[s.name]=l)}return i}function p(e){var i=w.current;v=g(),y=v&&i&&v.$$route===i.$$route&&t.equals(v.pathParams,i.pathParams)&&!v.reloadOnSearch&&!b,y||!i&&!v||n.$broadcast("$routeChangeStart",v,i).defaultPrevented&&e&&e.preventDefault()}function f(){var e=w.current,a=v;y?(e.params=a.params,t.copy(e.params,r),n.$broadcast("$routeUpdate",e)):(a||e)&&(b=!1,w.current=a,a&&a.redirectTo&&(t.isString(a.redirectTo)?i.path(_(a.redirectTo,a.params)).search(a.params).replace():i.url(a.redirectTo(a.pathParams,i.path(),i.search())).replace()),o.when(a).then(m).then(function(i){a==w.current&&(a&&(a.locals=i,t.copy(a.params,r)),n.$broadcast("$routeChangeSuccess",a,e))},function(t){a==w.current&&n.$broadcast("$routeChangeError",a,e,t)}))}function m(e){if(e){var n=t.extend({},e.resolve);t.forEach(n,function(e,i){n[i]=t.isString(e)?s.get(e):s.invoke(e,null,null,i)});var i=h(e);return t.isDefined(i)&&(n.$template=i),o.all(n)}}function h(e){var n,i;return t.isDefined(n=e.template)?t.isFunction(n)&&(n=n(e.params)):t.isDefined(i=e.templateUrl)&&(t.isFunction(i)&&(i=i(e.params)),t.isDefined(i)&&(e.loadedTemplateUrl=c.valueOf(i),n=l(i))),n}function g(){var n,r;return t.forEach(a,function(a,o){!r&&(n=u(i.path(),a))&&(r=e(a,{params:t.extend({},i.search(),n),pathParams:n}),r.$$route=a)}),r||a[null]&&e(a[null],{params:{},pathParams:{}})}function _(e,n){var i=[];return t.forEach((e||"").split(":"),function(e,t){if(0===t)i.push(e);else{var a=e.match(/(\w+)(?:[?*])?(.*)/),r=a[1];i.push(n[r]),i.push(a[2]||""),delete n[r]}}),i.join("")}var v,y,b=!1,w={routes:a,reload:function(){b=!0;var e={defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0,b=!1}};n.$evalAsync(function(){p(e),e.defaultPrevented||f()})},updateParams:function(e){if(!this.current||!this.current.$$route)throw d("norout","Tried updating route when with no current route");e=t.extend({},this.current.params,e),i.path(_(this.current.$$route.originalPath,e)),i.search(e)}};return n.$on("$locationChangeStart",p),n.$on("$locationChangeSuccess",f),w}]}function a(){this.$get=function(){return{}}}function r(e,n,i){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,r,o,s,l){function c(){f&&(i.cancel(f),f=null),u&&(u.$destroy(),u=null),p&&(f=i.leave(p),f.then(function(){f=null}),p=null)}function d(){var o=e.current&&e.current.locals,s=o&&o.$template;if(t.isDefined(s)){var d=a.$new(),f=e.current,g=l(d,function(e){i.enter(e,null,p||r).then(function(){!t.isDefined(m)||m&&!a.$eval(m)||n()}),c()});p=g,u=f.scope=d,u.$emit("$viewContentLoaded"),u.$eval(h)}else c()}var u,p,f,m=o.autoscroll,h=o.onload||"";a.$on("$routeChangeSuccess",d),d()}}}function o(e,t,n){return{restrict:"ECA",priority:-400,link:function(i,a){var r=n.current,o=r.locals;a.html(o.$template);var s=e(a.contents());if(r.controller){o.$scope=i;var l=t(r.controller,o);r.controllerAs&&(i[r.controllerAs]=l),a.data("$ngControllerController",l),a.children().data("$ngControllerController",l)}i[r.resolveAs||"$resolve"]=o,s(i)}}}var s=t.isArray,l=t.isObject,c=t.module("ngRoute",["ng"]).provider("$route",i),d=t.$$minErr("ngRoute");c.provider("$routeParams",a),c.directive("ngView",r),c.directive("ngView",o),r.$inject=["$route","$anchorScroll","$animate"],o.$inject=["$compile","$controller","$route"]}(window,window.angular),function(e,t){"use strict";function n(e,t,n){if(!e)throw he("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function i(e,t){return e||t?e?t?(j(e)&&(e=e.join(" ")),j(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function a(e){var t={};return e&&(e.to||e.from)&&(t.to=e.to,t.from=e.from),t}function r(e,t,n){var i="";return e=j(e)?e:e&&V(e)&&e.length?e.split(/\s+/):[],H(e,function(e,a){e&&e.length>0&&(i+=a>0?" ":"",i+=n?t+e:e+t)}),i}function o(e,t){var n=e.indexOf(t);t>=0&&e.splice(n,1)}function s(e){if(e instanceof B)switch(e.length){case 0:return e;case 1:if(e[0].nodeType===Y)return e;break;default:return B(l(e))}if(e.nodeType===Y)return B(e)}function l(e){if(!e[0])return e;for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType==Y)return n}}function c(e,t,n){H(t,function(t){e.addClass(t,n)})}function d(e,t,n){H(t,function(t){e.removeClass(t,n)})}function u(e){return function(t,n){n.addClass&&(c(e,t,n.addClass),n.addClass=null),n.removeClass&&(d(e,t,n.removeClass),n.removeClass=null)}}function p(e){if(e=e||{},!e.$$prepared){var t=e.domOperation||L;e.domOperation=function(){e.$$domOperationFired=!0,t(),t=L},e.$$prepared=!0}return e}function f(e,t){m(e,t),h(e,t)}function m(e,t){t.from&&(e.css(t.from),t.from=null)}function h(e,t){t.to&&(e.css(t.to),t.to=null)}function g(e,t,n){var i=t.options||{},a=n.options||{},r=(i.addClass||"")+" "+(a.addClass||""),o=(i.removeClass||"")+" "+(a.removeClass||""),s=_(e.attr("class"),r,o);a.preparationClasses&&(i.preparationClasses=S(a.preparationClasses,i.preparationClasses),delete a.preparationClasses);var l=i.domOperation!==L?i.domOperation:null;return U(i,a),l&&(i.domOperation=l),s.addClass?i.addClass=s.addClass:i.addClass=null,s.removeClass?i.removeClass=s.removeClass:i.removeClass=null,t.addClass=i.addClass,t.removeClass=i.removeClass,i}function _(e,t,n){function i(e){V(e)&&(e=e.split(" "));var t={};return H(e,function(e){e.length&&(t[e]=!0)}),t}var a=1,r=-1,o={};e=i(e),t=i(t),H(t,function(e,t){o[t]=a}),n=i(n),H(n,function(e,t){o[t]=o[t]===a?null:r});var s={addClass:"",removeClass:""};return H(o,function(t,n){var i,o;t===a?(i="addClass",o=!e[n]):t===r&&(i="removeClass",o=e[n]),o&&(s[i].length&&(s[i]+=" "),s[i]+=n)}),s}function v(e){return e instanceof t.element?e[0]:e}function y(e,t,n){var i="";t&&(i=r(t,Z,!0)),n.addClass&&(i=S(i,r(n.addClass,X))),n.removeClass&&(i=S(i,r(n.removeClass,J))),i.length&&(n.preparationClasses=i,e.addClass(i))}function b(e,t){t.preparationClasses&&(e.removeClass(t.preparationClasses),t.preparationClasses=null),t.activeClasses&&(e.removeClass(t.activeClasses),t.activeClasses=null)}function w(e,t){var n=t?"-"+t+"s":"";return M(e,[fe,n]),[fe,n]}function k(e,t){var n=t?"paused":"",i=O+ce;return M(e,[i,n]),[i,n]}function M(e,t){var n=t[0],i=t[1];e.style[n]=i}function S(e,t){return e?t?e+" "+t:e:t}function A(e){return[pe,e+"s"]}function C(e,t){var n=t?ue:fe;return[n,e+"s"]}function T(e,t,n){var i=Object.create(null),a=e.getComputedStyle(t)||{};return H(n,function(e,t){var n=a[e];if(n){var r=n.charAt(0);("-"===r||"+"===r||r>=0)&&(n=E(n)),0===n&&(n=null),i[t]=n}}),i}function E(e){var t=0,n=e.split(/\s*,\s*/);return H(n,function(e){"s"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e}),t}function $(e){return 0===e||null!=e}function I(e,t){var n=D,i=e+"s";return t?n+=ae:i+=" linear all",[n,i]}function x(){var e=Object.create(null);return{flush:function(){e=Object.create(null)},count:function(t){var n=e[t];return n?n.total:0},get:function(t){var n=e[t];return n&&n.value},put:function(t,n){e[t]?e[t].total++:e[t]={total:1,value:n}}}}function P(e,t,n){H(n,function(n){e[n]=W(e[n])?e[n]:t.style.getPropertyValue(n)})}var D,R,O,N,L=t.noop,F=t.copy,U=t.extend,B=t.element,H=t.forEach,j=t.isArray,V=t.isString,q=t.isObject,z=t.isUndefined,W=t.isDefined,G=t.isFunction,K=t.isElement,Y=1,X="-add",J="-remove",Z="ng-",Q="-active",ee="-prepare",te="ng-animate",ne="$$ngAnimateChildren",ie="";z(e.ontransitionend)&&W(e.onwebkittransitionend)?(ie="-webkit-",D="WebkitTransition",R="webkitTransitionEnd transitionend"):(D="transition",R="transitionend"),z(e.onanimationend)&&W(e.onwebkitanimationend)?(ie="-webkit-",O="WebkitAnimation",N="webkitAnimationEnd animationend"):(O="animation",N="animationend");var ae="Duration",re="Property",oe="Delay",se="TimingFunction",le="IterationCount",ce="PlayState",de=9999,ue=O+oe,pe=O+ae,fe=D+oe,me=D+ae,he=t.$$minErr("ng"),ge=["$$rAF",function(e){function t(e){i=i.concat(e),n()}function n(){if(i.length){for(var t=i.shift(),r=0;r<t.length;r++)t[r]();a||e(function(){a||n()})}}var i,a;return i=t.queue=[],t.waitUntilQuiet=function(t){a&&a(),a=e(function(){a=null,t(),n()})},t}],_e=["$interpolate",function(e){return{link:function(n,i,a){function r(e){e="on"===e||"true"===e,i.data(ne,e)}var o=a.ngAnimateChildren;t.isString(o)&&0===o.length?i.data(ne,!0):(r(e(o)(n)),a.$observe("ngAnimateChildren",r))}}}],ve="$$animateCss",ye=1e3,be=3,we=1.5,ke={
transitionDuration:me,transitionDelay:fe,transitionProperty:D+re,animationDuration:pe,animationDelay:ue,animationIterationCount:O+le},Me={transitionDuration:me,transitionDelay:fe,animationDuration:pe,animationDelay:ue},Se=["$animateProvider",function(e){var t=x(),n=x();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(e,i,s,l,c,d,g,_){function y(e,t){var n="$$ngAnimateParentKey",i=e.parentNode,a=i[n]||(i[n]=++B);return a+"-"+e.getAttribute("class")+"-"+t}function b(n,i,a,r){var o=t.get(a);return o||(o=T(e,n,r),"infinite"===o.animationIterationCount&&(o.animationIterationCount=1)),t.put(a,o),o}function S(a,o,s,l){var c;if(t.count(s)>0&&(c=n.get(s),!c)){var d=r(o,"-stagger");i.addClass(a,d),c=T(e,a,l),c.animationDuration=Math.max(c.animationDuration,0),c.transitionDuration=Math.max(c.transitionDuration,0),i.removeClass(a,d),n.put(s,c)}return c||{}}function E(e){V.push(e),g.waitUntilQuiet(function(){t.flush(),n.flush();for(var e=c(),i=0;i<V.length;i++)V[i](e);V.length=0})}function x(e,t,n){var i=b(e,t,n,ke),a=i.animationDelay,r=i.transitionDelay;return i.maxDelay=a&&r?Math.max(a,r):a||r,i.maxDuration=Math.max(i.animationDuration*i.animationIterationCount,i.transitionDuration),i}var U=u(i),B=0,V=[];return function(e,n){function c(){g()}function u(){g(!0)}function g(t){if(!(G||Y&&K)){G=!0,K=!1,q.$$skipPreparationClasses||i.removeClass(e,ke),i.removeClass(e,Ae),k(W,!1),w(W,!1),H(ce,function(e){W.style[e[0]]=""}),U(e,q),f(e,q),Object.keys(z).length&&H(z,function(e,t){e?W.style.setProperty(t,e):W.style.removeProperty(t)}),q.onDone&&q.onDone(),fe&&fe.length&&e.off(fe.join(" "),B);var n=e.data(ve);n&&(l.cancel(n[0].timer),e.removeData(ve)),ee&&ee.complete(!t)}}function b(e){Ue.blockTransition&&w(W,e),Ue.blockKeyframeAnimation&&k(W,!!e)}function T(){return ee=new s({end:c,cancel:u}),E(L),g(),{$$willAnimate:!1,start:function(){return ee},end:c}}function B(e){e.stopPropagation();var t=e.originalEvent||e,n=t.$manualTimeStamp||Date.now(),i=parseFloat(t.elapsedTime.toFixed(be));Math.max(n-le,0)>=ie&&i>=ae&&(Y=!0,g())}function V(){function t(){if(!G){if(b(!1),H(ce,function(e){var t=e[0],n=e[1];W.style[t]=n}),U(e,q),i.addClass(e,Ae),Ue.recalculateTimingStyles){if(Se=W.className+" "+ke,Ee=y(W,Se),Le=x(W,Se,Ee),Fe=Le.maxDelay,ne=Math.max(Fe,0),ae=Le.maxDuration,0===ae)return void g();Ue.hasTransitions=Le.transitionDuration>0,Ue.hasAnimations=Le.animationDuration>0}if(Ue.applyAnimationDelay&&(Fe="boolean"!=typeof q.delay&&$(q.delay)?parseFloat(q.delay):Fe,ne=Math.max(Fe,0),Le.animationDelay=Fe,Be=C(Fe,!0),ce.push(Be),W.style[Be[0]]=Be[1]),ie=ne*ye,oe=ae*ye,q.easing){var t,a=q.easing;Ue.hasTransitions&&(t=D+se,ce.push([t,a]),W.style[t]=a),Ue.hasAnimations&&(t=O+se,ce.push([t,a]),W.style[t]=a)}Le.transitionDuration&&fe.push(R),Le.animationDuration&&fe.push(N),le=Date.now();var r=ie+we*oe,o=le+r,s=e.data(ve)||[],c=!0;if(s.length){var d=s[0];c=o>d.expectedEndTime,c?l.cancel(d.timer):s.push(g)}if(c){var u=l(n,r,!1);s[0]={timer:u,expectedEndTime:o},s.push(g),e.data(ve,s)}fe.length&&e.on(fe.join(" "),B),q.to&&(q.cleanupStyles&&P(z,W,Object.keys(q.to)),h(e,q))}}function n(){var t=e.data(ve);if(t){for(var n=1;n<t.length;n++)t[n]();e.removeData(ve)}}if(!G){if(!W.parentNode)return void g();var a=function(e){if(Y)K&&e&&(K=!1,g());else if(K=!e,Le.animationDuration){var t=k(W,K);K?ce.push(t):o(ce,t)}},r=Oe>0&&(Le.transitionDuration&&0===$e.transitionDuration||Le.animationDuration&&0===$e.animationDuration)&&Math.max($e.animationDelay,$e.transitionDelay);r?l(t,Math.floor(r*Oe*ye),!1):t(),te.resume=function(){a(!0)},te.pause=function(){a(!1)}}}var q=n||{};q.$$prepared||(q=p(F(q)));var z={},W=v(e);if(!W||!W.parentNode||!_.enabled())return T();var G,K,Y,ee,te,ne,ie,ae,oe,le,ce=[],ue=e.attr("class"),pe=a(q),fe=[];if(0===q.duration||!d.animations&&!d.transitions)return T();var me=q.event&&j(q.event)?q.event.join(" "):q.event,he=me&&q.structural,ge="",_e="";he?ge=r(me,Z,!0):me&&(ge=me),q.addClass&&(_e+=r(q.addClass,X)),q.removeClass&&(_e.length&&(_e+=" "),_e+=r(q.removeClass,J)),q.applyClassesEarly&&_e.length&&U(e,q);var ke=[ge,_e].join(" ").trim(),Se=ue+" "+ke,Ae=r(ke,Q),Ce=pe.to&&Object.keys(pe.to).length>0,Te=(q.keyframeStyle||"").length>0;if(!Te&&!Ce&&!ke)return T();var Ee,$e;if(q.stagger>0){var Ie=parseFloat(q.stagger);$e={transitionDelay:Ie,animationDelay:Ie,transitionDuration:0,animationDuration:0}}else Ee=y(W,Se),$e=S(W,ke,Ee,Me);q.$$skipPreparationClasses||i.addClass(e,ke);var xe;if(q.transitionStyle){var Pe=[D,q.transitionStyle];M(W,Pe),ce.push(Pe)}if(q.duration>=0){xe=W.style[D].length>0;var De=I(q.duration,xe);M(W,De),ce.push(De)}if(q.keyframeStyle){var Re=[O,q.keyframeStyle];M(W,Re),ce.push(Re)}var Oe=$e?q.staggerIndex>=0?q.staggerIndex:t.count(Ee):0,Ne=0===Oe;Ne&&!q.skipBlocking&&w(W,de);var Le=x(W,Se,Ee),Fe=Le.maxDelay;ne=Math.max(Fe,0),ae=Le.maxDuration;var Ue={};if(Ue.hasTransitions=Le.transitionDuration>0,Ue.hasAnimations=Le.animationDuration>0,Ue.hasTransitionAll=Ue.hasTransitions&&"all"==Le.transitionProperty,Ue.applyTransitionDuration=Ce&&(Ue.hasTransitions&&!Ue.hasTransitionAll||Ue.hasAnimations&&!Ue.hasTransitions),Ue.applyAnimationDuration=q.duration&&Ue.hasAnimations,Ue.applyTransitionDelay=$(q.delay)&&(Ue.applyTransitionDuration||Ue.hasTransitions),Ue.applyAnimationDelay=$(q.delay)&&Ue.hasAnimations,Ue.recalculateTimingStyles=_e.length>0,(Ue.applyTransitionDuration||Ue.applyAnimationDuration)&&(ae=q.duration?parseFloat(q.duration):ae,Ue.applyTransitionDuration&&(Ue.hasTransitions=!0,Le.transitionDuration=ae,xe=W.style[D+re].length>0,ce.push(I(ae,xe))),Ue.applyAnimationDuration&&(Ue.hasAnimations=!0,Le.animationDuration=ae,ce.push(A(ae)))),0===ae&&!Ue.recalculateTimingStyles)return T();if(null!=q.delay){var Be;"boolean"!=typeof q.delay&&(Be=parseFloat(q.delay),ne=Math.max(Be,0)),Ue.applyTransitionDelay&&ce.push(C(Be)),Ue.applyAnimationDelay&&ce.push(C(Be,!0))}return null==q.duration&&Le.transitionDuration>0&&(Ue.recalculateTimingStyles=Ue.recalculateTimingStyles||Ne),ie=ne*ye,oe=ae*ye,q.skipBlocking||(Ue.blockTransition=Le.transitionDuration>0,Ue.blockKeyframeAnimation=Le.animationDuration>0&&$e.animationDelay>0&&0===$e.animationDuration),q.from&&(q.cleanupStyles&&P(z,W,Object.keys(q.from)),m(e,q)),Ue.blockTransition||Ue.blockKeyframeAnimation?b(ae):q.skipBlocking||w(W,!1),{$$willAnimate:!0,end:c,start:function(){if(!G)return te={end:c,cancel:u,resume:null,pause:null},ee=new s(te),E(V),ee}}}}]}],Ae=["$$animationProvider",function(e){function t(e){return e.parentNode&&11===e.parentNode.nodeType}e.drivers.push("$$animateCssDriver");var n="ng-animate-shim",i="ng-anchor",a="ng-anchor-out",r="ng-anchor-in";this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(e,o,s,l,c,d,p){function f(e){return e.replace(/\bng-\S+\b/g,"")}function m(e,t){return V(e)&&(e=e.split(" ")),V(t)&&(t=t.split(" ")),e.filter(function(e){return t.indexOf(e)===-1}).join(" ")}function h(t,o,l){function c(e){var t={},n=v(e).getBoundingClientRect();return H(["width","height","top","left"],function(e){var i=n[e];switch(e){case"top":i+=y.scrollTop;break;case"left":i+=y.scrollLeft}t[e]=Math.floor(i)+"px"}),t}function d(){var t=e(g,{addClass:a,delay:!0,from:c(o)});return t.$$willAnimate?t:null}function u(e){return e.attr("class")||""}function p(){var t=f(u(l)),n=m(t,_),i=m(_,t),o=e(g,{to:c(l),addClass:r+" "+n,removeClass:a+" "+i,delay:!0});return o.$$willAnimate?o:null}function h(){g.remove(),o.removeClass(n),l.removeClass(n)}var g=B(v(o).cloneNode(!0)),_=f(u(g));o.addClass(n),l.addClass(n),g.addClass(i),w.append(g);var b,k=d();if(!k&&(b=p(),!b))return h();var M=k||b;return{start:function(){function e(){n&&n.end()}var t,n=M.start();return n.done(function(){return n=null,!b&&(b=p())?(n=b.start(),n.done(function(){n=null,h(),t.complete()}),n):(h(),void t.complete())}),t=new s({end:e,cancel:e})}}}function g(e,t,n,i){var a=_(e,L),r=_(t,L),o=[];if(H(i,function(e){var t=e.out,i=e["in"],a=h(n,t,i);a&&o.push(a)}),a||r||0!==o.length)return{start:function(){function e(){H(t,function(e){e.end()})}var t=[];a&&t.push(a.start()),r&&t.push(r.start()),H(o,function(e){t.push(e.start())});var n=new s({end:e,cancel:e});return s.all(t,function(e){n.complete(e)}),n}}}function _(t){var n=t.element,i=t.options||{};t.structural&&(i.event=t.event,i.structural=!0,i.applyClassesEarly=!0,"leave"===t.event&&(i.onDone=i.domOperation)),i.preparationClasses&&(i.event=S(i.event,i.preparationClasses));var a=e(n,i);return a.$$willAnimate?a:null}if(!c.animations&&!c.transitions)return L;var y=p[0].body,b=v(l),w=B(t(b)||y.contains(b)?b:y);u(d);return function(e){return e.from&&e.to?g(e.from,e.to,e.classes,e.anchors):_(e)}}]}],Ce=["$animateProvider",function(e){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(t,n,i){function a(n){n=j(n)?n:n.split(" ");for(var i=[],a={},r=0;r<n.length;r++){var o=n[r],s=e.$$registeredAnimations[o];s&&!a[o]&&(i.push(t.get(s)),a[o]=!0)}return i}var r=u(i);return function(e,t,i,o){function s(){o.domOperation(),r(e,o)}function l(){m=!0,s(),f(e,o)}function c(e,t,i,a,r){var o;switch(i){case"animate":o=[t,a.from,a.to,r];break;case"setClass":o=[t,_,v,r];break;case"addClass":o=[t,_,r];break;case"removeClass":o=[t,v,r];break;default:o=[t,r]}o.push(a);var s=e.apply(e,o);if(s)if(G(s.start)&&(s=s.start()),s instanceof n)s.done(r);else if(G(s))return s;return L}function d(e,t,i,a,r){var o=[];return H(a,function(a){var s=a[r];s&&o.push(function(){var a,r,o=!1,l=function(e){o||(o=!0,(r||L)(e),a.complete(!e))};return a=new n({end:function(){l()},cancel:function(){l(!0)}}),r=c(s,e,t,i,function(e){var t=e===!1;l(t)}),a})}),o}function u(e,t,i,a,r){var o=d(e,t,i,a,r);if(0===o.length){var s,l;"beforeSetClass"===r?(s=d(e,"removeClass",i,a,"beforeRemoveClass"),l=d(e,"addClass",i,a,"beforeAddClass")):"setClass"===r&&(s=d(e,"removeClass",i,a,"removeClass"),l=d(e,"addClass",i,a,"addClass")),s&&(o=o.concat(s)),l&&(o=o.concat(l))}if(0!==o.length)return function(e){var t=[];return o.length&&H(o,function(e){t.push(e())}),t.length?n.all(t,e):e(),function(e){H(t,function(t){e?t.cancel():t.end()})}}}var m=!1;3===arguments.length&&q(i)&&(o=i,i=null),o=p(o),i||(i=e.attr("class")||"",o.addClass&&(i+=" "+o.addClass),o.removeClass&&(i+=" "+o.removeClass));var h,g,_=o.addClass,v=o.removeClass,y=a(i);if(y.length){var b,w;"leave"==t?(w="leave",b="afterLeave"):(w="before"+t.charAt(0).toUpperCase()+t.substr(1),b=t),"enter"!==t&&"move"!==t&&(h=u(e,t,o,y,w)),g=u(e,t,o,y,b)}if(h||g){var k;return{$$willAnimate:!0,end:function(){return k?k.end():(l(),k=new n,k.complete(!0)),k},start:function(){function e(e){l(e),k.complete(e)}function t(t){m||((i||L)(t),e(t))}if(k)return k;k=new n;var i,a=[];return h&&a.push(function(e){i=h(e)}),a.length?a.push(function(e){s(),e(!0)}):s(),g&&a.push(function(e){i=g(e)}),k.setHost({end:function(){t()},cancel:function(){t(!0)}}),n.chain(a,e),k}}}}}]}],Te=["$$animationProvider",function(e){e.drivers.push("$$animateJsDriver"),this.$get=["$$animateJs","$$AnimateRunner",function(e,t){function n(t){var n=t.element,i=t.event,a=t.options,r=t.classes;return e(n,i,r,a)}return function(e){if(e.from&&e.to){var i=n(e.from),a=n(e.to);if(!i&&!a)return;return{start:function(){function e(){return function(){H(r,function(e){e.end()})}}function n(e){o.complete(e)}var r=[];i&&r.push(i.start()),a&&r.push(a.start()),t.all(r,n);var o=new t({end:e(),cancel:e()});return o}}}return n(e)}}]}],Ee="data-ng-animate",$e="$ngAnimatePin",Ie=["$animateProvider",function(i){function a(e){if(!e)return null;var t=e.split(h),n=Object.create(null);return H(t,function(e){n[e]=!0}),n}function r(e,t){if(e&&t){var n=a(t);return e.split(h).some(function(e){return n[e]})}}function o(e,t,n,i){return _[e].some(function(e){return e(t,n,i)})}function c(e,t){var n=(e.addClass||"").length>0,i=(e.removeClass||"").length>0;return t?n&&i:n||i}var d=1,m=2,h=" ",_=this.rules={skip:[],cancel:[],join:[]};_.join.push(function(e,t,n){return!t.structural&&c(t)}),_.skip.push(function(e,t,n){return!t.structural&&!c(t)}),_.skip.push(function(e,t,n){return"leave"==n.event&&t.structural}),_.skip.push(function(e,t,n){return n.structural&&n.state===m&&!t.structural}),_.cancel.push(function(e,t,n){return n.structural&&t.structural}),_.cancel.push(function(e,t,n){return n.state===m&&t.structural}),_.cancel.push(function(e,t,n){if(n.structural)return!1;var i=t.addClass,a=t.removeClass,o=n.addClass,s=n.removeClass;return!(z(i)&&z(a)||z(o)&&z(s))&&(r(i,s)||r(a,o))}),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(a,r,h,_,w,k,M,S,A,C){function T(){var e=!1;return function(t){e?t():r.$$postDigest(function(){e=!0,t()})}}function E(e,t){return g(e,t,{})}function $(e,t,n){var i=v(t),a=v(e),r=[],o=Q[n];return o&&H(o,function(e){ae.call(e.node,i)?r.push(e.callback):"leave"===n&&ae.call(e.node,a)&&r.push(e.callback)}),r}function I(e,t,n){var i=l(t);return e.filter(function(e){var t=e.node===i&&(!n||e.callback===n);return!t})}function x(e,t){"close"!==e||t[0].parentNode||re.off(t)}function P(e,t,n){function i(t,n,i,r){A(function(){var t=$(h,e,n);t.length?a(function(){H(t,function(t){t(e,i,r)}),x(i,e)}):x(i,e)}),t.progress(n,i,r)}function l(t){b(e,w),ie(e,w),f(e,w),w.domOperation(),S.complete(!t)}var u,h,w=F(n);e=s(e),e&&(u=v(e),h=e.parent()),w=p(w);var S=new M,A=T();if(j(w.addClass)&&(w.addClass=w.addClass.join(" ")),w.addClass&&!V(w.addClass)&&(w.addClass=null),j(w.removeClass)&&(w.removeClass=w.removeClass.join(" ")),w.removeClass&&!V(w.removeClass)&&(w.removeClass=null),w.from&&!q(w.from)&&(w.from=null),w.to&&!q(w.to)&&(w.to=null),!u)return l(),S;var C=[u.className,w.addClass,w.removeClass].join(" ");if(!te(C))return l(),S;var I=["enter","move","leave"].indexOf(t)>=0,P=_[0].hidden,O=!J||P||X.get(u),U=!O&&G.get(u)||{},B=!!U.state;if(O||B&&U.state==d||(O=!N(e,h,t)),O)return P&&i(S,t,"start"),l(),P&&i(S,t,"close"),S;I&&D(e);var z={structural:I,element:e,event:t,addClass:w.addClass,removeClass:w.removeClass,close:l,options:w,runner:S};if(B){var W=o("skip",e,z,U);if(W)return U.state===m?(l(),S):(g(e,U,z),U.runner);var K=o("cancel",e,z,U);if(K)if(U.state===m)U.runner.end();else{if(!U.structural)return g(e,U,z),U.runner;U.close()}else{var Y=o("join",e,z,U);if(Y){if(U.state!==m)return y(e,I?t:null,w),t=z.event=U.event,w=g(e,U,z),U.runner;E(e,z)}}}else E(e,z);var Z=z.structural;if(Z||(Z="animate"===z.event&&Object.keys(z.options.to||{}).length>0||c(z)),!Z)return l(),R(e),S;var Q=(U.counter||0)+1;return z.counter=Q,L(e,d,z),r.$$postDigest(function(){var n=G.get(u),a=!n;n=n||{};var r=e.parent()||[],o=r.length>0&&("animate"===n.event||n.structural||c(n));if(a||n.counter!==Q||!o)return a&&(ie(e,w),f(e,w)),(a||I&&n.event!==t)&&(w.domOperation(),S.end()),void(o||R(e));t=!n.structural&&c(n,!0)?"setClass":n.event,L(e,m);var s=k(e,t,n.options);S.setHost(s),i(S,t,"start",{}),s.done(function(n){l(!n);var a=G.get(u);a&&a.counter===Q&&R(v(e)),i(S,t,"close",{})})}),S}function D(e){var t=v(e),n=t.querySelectorAll("["+Ee+"]");H(n,function(e){var t=parseInt(e.getAttribute(Ee)),n=G.get(e);if(n)switch(t){case m:n.runner.end();case d:G.remove(e)}})}function R(e){var t=v(e);t.removeAttribute(Ee),G.remove(t)}function O(e,t){return v(e)===v(t)}function N(e,t,n){var i,a=B(_[0].body),r=O(e,a)||"HTML"===e[0].nodeName,o=O(e,h),s=!1,l=X.get(v(e)),c=B.data(e[0],$e);for(c&&(t=c),t=v(t);t&&(o||(o=O(t,h)),t.nodeType===Y);){var d=G.get(t)||{};if(!s){var u=X.get(t);if(u===!0&&l!==!1){l=!0;break}u===!1&&(l=!1),s=d.structural}if(z(i)||i===!0){var p=B.data(t,ne);W(p)&&(i=p)}if(s&&i===!1)break;if(r||(r=O(t,a)),r&&o)break;t=o||!(c=B.data(t,$e))?t.parentNode:v(c)}var f=(!s||i)&&l!==!0;return f&&o&&r}function L(e,t,n){n=n||{},n.state=t;var i=v(e);i.setAttribute(Ee,t);var a=G.get(i),r=a?U(a,n):n;G.put(i,r)}var G=new w,X=new w,J=null,Z=r.$watch(function(){return 0===S.totalPendingRequests},function(e){e&&(Z(),r.$$postDigest(function(){r.$$postDigest(function(){null===J&&(J=!0)})}))}),Q={},ee=i.classNameFilter(),te=ee?function(e){return ee.test(e)}:function(){return!0},ie=u(A),ae=e.Node.prototype.contains||function(e){return this===e||!!(16&this.compareDocumentPosition(e))},re={on:function(e,t,n){var i=l(t);Q[e]=Q[e]||[],Q[e].push({node:i,callback:n}),B(t).on("$destroy",function(){var a=G.get(i);a||re.off(e,t,n)})},off:function(e,n,i){if(1!==arguments.length||t.isString(arguments[0])){var a=Q[e];a&&(Q[e]=1===arguments.length?null:I(a,n,i))}else{n=arguments[0];for(var r in Q)Q[r]=I(Q[r],n)}},pin:function(e,t){n(K(e),"element","not an element"),n(K(t),"parentElement","not an element"),e.data($e,t)},push:function(e,t,n,i){return n=n||{},n.domOperation=i,P(e,t,n)},enabled:function(e,t){var n=arguments.length;if(0===n)t=!!J;else{var i=K(e);if(i){var a=v(e),r=X.get(a);1===n?t=!r:X.put(a,!t)}else t=J=!!e}return t}};return re}]}],xe=["$animateProvider",function(e){function t(e,t){e.data(s,t)}function n(e){e.removeData(s)}function a(e){return e.data(s)}var r="ng-animate-ref",o=this.drivers=[],s="$$animationRunner";this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(e,s,l,c,d,m){function h(e){function t(e){if(e.processed)return e;e.processed=!0;var n=e.domNode,i=n.parentNode;r.put(n,e);for(var o;i;){if(o=r.get(i)){o.processed||(o=t(o));break}i=i.parentNode}return(o||a).children.push(e),e}function n(e){var t,n=[],i=[];for(t=0;t<e.children.length;t++)i.push(e.children[t]);var a=i.length,r=0,o=[];for(t=0;t<i.length;t++){var s=i[t];a<=0&&(a=r,r=0,n.push(o),o=[]),o.push(s.fn),s.children.forEach(function(e){r++,i.push(e)}),a--}return o.length&&n.push(o),n}var i,a={children:[]},r=new d;for(i=0;i<e.length;i++){var o=e[i];r.put(o.domNode,e[i]={domNode:o.domNode,fn:o.fn,children:[]})}for(i=0;i<e.length;i++)t(e[i]);return n(a)}var g=[],_=u(e);return function(d,u,y){function b(e){var t="["+r+"]",n=e.hasAttribute(r)?[e]:e.querySelectorAll(t),i=[];return H(n,function(e){var t=e.getAttribute(r);t&&t.length&&i.push(e)}),i}function w(e){var t=[],n={};H(e,function(e,i){var a=e.element,o=v(a),s=e.event,l=["enter","move"].indexOf(s)>=0,c=e.structural?b(o):[];if(c.length){var d=l?"to":"from";H(c,function(e){var t=e.getAttribute(r);n[t]=n[t]||{},n[t][d]={animationID:i,element:B(e)}})}else t.push(e)});var i={},a={};return H(n,function(n,r){var o=n.from,s=n.to;if(!o||!s){var l=o?o.animationID:s.animationID,c=l.toString();return void(i[c]||(i[c]=!0,t.push(e[l])))}var d=e[o.animationID],u=e[s.animationID],p=o.animationID.toString();if(!a[p]){var f=a[p]={structural:!0,beforeStart:function(){d.beforeStart(),u.beforeStart()},close:function(){d.close(),u.close()},classes:k(d.classes,u.classes),from:d,to:u,anchors:[]};f.classes.length?t.push(f):(t.push(d),t.push(u))}a[p].anchors.push({out:o.element,"in":s.element})}),t}function k(e,t){e=e.split(" "),t=t.split(" ");for(var n=[],i=0;i<e.length;i++){var a=e[i];if("ng-"!==a.substring(0,3))for(var r=0;r<t.length;r++)if(a===t[r]){n.push(a);break}}return n.join(" ")}function M(e){for(var t=o.length-1;t>=0;t--){var n=o[t],i=l.get(n),a=i(e);if(a)return a}}function S(){d.addClass(te),x&&e.addClass(d,x),P&&(e.removeClass(d,P),P=null)}function A(e,t){function n(e){var n=a(e);n&&n.setHost(t)}e.from&&e.to?(n(e.from.element),n(e.to.element)):n(e.element)}function C(){var e=a(d);!e||"leave"===u&&y.$$domOperationFired||e.end()}function T(t){d.off("$destroy",C),n(d),_(d,y),f(d,y),y.domOperation(),x&&e.removeClass(d,x),d.removeClass(te),$.complete(!t)}y=p(y);var E=["enter","move","leave"].indexOf(u)>=0,$=new c({end:function(){T()},cancel:function(){T(!0)}});if(!o.length)return T(),$;t(d,$);var I=i(d.attr("class"),i(y.addClass,y.removeClass)),x=y.tempClasses;x&&(I+=" "+x,y.tempClasses=null);var P;return E&&(P="ng-"+u+ee,e.addClass(d,P)),g.push({element:d,classes:I,event:u,structural:E,options:y,beforeStart:S,close:T}),d.on("$destroy",C),g.length>1?$:(s.$$postDigest(function(){var e=[];H(g,function(t){a(t.element)?e.push(t):t.close()}),g.length=0;var t=w(e),n=[];H(t,function(e){n.push({domNode:v(e.from?e.from.element:e.element),fn:function(){e.beforeStart();var t,n=e.close,i=e.anchors?e.from.element||e.to.element:e.element;if(a(i)){var r=M(e);r&&(t=r.start)}if(t){var o=t();o.done(function(e){n(!e)}),A(e,o)}else n()}})}),m(h(n))}),$)}}]}],Pe=["$animate","$rootScope",function(e,t){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(t,n,i,a,r){var o,s;t.$watchCollection(i.ngAnimateSwap||i["for"],function(i){o&&e.leave(o),s&&(s.$destroy(),s=null),(i||0===i)&&(s=t.$new(),r(s,function(t){o=t,e.enter(t,null,n)}))})}}}];t.module("ngAnimate",[]).directive("ngAnimateSwap",Pe).directive("ngAnimateChildren",_e).factory("$$rAFScheduler",ge).provider("$$animateQueue",Ie).provider("$$animation",xe).provider("$animateCss",Se).provider("$$animateCssDriver",Ae).provider("$$animateJs",Ce).provider("$$animateJsDriver",Te)}(window,window.angular),function(e,t){"use strict";function n(){var e=!1;this.$get=["$$sanitizeUri",function(n){return e&&t.extend(k,b),function(e){var t=[];return r(e,l(t,function(e,t){return!/^unsafe:/.test(n(e,t))})),t.join("")}}],this.enableSvg=function(n){return t.isDefined(n)?(e=n,this):e}}function i(e){var n=[],i=l(n,t.noop);return i.chars(e),n.join("")}function a(e,n){var i,a={},r=e.split(",");for(i=0;i<r.length;i++)a[n?t.lowercase(r[i]):r[i]]=!0;return a}function r(t,n){null===t||void 0===t?t="":"string"!=typeof t&&(t=""+t),d.innerHTML=t;var i=5;do{if(0===i)throw u("uinput","Failed to sanitize html because the input is unstable");i--,e.document.documentMode&&c(d),t=d.innerHTML,d.innerHTML=t}while(t!==d.innerHTML);for(var a=d.firstChild;a;){switch(a.nodeType){case 1:n.start(a.nodeName.toLowerCase(),o(a.attributes));break;case 3:n.chars(a.textContent)}var r;if(!(r=a.firstChild)&&(1==a.nodeType&&n.end(a.nodeName.toLowerCase()),r=a.nextSibling,!r))for(;null==r&&(a=a.parentNode,a!==d);)r=a.nextSibling,1==a.nodeType&&n.end(a.nodeName.toLowerCase());a=r}for(;a=d.firstChild;)d.removeChild(a)}function o(e){for(var t={},n=0,i=e.length;n<i;n++){var a=e[n];t[a.name]=a.value}return t}function s(e){return e.replace(/&/g,"&amp;").replace(p,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(f,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function l(e,n){var i=!1,a=t.bind(e,e.push);return{start:function(e,r){e=t.lowercase(e),!i&&w[e]&&(i=e),i||k[e]!==!0||(a("<"),a(e),t.forEach(r,function(i,r){var o=t.lowercase(r),l="img"===e&&"src"===o||"background"===o;C[o]!==!0||M[o]===!0&&!n(i,l)||(a(" "),a(r),a('="'),a(s(i)),a('"'))}),a(">"))},end:function(e){e=t.lowercase(e),i||k[e]!==!0||m[e]===!0||(a("</"),a(e),a(">")),e==i&&(i=!1)},chars:function(e){i||a(s(e))}}}function c(t){if(t.nodeType===e.Node.ELEMENT_NODE)for(var n=t.attributes,i=0,a=n.length;i<a;i++){var r=n[i],o=r.name.toLowerCase();"xmlns:ns1"!==o&&0!==o.lastIndexOf("ns1:",0)||(t.removeAttributeNode(r),i--,a--)}var s=t.firstChild;s&&c(s),s=t.nextSibling,s&&c(s)}var d,u=t.$$minErr("$sanitize"),p=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=/([^\#-~ |!])/g,m=a("area,br,col,hr,img,wbr"),h=a("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),g=a("rp,rt"),_=t.extend({},g,h),v=t.extend({},h,a("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),y=t.extend({},g,a("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),b=a("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),w=a("script,style"),k=t.extend({},m,v,y,_),M=a("background,cite,href,longdesc,src,xlink:href"),S=a("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),A=a("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),C=t.extend({},M,A,S);!function(e){var t;if(!e.document||!e.document.implementation)throw u("noinert","Can't create an inert html document");t=e.document.implementation.createHTMLDocument("inert");var n=t.documentElement||t.getDocumentElement(),i=n.getElementsByTagName("body");if(1===i.length)d=i[0];else{var a=t.createElement("html");d=t.createElement("body"),a.appendChild(d),t.appendChild(a)}}(e),t.module("ngSanitize",[]).provider("$sanitize",n),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var n=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,a=/^mailto:/i,r=t.$$minErr("linky"),o=t.isString;return function(s,l,c){function d(e){e&&_.push(i(e))}function u(e,n){var i,a=h(e);_.push("<a ");for(i in a)_.push(i+'="'+a[i]+'" ');!t.isDefined(l)||"target"in a||_.push('target="',l,'" '),_.push('href="',e.replace(/"/g,"&quot;"),'">'),d(n),_.push("</a>")}if(null==s||""===s)return s;if(!o(s))throw r("notstring","Expected string but received: {0}",s);for(var p,f,m,h=t.isFunction(c)?c:t.isObject(c)?function(){return c}:function(){return{}},g=s,_=[];p=g.match(n);)f=p[0],p[2]||p[4]||(f=(p[3]?"http://":"mailto:")+f),m=p.index,d(g.substr(0,m)),u(f,p[0].replace(a,"")),g=g.substring(m+p[0].length);return d(g),e(_.join(""))}}])}(window,window.angular),function(e,t){"use strict";function n(e){return t.lowercase(e.nodeName||e[0]&&e[0].nodeName)}function i(e,n){var i=!1,a=!1;this.ngClickOverrideEnabled=function(r){return t.isDefined(r)?(r&&!a&&(a=!0,o.$$moduleName="ngTouch",n.directive("ngClick",o),e.decorator("ngClickDirective",["$delegate",function(e){if(i)e.shift();else for(var t=e.length-1;t>=0;){if("ngTouch"===e[t].$$moduleName){e.splice(t,1);break}t--}return e}])),i=r,this):i},this.$get=function(){return{ngClickOverrideEnabled:function(){return i}}}}function a(e,n,i){r.directive(e,["$parse","$swipe",function(a,r){var o=75,s=.3,l=30;return function(c,d,u){function p(e){if(!f)return!1;var t=Math.abs(e.y-f.y),i=(e.x-f.x)*n;return m&&t<o&&i>0&&i>l&&t/i<s}var f,m,h=a(u[e]),g=["touch"];t.isDefined(u.ngSwipeDisableMouse)||g.push("mouse"),r.bind(d,{start:function(e,t){f=e,m=!0},cancel:function(e){m=!1},end:function(e,t){p(e)&&c.$apply(function(){d.triggerHandler(i),h(c,{$event:t})})}},g)}}])}var r=t.module("ngTouch",[]);r.provider("$touch",i),i.$inject=["$provide","$compileProvider"],r.factory("$swipe",[function(){function e(e){var t=e.originalEvent||e,n=t.touches&&t.touches.length?t.touches:[t],i=t.changedTouches&&t.changedTouches[0]||n[0];return{x:i.clientX,y:i.clientY}}function n(e,n){var i=[];return t.forEach(e,function(e){var t=a[e][n];t&&i.push(t)}),i.join(" ")}var i=10,a={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(t,a,r){var o,s,l,c,d=!1;r=r||["mouse","touch"],t.on(n(r,"start"),function(t){l=e(t),d=!0,o=0,s=0,c=l,a.start&&a.start(l,t)});var u=n(r,"cancel");u&&t.on(u,function(e){d=!1,a.cancel&&a.cancel(e)}),t.on(n(r,"move"),function(t){if(d&&l){var n=e(t);if(o+=Math.abs(n.x-c.x),s+=Math.abs(n.y-c.y),c=n,!(o<i&&s<i))return s>o?(d=!1,void(a.cancel&&a.cancel(t))):(t.preventDefault(),void(a.move&&a.move(n,t)))}}),t.on(n(r,"end"),function(t){d&&(d=!1,a.end&&a.end(e(t),t))})}}}]);var o=["$parse","$timeout","$rootElement",function(e,i,a){function r(e,t,n,i){return Math.abs(e-n)<g&&Math.abs(t-i)<g}function o(e,t,n){for(var i=0;i<e.length;i+=2)if(r(e[i],e[i+1],t,n))return e.splice(i,i+2),!0;return!1}function s(e){if(!(Date.now()-d>h)){var t=e.touches&&e.touches.length?e.touches:[e],i=t[0].clientX,a=t[0].clientY;i<1&&a<1||p&&p[0]===i&&p[1]===a||(p&&(p=null),"label"===n(e.target)&&(p=[i,a]),o(u,i,a)||(e.stopPropagation(),e.preventDefault(),e.target&&e.target.blur&&e.target.blur()))}}function l(e){var t=e.touches&&e.touches.length?e.touches:[e],n=t[0].clientX,a=t[0].clientY;u.push(n,a),i(function(){for(var e=0;e<u.length;e+=2)if(u[e]==n&&u[e+1]==a)return void u.splice(e,e+2)},h,!1)}function c(e,t){u||(a[0].addEventListener("click",s,!0),a[0].addEventListener("touchstart",l,!0),u=[]),d=Date.now(),o(u,e,t)}var d,u,p,f=750,m=12,h=2500,g=25,_="ng-click-active";return function(n,i,a){function r(){p=!1,i.removeClass(_)}var o,s,l,d,u=e(a.ngClick),p=!1;i.on("touchstart",function(e){p=!0,o=e.target?e.target:e.srcElement,3==o.nodeType&&(o=o.parentNode),i.addClass(_),s=Date.now();var t=e.originalEvent||e,n=t.touches&&t.touches.length?t.touches:[t],a=n[0];l=a.clientX,d=a.clientY}),i.on("touchcancel",function(e){r()}),i.on("touchend",function(e){var n=Date.now()-s,u=e.originalEvent||e,h=u.changedTouches&&u.changedTouches.length?u.changedTouches:u.touches&&u.touches.length?u.touches:[u],g=h[0],_=g.clientX,v=g.clientY,y=Math.sqrt(Math.pow(_-l,2)+Math.pow(v-d,2));p&&n<f&&y<m&&(c(_,v),o&&o.blur(),t.isDefined(a.disabled)&&a.disabled!==!1||i.triggerHandler("click",[e])),r()}),i.onclick=function(e){},i.on("click",function(e,t){n.$apply(function(){u(n,{$event:t||e})})}),i.on("mousedown",function(e){i.addClass(_)}),i.on("mousemove mouseup",function(e){i.removeClass(_)})}}];a("ngSwipeLeft",-1,"swipeleft"),a("ngSwipeRight",1,"swiperight")}(window,window.angular),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.dropdown","ui.bootstrap.tooltip","ui.bootstrap.position","ui.bootstrap.bindHtml","ui.bootstrap.modal","ui.bootstrap.transition"]),angular.module("ui.bootstrap.tpls",["template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/modal/backdrop.html","template/modal/window.html"]),angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(e){var t=null;this.open=function(a){t||(e.bind("click",n),e.bind("keydown",i)),t&&t!==a&&(t.isOpen=!1),t=a},this.close=function(a){t===a&&(t=null,e.unbind("click",n),e.unbind("keydown",i))};var n=function(e){if(t){var n=t.getToggleElement();e&&n&&n[0].contains(e.target)||t.$apply(function(){t.isOpen=!1})}},i=function(e){27===e.which&&(t.focusToggleElement(),n())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(e,t,n,i,a,r){var o,s=this,l=e.$new(),c=i.openClass,d=angular.noop,u=t.onToggle?n(t.onToggle):angular.noop;this.init=function(i){s.$element=i,t.isOpen&&(o=n(t.isOpen),d=o.assign,e.$watch(o,function(e){l.isOpen=!!e}))},this.toggle=function(e){return l.isOpen=arguments.length?!!e:!l.isOpen},this.isOpen=function(){
return l.isOpen},l.getToggleElement=function(){return s.toggleElement},l.focusToggleElement=function(){s.toggleElement&&s.toggleElement[0].focus()},l.$watch("isOpen",function(t,n){r[t?"addClass":"removeClass"](s.$element,c),t?(l.focusToggleElement(),a.open(l)):a.close(l),d(e,t),angular.isDefined(t)&&t!==n&&u(e,{open:!!t})}),e.$on("$locationChangeSuccess",function(){l.isOpen=!1}),e.$on("$destroy",function(){l.$destroy()})}]).directive("dropdown",function(){return{controller:"DropdownController",link:function(e,t,n,i){i.init(t)}}}).directive("dropdownToggle",function(){return{require:"?^dropdown",link:function(e,t,n,i){if(i){i.toggleElement=t;var a=function(a){a.preventDefault(),t.hasClass("disabled")||n.disabled||e.$apply(function(){i.toggle()})};t.bind("click",a),t.attr({"aria-haspopup":!0,"aria-expanded":!1}),e.$watch(i.isOpen,function(e){t.attr("aria-expanded",!!e)}),e.$on("$destroy",function(){t.unbind("click",a)})}}}}),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function e(e){var t=/[A-Z]/g,n="-";return e.replace(t,function(e,t){return(t?n:"")+e.toLowerCase()})}var t={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},i={};this.options=function(e){angular.extend(i,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$document","$position","$interpolate",function(a,r,o,s,l,c){return function(a,d,u){function p(e){var t=e||f.trigger||u,i=n[t]||t;return{show:t,hide:i}}var f=angular.extend({},t,i),m=e(a),h=c.startSymbol(),g=c.endSymbol(),_="<div "+m+'-popup title="'+h+"title"+g+'" content="'+h+"content"+g+'" placement="'+h+"placement"+g+'" animation="animation" is-open="isOpen"></div>';return{restrict:"EA",compile:function(e,t){var n=r(_);return function(e,t,i){function r(){$.isOpen?u():c()}function c(){E&&!e.$eval(i[d+"Enable"])||(v(),$.popupDelay?A||(A=o(m,$.popupDelay,!1),A.then(function(e){e()})):m()())}function u(){e.$apply(function(){h()})}function m(){return A=null,S&&(o.cancel(S),S=null),$.content?(g(),k.css({top:0,left:0,display:"block"}),C?s.find("body").append(k):t.after(k),I(),$.isOpen=!0,$.$digest(),I):angular.noop}function h(){$.isOpen=!1,o.cancel(A),A=null,$.animation?S||(S=o(_,500)):_()}function g(){k&&_(),M=$.$new(),k=n(M,angular.noop)}function _(){S=null,k&&(k.remove(),k=null),M&&(M.$destroy(),M=null)}function v(){y(),b()}function y(){var e=i[d+"Placement"];$.placement=angular.isDefined(e)?e:f.placement}function b(){var e=i[d+"PopupDelay"],t=parseInt(e,10);$.popupDelay=isNaN(t)?f.popupDelay:t}function w(){var e=i[d+"Trigger"];x(),T=p(e),T.show===T.hide?t.bind(T.show,r):(t.bind(T.show,c),t.bind(T.hide,u))}var k,M,S,A,C=!!angular.isDefined(f.appendToBody)&&f.appendToBody,T=p(void 0),E=angular.isDefined(i[d+"Enable"]),$=e.$new(!0),I=function(){var e=l.positionElements(t,k,$.placement,C);e.top+="px",e.left+="px",k.css(e)};$.isOpen=!1,i.$observe(a,function(e){$.content=e,!e&&$.isOpen&&h()}),i.$observe(d+"Title",function(e){$.title=e});var x=function(){t.unbind(T.show,c),t.unbind(T.hide,u)};w();var P=e.$eval(i[d+"Animation"]);$.animation=angular.isDefined(P)?!!P:f.animation;var D=e.$eval(i[d+"AppendToBody"]);C=angular.isDefined(D)?D:C,C&&e.$on("$locationChangeSuccess",function(){$.isOpen&&h()}),e.$on("$destroy",function(){o.cancel(S),o.cancel(A),x(),_(),$=null})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(e){return e("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(e){return e("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function i(e){return"static"===(n(e,"position")||"static")}var a=function(t){for(var n=e[0],a=t.offsetParent||n;a&&a!==n&&i(a);)a=a.offsetParent;return a||n};return{position:function(t){var n=this.offset(t),i={top:0,left:0},r=a(t[0]);r!=e[0]&&(i=this.offset(angular.element(r)),i.top+=r.clientTop-r.scrollTop,i.left+=r.clientLeft-r.scrollLeft);var o=t[0].getBoundingClientRect();return{width:o.width||t.prop("offsetWidth"),height:o.height||t.prop("offsetHeight"),top:n.top-i.top,left:n.left-i.left}},offset:function(n){var i=n[0].getBoundingClientRect();return{width:i.width||n.prop("offsetWidth"),height:i.height||n.prop("offsetHeight"),top:i.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:i.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}},positionElements:function(e,t,n,i){var a,r,o,s,l=n.split("-"),c=l[0],d=l[1]||"center";a=i?this.offset(e):this.position(e),r=t.prop("offsetWidth"),o=t.prop("offsetHeight");var u={center:function(){return a.left+a.width/2-r/2},left:function(){return a.left},right:function(){return a.left+a.width}},p={center:function(){return a.top+a.height/2-o/2},top:function(){return a.top},bottom:function(){return a.top+a.height}};switch(c){case"right":s={top:p[d](),left:u[c]()};break;case"left":s={top:p[d](),left:a.left-r};break;case"bottom":s={top:p[c](),left:u[d]()};break;default:s={top:a.top-o,left:u[d]()}}return s}}}]),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(e,t,n){t.addClass("ng-binding").data("$binding",n.bindHtmlUnsafe),e.$watch(n.bindHtmlUnsafe,function(e){t.html(e||"")})}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;n<e.length;n++)if(t==e[n].key)return e[n]},keys:function(){for(var t=[],n=0;n<e.length;n++)t.push(e[n].key);return t},top:function(){return e[e.length-1]},remove:function(t){for(var n=-1,i=0;i<e.length;i++)if(t==e[i].key){n=i;break}return e.splice(n,1)[0]},removeTop:function(){return e.splice(e.length-1,1)[0]},length:function(){return e.length}}}}}).directive("modalBackdrop",["$timeout",function(e){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(t,n,i){t.backdropClass=i.backdropClass||"",t.animate=!1,e(function(){t.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(e,t){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"template/modal/window.html"},link:function(n,i,a){i.addClass(a.windowClass||""),n.size=a.size,i.on("click",function(e){n.close(e)}),e.registerObserverCallback(function(e){n.hiddenBySingle=e||!1}),t(function(){n.animate=!0,i[0].querySelectorAll("[autofocus]").length||i[0].focus()}),n.close=function(t){var n=e.getTop();n&&n.value.backdrop&&"static"!=n.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),e.dismiss(n.key,"backdrop click"))}}}}]).directive("modalTransclude",function(){return{link:function(e,t,n,i,a){a(e.$parent,function(e){t.empty(),t.append(e)})}}}).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(e,t,n,i,a,r){function o(){angular.forEach(g,function(e,t){for(var n=!1,i=m.keys(),a=0;a<i.length;a++){var r=m.get(i[a]).value;if("single"==r.backdrop&&r.index>t){n=!0;break}}e(n)})}function s(){for(var e=-1,t=m.keys(),n=0;n<t.length;n++)m.get(t[n]).value.backdrop&&(e=n);return e}function l(e){var t=n.find("body").eq(0),i=m.get(e).value;m.remove(e),g.splice(i.index,1),d(i.modalDomEl,i.modalScope,0,function(){i.modalScope.$destroy(),t.toggleClass(f,m.length()>0),c()})}function c(){if(u&&s()==-1){var e=p;d(u,p,0,function(){e.$destroy(),e=null}),u=void 0,p=void 0}else o()}function d(n,i,a,r){function o(){o.done||(o.done=!0,n.remove(),r&&r())}i.animate=!1;var s=e.transitionEndEventName;if(s){var l=t(o,a);n.bind(s,function(){t.cancel(l),o(),i.$apply()})}else t(o)}var u,p,f="modal-open",m=r.createNew(),h={},g=[];return a.$watch(s,function(e){p&&(p.index=e)}),n.bind("keydown",function(e){var t;27===e.which&&(t=m.top(),t&&t.value.keyboard&&(e.preventDefault(),a.$apply(function(){h.dismiss(t.key,"escape key press")})))}),h.registerObserverCallback=function(e){g.push(e)},h.open=function(e,t){m.add(e,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard});var r=n.find("body").eq(0),l=s();if(l>=0&&!u){p=a.$new(!0),p.index=l;var c=angular.element("<div modal-backdrop></div>");c.attr("backdrop-class",t.backdropClass),u=i(c)(p),r.append(u)}var d=angular.element("<div modal-window></div>"),h=m.length()-1;d.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:h,animate:"animate"}).html(t.content);var g=i(d)(t.scope);m.top().value.modalDomEl=g,m.top().value.index=h,r.append(g),r.addClass(f),o()},h.close=function(e,t){var n=m.get(e);n&&(n.value.deferred.resolve(t),l(e))},h.dismiss=function(e,t){var n=m.get(e);n&&(n.value.deferred.reject(t),l(e))},h.dismissAll=function(e){for(var t=this.getTop();t;)this.dismiss(t.key,e),t=this.getTop()},h.getTop=function(){return m.top()},h}]).provider("$modal",function(){var e={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,n,i,a,r,o,s){function l(e){return e.template?i.when(e.template):a.get(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl,{cache:r}).then(function(e){return e.data})}function c(e){var n=[];return angular.forEach(e,function(e){(angular.isFunction(e)||angular.isArray(e))&&n.push(i.when(t.invoke(e)))}),n}var d={};return d.open=function(t){var a=i.defer(),r=i.defer(),d={result:a.promise,opened:r.promise,close:function(e){s.close(d,e)},dismiss:function(e){s.dismiss(d,e)}};if(t=angular.extend({},e.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");var u=i.all([l(t)].concat(c(t.resolve)));return u.then(function(e){var i=(t.scope||n).$new();i.$close=d.close,i.$dismiss=d.dismiss;var r,l={},c=1;t.controller&&(l.$scope=i,l.$modalInstance=d,angular.forEach(t.resolve,function(t,n){l[n]=e[c++]}),r=o(t.controller,l),t.controllerAs&&(i[t.controllerAs]=r)),s.open(d,{scope:i,deferred:a,content:e[0],backdrop:t.backdrop,keyboard:t.keyboard,backdropClass:t.backdropClass,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},function(e){a.reject(e)}),u.then(function(){r.resolve(!0)},function(){r.reject(!1)}),d},d}]};return e}),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(e,t,n){function i(e){for(var t in e)if(void 0!==r.style[t])return e[t]}var a=function(i,r,o){o=o||{};var s=e.defer(),l=a[o.animation?"animationEndEventName":"transitionEndEventName"],c=function(e){n.$apply(function(){i.unbind(l,c),s.resolve(i)})};return l&&i.bind(l,c),t(function(){angular.isString(r)?i.addClass(r):angular.isFunction(r)?r(i):angular.isObject(r)&&i.css(r),l||s.resolve(i)}),s.promise.cancel=function(){l&&i.unbind(l,c),s.reject("Transition cancelled")},s.promise},r=document.createElement("trans"),o={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},s={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return a.transitionEndEventName=i(o),a.animationEndEventName=i(s),a}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("template/modal/backdrop.html",'<div class="modal-backdrop fade {{ backdropClass }}"\n ng-class="{in: animate}"\n ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(e){e.put("template/modal/window.html",'<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: hiddenBySingle ? \'none\' : \'block\'}">\n <div class="modal_close_wrap" ng-click="close($event)">\n <div class="modal_close"></div>\n </div>\n <div class="modal-dialog" ng-class="{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\'}"><div class="modal-content" modal-transclude></div></div>\n</div>')}]),angular.module("mediaPlayer",["mediaPlayer.helpers"]).constant("mp.playerDefaults",{currentTrack:0,ended:void 0,network:void 0,playing:!1,seeking:!1,tracks:0,volume:1,formatDuration:"00:00",formatTime:"00:00",loadPercent:0}).directive("mediaPlayer",["$rootScope","$interpolate","$timeout","mp.throttle","mp.playerDefaults",function(e,t,n,i,a){function r(e){return function(t,i,a){var r,o=null;if(e.$attachPlaylist(t),void 0===t&&void 0!==i)return e.pause();if(e.currentTrack){r=i?i[e.currentTrack-1]:-1;for(var s=0;s<t.length;s++)if(angular.equals(t[s],r)){o=s;break}null!==o?(e.currentTrack=o+1,e.tracks=t.length):(e.pause(),t.length?n(function(){e.$clearSourceList(),e.$addSourceList(t[0]),e.load(),e.tracks=t.length}):e.reset())}else t.length?(e.$clearSourceList(),e.$addSourceList(t[0]),e.load(),e.tracks=t.length):e.reset()}}var o={load:function(e,t){if("boolean"==typeof e?(t=e,e=null):"object"==typeof e&&(this.$clearSourceList(),this.$addSourceList(e)),this.$domEl.load(),this.ended=void 0,t){var n="OGVJS"==this.$domEl.tagName?"loadeddata":"canplay";this.$element.one(n,this.play.bind(this))}},reset:function(e){angular.extend(this,a),this.$clearSourceList(),this.load(this.$playlist,e)},play:function(e,t){return"boolean"==typeof e&&(t=e,e=void 0),t&&(this.$selective=!0),this.$playlist.length>e?(this.currentTrack=e+1,this.load(this.$playlist[e],!0)):(!this.currentTrack&&this.$domEl.readyState&&this.currentTrack++,void(this.ended?this.load(!0):this.$domEl.play()))},playPause:function(e,t){"boolean"==typeof e&&(t=e,e=void 0),t&&(this.$selective=!0),"number"==typeof e&&e+1!==this.currentTrack?this.play(e):this.playing?this.pause():this.play()},pause:function(){this.$domEl.pause()},stop:function(){this.reset()},toggleMute:function(){this.muted=this.$domEl.muted=!this.$domEl.muted},next:function(e){var t=this;if(t.currentTrack&&t.currentTrack<t.tracks){var i=e||t.playing;t.pause(),n(function(){t.$clearSourceList(),t.$addSourceList(t.$playlist[t.currentTrack]),t.load(i),t.currentTrack++})}},prev:function(e){var t=this;if(t.currentTrack&&t.currentTrack-1){var i=e||t.playing;t.pause(),n(function(){t.$clearSourceList(),t.$addSourceList(t.$playlist[t.currentTrack-2]),t.load(i),t.currentTrack--})}},setPlaybackRate:function(e){this.$domEl.playbackRate=e},setVolume:function(e){this.$domEl.volume=e},seek:function(e){var t,n=0;return"string"!=typeof e?this.$domEl.currentTime=e:(t=e.split(":"),n+=parseInt(t.pop(),10),t.length&&(n+=60*parseInt(t.pop(),10)),t.length&&(n+=3600*parseInt(t.pop(),10)),isNaN(n)?void 0:this.$domEl.currentTime=n)},on:function(e,t){return this.$element.on(e,t)},off:function(e,t){return this.$element.off(e,t)},one:function(e,t){return this.$element.one(e,t)},$addSourceList:function(e){var t=this;if(angular.isArray(e))angular.forEach(e,function(e,n){var i=document.createElement("SOURCE");["src","type","media"].forEach(function(t){void 0!==e[t]&&i.setAttribute(t,e[t])}),t.$element.append(i)});else if(angular.isObject(e)){var n=document.createElement("SOURCE");["src","type","media"].forEach(function(t){void 0!==e[t]&&n.setAttribute(t,e[t])}),t.$element.append(n)}},$clearSourceList:function(){this.$element.contents().remove()},$formatTime:function(e){if(e===1/0)return"∞";var t,n=parseInt(e/3600,10)%24,i=parseInt(e/60,10)%60,a=parseInt(e%60,10),r=(i<10?"0"+i:i)+":"+(a<10?"0"+a:a);return t=n>0?(n<10?"0"+n:n)+":"+r:r},$attachPlaylist:function(e){void 0===e||null===e?this.playlist=[]:this.$playlist=e}},s=function(e,t,n){var a=function(e){e.currentTime=t.currentTime,e.formatTime=e.$formatTime(e.currentTime)},r={playing:function(){e.$apply(function(e){e.playing=!0,e.ended=!1})},pause:function(){e.$apply(function(e){e.playing=!1})},ended:function(){!e.$selective&&e.currentTrack<e.tracks?e.next(!0):e.$apply(function(e){e.ended=!0,e.playing=!1,a(e)})},timeupdate:i(1e3,!1,function(){e.$apply(function(e){a(e)})}),loadedmetadata:function(){e.$apply(function(e){e.currentTrack||e.currentTrack++,e.duration=t.duration,e.formatDuration=e.$formatTime(e.duration),t.buffered.length&&(e.loadPercent=Math.round(t.buffered.end(t.buffered.length-1)/e.duration*100)),a(e)})},progress:function(){e.$domEl.buffered.length&&e.$apply(function(e){e.loadPercent=Math.round(t.buffered.end(t.buffered.length-1)/e.duration*100),e.network="progress"})},volumechange:function(){e.$apply(function(e){e.volume=t.volume,e.muted=t.muted})},seeked:function(){e.$apply(function(e){e.seeking=!1})},seeking:function(){e.$apply(function(e){e.seeking=!0})},ratechange:function(){e.$apply(function(e){e.playbackRate=t.playbackRate})},stalled:function(){e.$apply(function(e){e.network="stalled"})},suspend:function(){e.$apply(function(e){e.network="suspend"})}};angular.forEach(r,function(e,t){n.on(t,e)})},l=function(t){var n=angular.extend(e.$new(!0),{$element:t,$domEl:t[0],$playlist:void 0,buffered:t[0].buffered,played:t[0].played,seekable:t[0].seekable},a,o);return s(n,t[0],t),n};return{scope:!1,link:function(e,t,n,i){var a=n.playlist,o=n.mediaPlayer||n.playerControl,s=new l(t),c=e[a];if(c=void 0===a?[]:void 0===e[a]?e[a]=[]:e[a],void 0!==o&&e.$eval(o+" = player",{player:s}),"AUDIO"!==t[0].tagName&&"VIDEO"!==t[0].tagName&&"OGVJS"!==t[0].tagName)return new Error("player directive works only when attached to an <audio>/<video> type tag");var d=[],u=t.find("source");1===u.length?c.unshift({src:u[0].src,type:u[0].type,media:u[0].media}):u.length>1&&(angular.forEach(u,function(e){d.push({src:e.src,type:e.type,media:e.media})}),c.unshift(d)),void 0===a?s.$attachPlaylist(c):c.length?(r(s)(c,void 0,e),e.$watch(a,r(s),!0)):e.$watch(a,r(s),!0)}}}]),angular.module("mediaPlayer.helpers",[]).factory("mp.throttle",["$timeout",function(e){return function(t,n,i,a){var r,o=0;"boolean"!=typeof n&&(a=i,i=n,n=void 0);var s=function(){var s=this,l=+new Date-o,c=arguments,d=function(){o=+new Date,i.apply(s,c)},u=function(){r=void 0};a&&!r&&d(),r&&e.cancel(r),void 0===a&&l>t?d():n!==!0&&(r=e(a?u:d,void 0===a?t-l:t))};return s}}]);var dbits,canary=0xdeadbeefcafe,j_lm=15715070==(16777215&canary);j_lm&&"Microsoft Internet Explorer"==navigator.appName?(BigInteger.prototype.am=am2,dbits=30):j_lm&&"Netscape"!=navigator.appName?(BigInteger.prototype.am=am1,dbits=26):(BigInteger.prototype.am=am3,dbits=28),BigInteger.prototype.DB=dbits,BigInteger.prototype.DM=(1<<dbits)-1,BigInteger.prototype.DV=1<<dbits;var BI_FP=52;BigInteger.prototype.FV=Math.pow(2,BI_FP),BigInteger.prototype.F1=BI_FP-dbits,BigInteger.prototype.F2=2*dbits-BI_FP;var BI_RM="0123456789abcdefghijklmnopqrstuvwxyz",BI_RC=new Array,rr,vv;for(rr="0".charCodeAt(0),vv=0;vv<=9;++vv)BI_RC[rr++]=vv;for(rr="a".charCodeAt(0),vv=10;vv<36;++vv)BI_RC[rr++]=vv;for(rr="A".charCodeAt(0),vv=10;vv<36;++vv)BI_RC[rr++]=vv;Classic.prototype.convert=cConvert,Classic.prototype.revert=cRevert,Classic.prototype.reduce=cReduce,Classic.prototype.mulTo=cMulTo,Classic.prototype.sqrTo=cSqrTo,Montgomery.prototype.convert=montConvert,Montgomery.prototype.revert=montRevert,Montgomery.prototype.reduce=montReduce,Montgomery.prototype.mulTo=montMulTo,Montgomery.prototype.sqrTo=montSqrTo,BigInteger.prototype.copyTo=bnpCopyTo,BigInteger.prototype.fromInt=bnpFromInt,BigInteger.prototype.fromString=bnpFromString,BigInteger.prototype.clamp=bnpClamp,BigInteger.prototype.dlShiftTo=bnpDLShiftTo,BigInteger.prototype.drShiftTo=bnpDRShiftTo,BigInteger.prototype.lShiftTo=bnpLShiftTo,BigInteger.prototype.rShiftTo=bnpRShiftTo,BigInteger.prototype.subTo=bnpSubTo,BigInteger.prototype.multiplyTo=bnpMultiplyTo,BigInteger.prototype.squareTo=bnpSquareTo,BigInteger.prototype.divRemTo=bnpDivRemTo,BigInteger.prototype.invDigit=bnpInvDigit,BigInteger.prototype.isEven=bnpIsEven,BigInteger.prototype.exp=bnpExp,BigInteger.prototype.toString=bnToString,BigInteger.prototype.negate=bnNegate,BigInteger.prototype.abs=bnAbs,BigInteger.prototype.compareTo=bnCompareTo,BigInteger.prototype.bitLength=bnBitLength,BigInteger.prototype.mod=bnMod,BigInteger.prototype.modPowInt=bnModPowInt,BigInteger.ZERO=nbv(0),BigInteger.ONE=nbv(1),NullExp.prototype.convert=nNop,NullExp.prototype.revert=nNop,NullExp.prototype.mulTo=nMulTo,NullExp.prototype.sqrTo=nSqrTo,Barrett.prototype.convert=barrettConvert,Barrett.prototype.revert=barrettRevert,Barrett.prototype.reduce=barrettReduce,Barrett.prototype.mulTo=barrettMulTo,Barrett.prototype.sqrTo=barrettSqrTo;var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],lplim=(1<<26)/lowprimes[lowprimes.length-1];BigInteger.prototype.chunkSize=bnpChunkSize,BigInteger.prototype.toRadix=bnpToRadix,BigInteger.prototype.fromRadix=bnpFromRadix,BigInteger.prototype.fromNumber=bnpFromNumber,BigInteger.prototype.bitwiseTo=bnpBitwiseTo,BigInteger.prototype.changeBit=bnpChangeBit,BigInteger.prototype.addTo=bnpAddTo,BigInteger.prototype.dMultiply=bnpDMultiply,BigInteger.prototype.dAddOffset=bnpDAddOffset,BigInteger.prototype.multiplyLowerTo=bnpMultiplyLowerTo,BigInteger.prototype.multiplyUpperTo=bnpMultiplyUpperTo,BigInteger.prototype.modInt=bnpModInt,BigInteger.prototype.millerRabin=bnpMillerRabin,BigInteger.prototype.clone=bnClone,BigInteger.prototype.intValue=bnIntValue,BigInteger.prototype.byteValue=bnByteValue,BigInteger.prototype.shortValue=bnShortValue,BigInteger.prototype.signum=bnSigNum,BigInteger.prototype.toByteArray=bnToByteArray,BigInteger.prototype.equals=bnEquals,BigInteger.prototype.min=bnMin,BigInteger.prototype.max=bnMax,BigInteger.prototype.and=bnAnd,BigInteger.prototype.or=bnOr,BigInteger.prototype.xor=bnXor,BigInteger.prototype.andNot=bnAndNot,BigInteger.prototype.not=bnNot,BigInteger.prototype.shiftLeft=bnShiftLeft,BigInteger.prototype.shiftRight=bnShiftRight,BigInteger.prototype.getLowestSetBit=bnGetLowestSetBit,BigInteger.prototype.bitCount=bnBitCount,BigInteger.prototype.testBit=bnTestBit,BigInteger.prototype.setBit=bnSetBit,BigInteger.prototype.clearBit=bnClearBit,BigInteger.prototype.flipBit=bnFlipBit,BigInteger.prototype.add=bnAdd,BigInteger.prototype.subtract=bnSubtract,BigInteger.prototype.multiply=bnMultiply,BigInteger.prototype.divide=bnDivide,BigInteger.prototype.remainder=bnRemainder,BigInteger.prototype.divideAndRemainder=bnDivideAndRemainder,BigInteger.prototype.modPow=bnModPow,BigInteger.prototype.modInverse=bnModInverse,BigInteger.prototype.pow=bnPow,BigInteger.prototype.gcd=bnGCD,BigInteger.prototype.isProbablePrime=bnIsProbablePrime,BigInteger.prototype.square=bnSquare;var rng_state,rng_pool,rng_pptr;if(null==rng_pool){rng_pool=new Array,rng_pptr=0;var global="undefined"!=typeof window?window:this,t;if(global&&global.crypto&&global.crypto.getRandomValues){var ua=new Uint8Array(32);for(global.crypto.getRandomValues(ua),t=0;t<32;++t)rng_pool[rng_pptr++]=ua[t]}if("Netscape"==navigator.appName&&navigator.appVersion<"5"&&global&&global.crypto){var z=global.crypto.random(32);for(t=0;t<z.length;++t)rng_pool[rng_pptr++]=255&z.charCodeAt(t)}for(;rng_pptr<rng_psize;)t=Math.floor(65536*Math.random()),rng_pool[rng_pptr++]=t>>>8,rng_pool[rng_pptr++]=255&t;rng_pptr=0,rng_seed_time()}SecureRandom.prototype.nextBytes=rng_get_bytes,Arcfour.prototype.init=ARC4init,Arcfour.prototype.next=ARC4next;var rng_psize=256,CryptoJS=CryptoJS||function(e,t){var n={},i=n.lib={},a=i.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var n=new e;return t&&n.mixIn(t),n.hasOwnProperty("init")||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),r=i.WordArray=a.extend({init:function(e,n){e=this.words=e||[],n!=t?this.sigBytes=n:this.sigBytes=4*e.length},toString:function(e){return(e||s).stringify(this)},concat:function(e){var t=this.words,n=e.words,i=this.sigBytes,a=e.sigBytes;if(this.clamp(),i%4)for(var r=0;r<a;r++){var o=n[r>>>2]>>>24-r%4*8&255;t[i+r>>>2]|=o<<24-(i+r)%4*8}else if(n.length>65535)for(var r=0;r<a;r+=4)t[i+r>>>2]=n[r>>>2];else for(var r=0;r<n.length;r++)t.push(n[r]);return this.sigBytes+=a,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=a.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n=[],i=0;i<t;i+=4)n.push(4294967296*e.random()|0);return new r.init(n,t)}}),o=n.enc={},s=o.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],a=0;a<n;a++){var r=t[a>>>2]>>>24-a%4*8&255;i.push((r>>>4).toString(16)),i.push((15&r).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i<t;i+=2)n[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new r.init(n,t/2)}},l=o.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],a=0;a<n;a++){var r=t[a>>>2]>>>24-a%4*8&255;i.push(String.fromCharCode(r))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i<t;i++)n[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new r.init(n,t)}},c=o.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},d=i.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new r.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,i=n.words,a=n.sigBytes,o=this.blockSize,s=4*o,l=a/s;l=t?e.ceil(l):e.max((0|l)-this._minBufferSize,0);var c=l*o,d=e.min(4*c,a);if(c){for(var u=0;u<c;u+=o)this._doProcessBlock(i,u);var p=i.splice(0,c);n.sigBytes-=d}return new r.init(p,d)},clone:function(){var e=a.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),u=(i.Hasher=d.extend({cfg:a.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){d.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new u.HMAC.init(e,n).finalize(t)}}}),n.algo={});return n}(Math);CryptoJS.lib.Cipher||function(e){var t=CryptoJS,n=t.lib,i=n.Base,a=n.WordArray,r=n.BufferedBlockAlgorithm,o=t.enc,s=(o.Utf8,o.Base64),l=t.algo,c=l.EvpKDF,d=n.Cipher=r.extend({cfg:i.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){r.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?k:y}return function(t){return{encrypt:function(n,i,a){return e(i).encrypt(t,n,i,a)},decrypt:function(n,i,a){return e(i).decrypt(t,n,i,a)}}}}()}),u=(n.StreamCipher=d.extend({_doFinalize:function(){var e=this._process(!0);return e},blockSize:1}),t.mode={}),p=n.BlockCipherMode=i.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),f=u.CBC=function(){function t(t,n,i){var a=this._iv;if(a){var r=a;this._iv=e}else var r=this._prevBlock;for(var o=0;o<i;o++)t[n+o]^=r[o]}var n=p.extend();return n.Encryptor=n.extend({processBlock:function(e,n){var i=this._cipher,a=i.blockSize;t.call(this,e,n,a),i.encryptBlock(e,n),this._prevBlock=e.slice(n,n+a)}}),n.Decryptor=n.extend({processBlock:function(e,n){var i=this._cipher,a=i.blockSize,r=e.slice(n,n+a);i.decryptBlock(e,n),t.call(this,e,n,a),this._prevBlock=r}}),n}(),m=(u.IGE=function(){function t(e,t,n,i){for(var a=0;a<i;a++)e[n+a]^=t[a]}var n=p.extend();return n.Encryptor=n.extend({processBlock:function(n,i){var a=this._cipher,r=a.blockSize;this._ivp===e&&(this._ivp=this._iv.slice(0,r),this._iv2p=this._iv.slice(r,r+r));var o=n.slice(i,i+r);t(n,this._ivp,i,r),a.encryptBlock(n,i),t(n,this._iv2p,i,r),this._ivp=n.slice(i,i+r),this._iv2p=o}}),n.Decryptor=n.extend({processBlock:function(n,i){var a=this._cipher,r=a.blockSize;this._ivp===e&&(this._ivp=this._iv.slice(0,r),this._iv2p=this._iv.slice(r,2*r));var o=n.slice(i,i+r);t(n,this._iv2p,i,r),a.decryptBlock(n,i),t(n,this._ivp,i,r),this._ivp=o,this._iv2p=n.slice(i,i+r)}}),n}(),t.pad={}),h=m.Pkcs7={pad:function(e,t){for(var n=4*t,i=n-e.sigBytes%n,r=i<<24|i<<16|i<<8|i,o=[],s=0;s<i;s+=4)o.push(r);var l=a.create(o,i);e.concat(l)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},g=(m.NoPadding={pad:function(){},unpad:function(){}},n.BlockCipher=d.extend({cfg:d.cfg.extend({mode:f,padding:h}),reset:function(){d.reset.call(this);var e=this.cfg,t=e.iv,n=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=n.createEncryptor;else{var i=n.createDecryptor;this._minBufferSize=1}this._mode=i.call(n,this,t&&t.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),n.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),_=t.format={},v=_.OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;if(n)var i=a.create([1398893684,1701076831]).concat(n).concat(t);else var i=t;return i.toString(s)},parse:function(e){var t=s.parse(e),n=t.words;if(1398893684==n[0]&&1701076831==n[1]){var i=a.create(n.slice(2,4));n.splice(0,4),t.sigBytes-=16}return g.create({ciphertext:t,salt:i})}},y=n.SerializableCipher=i.extend({cfg:i.extend({format:v}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var a=e.createEncryptor(n,i),r=a.finalize(t),o=a.cfg;
return g.create({ciphertext:r,key:n,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,n,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var a=e.createDecryptor(n,i).finalize(t.ciphertext);return a},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),b=t.kdf={},w=b.OpenSSL={execute:function(e,t,n,i){i||(i=a.random(8));var r=c.create({keySize:t+n}).compute(e,i),o=a.create(r.words.slice(t),4*n);return r.sigBytes=4*t,g.create({key:r,iv:o,salt:i})}},k=n.PasswordBasedCipher=y.extend({cfg:y.cfg.extend({kdf:w}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var a=i.kdf.execute(n,e.keySize,e.ivSize);i.iv=a.iv;var r=y.encrypt.call(this,e,t,a.key,i);return r.mixIn(a),r},decrypt:function(e,t,n,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var a=i.kdf.execute(n,e.keySize,e.ivSize,t.salt);i.iv=a.iv;var r=y.decrypt.call(this,e,t,a.key,i);return r}})}(),function(){var e=CryptoJS,t=e.lib,n=t.BlockCipher,i=e.algo,a=[],r=[],o=[],s=[],l=[],c=[],d=[],u=[],p=[],f=[];!function(){for(var e=[],t=0;t<256;t++)t<128?e[t]=t<<1:e[t]=t<<1^283;for(var n=0,i=0,t=0;t<256;t++){var m=i^i<<1^i<<2^i<<3^i<<4;m=m>>>8^255&m^99,a[n]=m,r[m]=n;var h=e[n],g=e[h],_=e[g],v=257*e[m]^16843008*m;o[n]=v<<24|v>>>8,s[n]=v<<16|v>>>16,l[n]=v<<8|v>>>24,c[n]=v;var v=16843009*_^65537*g^257*h^16843008*n;d[m]=v<<24|v>>>8,u[m]=v<<16|v>>>16,p[m]=v<<8|v>>>24,f[m]=v,n?(n=h^e[e[e[_^h]]],i^=e[e[i]]):n=i=1}}();var m=[0,1,2,4,8,16,32,64,128,27,54],h=i.AES=n.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes/4,i=this._nRounds=n+6,r=4*(i+1),o=this._keySchedule=[],s=0;s<r;s++)if(s<n)o[s]=t[s];else{var l=o[s-1];s%n?n>6&&s%n==4&&(l=a[l>>>24]<<24|a[l>>>16&255]<<16|a[l>>>8&255]<<8|a[255&l]):(l=l<<8|l>>>24,l=a[l>>>24]<<24|a[l>>>16&255]<<16|a[l>>>8&255]<<8|a[255&l],l^=m[s/n|0]<<24),o[s]=o[s-n]^l}for(var c=this._invKeySchedule=[],h=0;h<r;h++){var s=r-h;if(h%4)var l=o[s];else var l=o[s-4];h<4||s<=4?c[h]=l:c[h]=d[a[l>>>24]]^u[a[l>>>16&255]]^p[a[l>>>8&255]]^f[a[255&l]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,l,c,a)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,d,u,p,f,r);var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,i,a,r,o,s){for(var l=this._nRounds,c=e[t]^n[0],d=e[t+1]^n[1],u=e[t+2]^n[2],p=e[t+3]^n[3],f=4,m=1;m<l;m++){var h=i[c>>>24]^a[d>>>16&255]^r[u>>>8&255]^o[255&p]^n[f++],g=i[d>>>24]^a[u>>>16&255]^r[p>>>8&255]^o[255&c]^n[f++],_=i[u>>>24]^a[p>>>16&255]^r[c>>>8&255]^o[255&d]^n[f++],v=i[p>>>24]^a[c>>>16&255]^r[d>>>8&255]^o[255&u]^n[f++];c=h,d=g,u=_,p=v}var h=(s[c>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&p])^n[f++],g=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[p>>>8&255]<<8|s[255&c])^n[f++],_=(s[u>>>24]<<24|s[p>>>16&255]<<16|s[c>>>8&255]<<8|s[255&d])^n[f++],v=(s[p>>>24]<<24|s[c>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^n[f++];e[t]=h,e[t+1]=g,e[t+2]=_,e[t+3]=v},keySize:8});e.AES=n._createHelper(h)}(),function(e){var t=CryptoJS,n=t.lib,i=n.WordArray,a=n.Hasher,r=t.algo,o=[],s=[];!function(){function t(t){for(var n=e.sqrt(t),i=2;i<=n;i++)if(!(t%i))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var i=2,a=0;a<64;)t(i)&&(a<8&&(o[a]=n(e.pow(i,.5))),s[a]=n(e.pow(i,1/3)),a++),i++}();var l=[],c=r.SHA256=a.extend({_doReset:function(){this._hash=new i.init(o.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],a=n[1],r=n[2],o=n[3],c=n[4],d=n[5],u=n[6],p=n[7],f=0;f<64;f++){if(f<16)l[f]=0|e[t+f];else{var m=l[f-15],h=(m<<25|m>>>7)^(m<<14|m>>>18)^m>>>3,g=l[f-2],_=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;l[f]=h+l[f-7]+_+l[f-16]}var v=c&d^~c&u,y=i&a^i&r^a&r,b=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),w=(c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25),k=p+w+v+s[f]+l[f],M=b+y;p=u,u=d,d=c,c=o+k|0,o=r,r=a,a=i,i=k+M|0}n[0]=n[0]+i|0,n[1]=n[1]+a|0,n[2]=n[2]+r|0,n[3]=n[3]+o|0,n[4]=n[4]+c|0,n[5]=n[5]+d|0,n[6]=n[6]+u|0,n[7]=n[7]+p|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,a=8*t.sigBytes;return n[a>>>5]|=128<<24-a%32,n[(a+64>>>9<<4)+14]=e.floor(i/4294967296),n[(a+64>>>9<<4)+15]=i,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=a._createHelper(c),t.HmacSHA256=a._createHmacHelper(c)}(Math),function(e){function t(e){"use strict";var t={fill:0},i=function(e){for(e+=9;e%64>0;e+=1);return e},a=function(e,t){for(var n=t>>2;n<e.length;n++)e[n]=0},o=function(e,t,n){e[t>>2]|=128<<24-(t%4<<3),e[((t>>2)+2&-16)+15]=n<<3},s=function(e,t,n,i,a){var r,o=this,s=a%4,l=i%4,c=i-l;if(c>0)switch(s){case 0:e[a+3|0]=o.charCodeAt(n);case 1:e[a+2|0]=o.charCodeAt(n+1);case 2:e[a+1|0]=o.charCodeAt(n+2);case 3:e[0|a]=o.charCodeAt(n+3)}for(r=s;r<c;r=r+4|0)t[a+r>>2]=o.charCodeAt(n+r)<<24|o.charCodeAt(n+r+1)<<16|o.charCodeAt(n+r+2)<<8|o.charCodeAt(n+r+3);switch(l){case 3:e[a+c+1|0]=o.charCodeAt(n+c+2);case 2:e[a+c+2|0]=o.charCodeAt(n+c+1);case 1:e[a+c+3|0]=o.charCodeAt(n+c)}},l=function(e,t,n,i,a){var r,o=this,s=a%4,l=i%4,c=i-l;if(c>0)switch(s){case 0:e[a+3|0]=o[n];case 1:e[a+2|0]=o[n+1];case 2:e[a+1|0]=o[n+2];case 3:e[0|a]=o[n+3]}for(r=4-s;r<c;r=r+=4)t[a+r>>2]=o[n+r]<<24|o[n+r+1]<<16|o[n+r+2]<<8|o[n+r+3];switch(l){case 3:e[a+c+1|0]=o[n+c+2];case 2:e[a+c+2|0]=o[n+c+1];case 1:e[a+c+3|0]=o[n+c]}},c=function(e){switch(r.getDataType(e)){case"string":return s.bind(e);case"array":return l.bind(e);case"buffer":return l.bind(e);case"arraybuffer":return l.bind(new Uint8Array(e));case"view":return l.bind(new Uint8Array(e.buffer))}},d=function(e){var t,n,i="0123456789abcdef",a=[],r=new Uint8Array(e);for(t=0;t<r.length;t++)n=r[t],a[t]=i.charAt(n>>4&15)+i.charAt(n>>0&15);return a.join("")},u=function(e){var t;if(e<=65536)return 65536;if(e<16777216)for(t=1;t<e;t<<=1);else for(t=16777216;t<e;t+=16777216);return t},p=function(e){if(e%64>0)throw new Error("Chunk size must be a multiple of 128 bit");t.maxChunkLen=e,t.padMaxChunkLen=i(e),t.heap=new ArrayBuffer(u(t.padMaxChunkLen+320+20)),t.h32=new Int32Array(t.heap),t.h8=new Int8Array(t.heap),t.core=n({Int32Array:Int32Array,DataView:DataView},{},t.heap),t.buffer=null};p(e||65536);var f=function(e,t){var n=new Int32Array(e,t+320,5);n[0]=1732584193,n[1]=-271733879,n[2]=-1732584194,n[3]=271733878,n[4]=-1009589776},m=function(e,n){var r=i(e),s=new Int32Array(t.heap,0,r>>2);return a(s,e),o(s,e,n),r},h=function(e,n,i){c(e)(t.h8,t.h32,n,i,0)},g=function(e,n,i,a,r){var o=i;r&&(o=m(i,a)),h(e,n,i),t.core.hash(o,t.padMaxChunkLen)},_=function(e,t){var n=new Int32Array(e,t+320,5),i=new Int32Array(5),a=new DataView(i.buffer);return a.setInt32(0,n[0],!1),a.setInt32(4,n[1],!1),a.setInt32(8,n[2],!1),a.setInt32(12,n[3],!1),a.setInt32(16,n[4],!1),i},v=this.rawDigest=function(e){var n=e.byteLength||e.length;f(t.heap,t.padMaxChunkLen);var i=0,a=t.maxChunkLen;for(i=0;n>i+a;i+=a)g(e,i,a,n,!1);return g(e,i,n-i,n,!0),_(t.heap,t.padMaxChunkLen)};this.digest=this.digestFromString=this.digestFromBuffer=this.digestFromArrayBuffer=function(e){return d(v(e).buffer)}}function n(e,t,n){"use asm";var i=new e.Int32Array(n);function a(e,t){e=e|0;t=t|0;var n=0,a=0,r=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0;r=i[t+320>>2]|0;s=i[t+324>>2]|0;c=i[t+328>>2]|0;u=i[t+332>>2]|0;f=i[t+336>>2]|0;for(n=0;(n|0)<(e|0);n=n+64|0){o=r;l=s;d=c;p=u;m=f;for(a=0;(a|0)<64;a=a+4|0){g=i[n+a>>2]|0;h=((r<<5|r>>>27)+(s&c|~s&u)|0)+((g+f|0)+1518500249|0)|0;f=u;u=c;c=s<<30|s>>>2;s=r;r=h;i[e+a>>2]=g}for(a=e+64|0;(a|0)<(e+80|0);a=a+4|0){g=(i[a-12>>2]^i[a-32>>2]^i[a-56>>2]^i[a-64>>2])<<1|(i[a-12>>2]^i[a-32>>2]^i[a-56>>2]^i[a-64>>2])>>>31;h=((r<<5|r>>>27)+(s&c|~s&u)|0)+((g+f|0)+1518500249|0)|0;f=u;u=c;c=s<<30|s>>>2;s=r;r=h;i[a>>2]=g}for(a=e+80|0;(a|0)<(e+160|0);a=a+4|0){g=(i[a-12>>2]^i[a-32>>2]^i[a-56>>2]^i[a-64>>2])<<1|(i[a-12>>2]^i[a-32>>2]^i[a-56>>2]^i[a-64>>2])>>>31;h=((r<<5|r>>>27)+(s^c^u)|0)+((g+f|0)+1859775393|0)|0;f=u;u=c;c=s<<30|s>>>2;s=r;r=h;i[a>>2]=g}for(a=e+160|0;(a|0)<(e+240|0);a=a+4|0){g=(i[a-12>>2]^i[a-32>>2]^i[a-56>>2]^i[a-64>>2])<<1|(i[a-12>>2]^i[a-32>>2]^i[a-56>>2]^i[a-64>>2])>>>31;h=((r<<5|r>>>27)+(s&c|s&u|c&u)|0)+((g+f|0)-1894007588|0)|0;f=u;u=c;c=s<<30|s>>>2;s=r;r=h;i[a>>2]=g}for(a=e+240|0;(a|0)<(e+320|0);a=a+4|0){g=(i[a-12>>2]^i[a-32>>2]^i[a-56>>2]^i[a-64>>2])<<1|(i[a-12>>2]^i[a-32>>2]^i[a-56>>2]^i[a-64>>2])>>>31;h=((r<<5|r>>>27)+(s^c^u)|0)+((g+f|0)-899497514|0)|0;f=u;u=c;c=s<<30|s>>>2;s=r;r=h;i[a>>2]=g}r=r+o|0;s=s+l|0;c=c+d|0;u=u+p|0;f=f+m|0}i[t+320>>2]=r;i[t+324>>2]=s;i[t+328>>2]=c;i[t+332>>2]=u;i[t+336>>2]=f}return{hash:a}}if("undefined"!=typeof module&&(module.exports=t),"undefined"!=typeof e&&(e.Rusha=t),"undefined"!=typeof FileReaderSync){var i=new FileReaderSync,a=new t(4194304);self.onmessage=function(e){var t,n=e.data.data;if(n instanceof Blob)try{n=i.readAsBinaryString(n)}catch(r){return void self.postMessage({id:e.data.id,error:r.name})}t=a.digest(n),self.postMessage({id:e.data.id,hash:t})}}var r={getDataType:function(t){if("string"==typeof t)return"string";if(t instanceof Array)return"array";if("undefined"!=typeof e&&e.Buffer&&e.Buffer.isBuffer(t))return"buffer";if(t instanceof ArrayBuffer)return"arraybuffer";if(t.buffer instanceof ArrayBuffer)return"view";throw new Error("Unsupported data type.")}}}(this),function(){"use strict";function e(e){throw e}function t(e,t){var n=e.split("."),i=u;!(n[0]in i)&&i.execScript&&i.execScript("var "+n[0]);for(var a;n.length&&(a=n.shift());)n.length||t===d?i=i[a]?i[a]:i[a]={}:i[a]=t}function n(e,t,n){var i,a="number"==typeof t?t:t=0,r="number"==typeof n?n:e.length;for(i=-1,a=7&r;a--;++t)i=i>>>8^_[255&(i^e[t])];for(a=r>>3;a--;t+=8)i=i>>>8^_[255&(i^e[t])],i=i>>>8^_[255&(i^e[t+1])],i=i>>>8^_[255&(i^e[t+2])],i=i>>>8^_[255&(i^e[t+3])],i=i>>>8^_[255&(i^e[t+4])],i=i>>>8^_[255&(i^e[t+5])],i=i>>>8^_[255&(i^e[t+6])],i=i>>>8^_[255&(i^e[t+7])];return(4294967295^i)>>>0}function i(){}function a(e){var t,n,i,a,r,o,s,l,c,d=e.length,u=0,f=Number.POSITIVE_INFINITY;for(l=0;l<d;++l)e[l]>u&&(u=e[l]),e[l]<f&&(f=e[l]);for(t=1<<u,n=new(p?Uint32Array:Array)(t),i=1,a=0,r=2;i<=u;){for(l=0;l<d;++l)if(e[l]===i){for(o=0,s=a,c=0;c<i;++c)o=o<<1|1&s,s>>=1;for(c=o;c<t;c+=r)n[c]=i<<16|l;++a}++i,a<<=1,r<<=1}return[n,u,f]}function r(t,n){switch(this.i=[],this.j=32768,this.d=this.f=this.c=this.n=0,this.input=p?new Uint8Array(t):t,this.o=!1,this.k=k,this.w=!1,!n&&(n={})||(n.index&&(this.c=n.index),n.bufferSize&&(this.j=n.bufferSize),n.bufferType&&(this.k=n.bufferType),n.resize&&(this.w=n.resize)),this.k){case w:this.a=32768,this.b=new(p?Uint8Array:Array)(32768+this.j+258);break;case k:this.a=0,this.b=new(p?Uint8Array:Array)(this.j),this.e=this.D,this.q=this.A,this.l=this.C;break;default:e(Error("invalid inflate mode"))}}function o(t,n){for(var i,a=t.f,r=t.d,o=t.input,s=t.c;r<n;)i=o[s++],i===d&&e(Error("input buffer is broken")),a|=i<<r,r+=8;return i=a&(1<<n)-1,t.f=a>>>n,t.d=r-n,t.c=s,i}function s(e,t){for(var n,i,a,r=e.f,o=e.d,s=e.input,l=e.c,c=t[0],u=t[1];o<u&&(n=s[l++],n!==d);)r|=n<<o,o+=8;return i=c[r&(1<<u)-1],a=i>>>16,e.f=r>>a,e.d=o-a,e.c=l,65535&i}function l(e){function t(e,t,n){var i,a,r,l;for(l=0;l<e;)switch(i=s(this,t)){case 16:for(r=3+o(this,2);r--;)n[l++]=a;break;case 17:for(r=3+o(this,3);r--;)n[l++]=0;a=0;break;case 18:for(r=11+o(this,7);r--;)n[l++]=0;a=0;break;default:a=n[l++]=i}return n}var n,i,r,l,c=o(e,5)+257,d=o(e,5)+1,u=o(e,4)+4,f=new(p?Uint8Array:Array)(C.length);for(l=0;l<u;++l)f[C[l]]=o(e,3);n=a(f),i=new(p?Uint8Array:Array)(c),r=new(p?Uint8Array:Array)(d),e.l(a(t.call(e,c,n,i)),a(t.call(e,d,n,r)))}function c(e){this.input=e,this.c=0,this.m=[],this.s=!1}var d=void 0,u=this,p="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array;new(p?Uint8Array:Array)(256);var f;for(f=0;256>f;++f)for(var m=f,h=7,m=m>>>1;m;m>>>=1)--h;var g=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],_=p?new Uint32Array(g):g;i.prototype.getName=function(){return this.name},i.prototype.getData=function(){return this.data},i.prototype.G=function(){return this.H},t("Zlib.GunzipMember",i),t("Zlib.GunzipMember.prototype.getName",i.prototype.getName),t("Zlib.GunzipMember.prototype.getData",i.prototype.getData),t("Zlib.GunzipMember.prototype.getMtime",i.prototype.G);var v,y=[];for(v=0;288>v;v++)switch(!0){case 143>=v:y.push([v+48,8]);break;case 255>=v:y.push([v-144+400,9]);break;case 279>=v:y.push([v-256+0,7]);break;case 287>=v:y.push([v-280+192,8]);break;default:e("invalid literal: "+v)}var b=function(){function t(t){switch(!0){case 3===t:return[257,t-3,0];case 4===t:return[258,t-4,0];case 5===t:return[259,t-5,0];case 6===t:return[260,t-6,0];case 7===t:return[261,t-7,0];case 8===t:return[262,t-8,0];case 9===t:return[263,t-9,0];case 10===t:return[264,t-10,0];case 12>=t:return[265,t-11,1];case 14>=t:return[266,t-13,1];case 16>=t:return[267,t-15,1];case 18>=t:return[268,t-17,1];case 22>=t:return[269,t-19,2];case 26>=t:return[270,t-23,2];case 30>=t:return[271,t-27,2];case 34>=t:return[272,t-31,2];case 42>=t:return[273,t-35,3];case 50>=t:return[274,t-43,3];case 58>=t:return[275,t-51,3];case 66>=t:return[276,t-59,3];case 82>=t:return[277,t-67,4];case 98>=t:return[278,t-83,4];case 114>=t:return[279,t-99,4];case 130>=t:return[280,t-115,4];case 162>=t:return[281,t-131,5];case 194>=t:return[282,t-163,5];case 226>=t:return[283,t-195,5];case 257>=t:return[284,t-227,5];case 258===t:return[285,t-258,0];default:e("invalid length: "+t)}}var n,i,a=[];for(n=3;258>=n;n++)i=t(n),a[n]=i[2]<<24|i[1]<<16|i[0];return a}();p&&new Uint32Array(b);var w=0,k=1;r.prototype.g=function(){for(;!this.o;){var t=o(this,3);switch(1&t&&(this.o=!0),t>>>=1){case 0:var n=this.input,i=this.c,a=this.b,r=this.a,s=d,c=d,u=d,f=a.length,m=d;switch(this.d=this.f=0,s=n[i++],s===d&&e(Error("invalid uncompressed block header: LEN (first byte)")),c=s,s=n[i++],s===d&&e(Error("invalid uncompressed block header: LEN (second byte)")),c|=s<<8,s=n[i++],s===d&&e(Error("invalid uncompressed block header: NLEN (first byte)")),u=s,s=n[i++],s===d&&e(Error("invalid uncompressed block header: NLEN (second byte)")),u|=s<<8,c===~u&&e(Error("invalid uncompressed block header: length verify")),i+c>n.length&&e(Error("input buffer is broken")),this.k){case w:for(;r+c>a.length;){if(m=f-r,c-=m,p)a.set(n.subarray(i,i+m),r),r+=m,i+=m;else for(;m--;)a[r++]=n[i++];this.a=r,a=this.e(),r=this.a}break;case k:for(;r+c>a.length;)a=this.e({t:2});break;default:e(Error("invalid inflate mode"))}if(p)a.set(n.subarray(i,i+c),r),r+=c,i+=c;else for(;c--;)a[r++]=n[i++];this.c=i,this.a=r,this.b=a;break;case 1:this.l(F,B);break;case 2:l(this);break;default:e(Error("unknown BTYPE: "+t))}}return this.q()};var M,S,A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],C=p?new Uint16Array(A):A,T=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],E=p?new Uint16Array(T):T,$=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],I=p?new Uint8Array($):$,x=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],P=p?new Uint16Array(x):x,D=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],R=p?new Uint8Array(D):D,O=new(p?Uint8Array:Array)(288);for(M=0,S=O.length;M<S;++M)O[M]=143>=M?8:255>=M?9:279>=M?7:8;var N,L,F=a(O),U=new(p?Uint8Array:Array)(30);for(N=0,L=U.length;N<L;++N)U[N]=5;var B=a(U);r.prototype.l=function(e,t){var n=this.b,i=this.a;this.r=e;for(var a,r,l,c,d=n.length-258;256!==(a=s(this,e));)if(256>a)i>=d&&(this.a=i,n=this.e(),i=this.a),n[i++]=a;else for(r=a-257,c=E[r],0<I[r]&&(c+=o(this,I[r])),a=s(this,t),l=P[a],0<R[a]&&(l+=o(this,R[a])),i>=d&&(this.a=i,n=this.e(),i=this.a);c--;)n[i]=n[i++-l];for(;8<=this.d;)this.d-=8,this.c--;this.a=i},r.prototype.C=function(e,t){var n=this.b,i=this.a;this.r=e;for(var a,r,l,c,d=n.length;256!==(a=s(this,e));)if(256>a)i>=d&&(n=this.e(),d=n.length),n[i++]=a;else for(r=a-257,c=E[r],0<I[r]&&(c+=o(this,I[r])),a=s(this,t),l=P[a],0<R[a]&&(l+=o(this,R[a])),i+c>d&&(n=this.e(),d=n.length);c--;)n[i]=n[i++-l];for(;8<=this.d;)this.d-=8,this.c--;this.a=i},r.prototype.e=function(){var e,t,n=new(p?Uint8Array:Array)(this.a-32768),i=this.a-32768,a=this.b;if(p)n.set(a.subarray(32768,n.length));else for(e=0,t=n.length;e<t;++e)n[e]=a[e+32768];if(this.i.push(n),this.n+=n.length,p)a.set(a.subarray(i,i+32768));else for(e=0;32768>e;++e)a[e]=a[i+e];return this.a=32768,a},r.prototype.D=function(e){var t,n,i,a,r=this.input.length/this.c+1|0,o=this.input,s=this.b;return e&&("number"==typeof e.t&&(r=e.t),"number"==typeof e.z&&(r+=e.z)),2>r?(n=(o.length-this.c)/this.r[2],a=258*(n/2)|0,i=a<s.length?s.length+a:s.length<<1):i=s.length*r,p?(t=new Uint8Array(i),t.set(s)):t=s,this.b=t},r.prototype.q=function(){var e,t,n,i,a,r=0,o=this.b,s=this.i,l=new(p?Uint8Array:Array)(this.n+(this.a-32768));if(0===s.length)return p?this.b.subarray(32768,this.a):this.b.slice(32768,this.a);for(t=0,n=s.length;t<n;++t)for(e=s[t],i=0,a=e.length;i<a;++i)l[r++]=e[i];for(t=32768,n=this.a;t<n;++t)l[r++]=o[t];return this.i=[],this.buffer=l},r.prototype.A=function(){var e,t=this.a;return p?this.w?(e=new Uint8Array(t),e.set(this.b.subarray(0,t))):e=this.b.subarray(0,t):(this.b.length>t&&(this.b.length=t),e=this.b),this.buffer=e},c.prototype.F=function(){return this.s||this.g(),this.m.slice()},c.prototype.g=function(){for(var t=this.input.length;this.c<t;){var a=new i,o=d,s=d,l=d,c=d,u=d,f=d,m=d,h=d,g=d,_=this.input,v=this.c;switch(a.u=_[v++],a.v=_[v++],(31!==a.u||139!==a.v)&&e(Error("invalid file signature:"+a.u+","+a.v)),a.p=_[v++],a.p){case 8:break;default:e(Error("unknown compression method: "+a.p))}if(a.h=_[v++],h=_[v++]|_[v++]<<8|_[v++]<<16|_[v++]<<24,a.H=new Date(1e3*h),a.N=_[v++],a.M=_[v++],0<(4&a.h)&&(a.I=_[v++]|_[v++]<<8,v+=a.I),0<(8&a.h)){for(m=[],f=0;0<(u=_[v++]);)m[f++]=String.fromCharCode(u);a.name=m.join("")}if(0<(16&a.h)){for(m=[],f=0;0<(u=_[v++]);)m[f++]=String.fromCharCode(u);a.J=m.join("")}0<(2&a.h)&&(a.B=65535&n(_,0,v),a.B!==(_[v++]|_[v++]<<8)&&e(Error("invalid header crc16"))),o=_[_.length-4]|_[_.length-3]<<8|_[_.length-2]<<16|_[_.length-1]<<24,_.length-v-4-4<512*o&&(c=o),s=new r(_,{index:v,bufferSize:c}),a.data=l=s.g(),v=s.c,a.K=g=(_[v++]|_[v++]<<8|_[v++]<<16|_[v++]<<24)>>>0,n(l,d,d)!==g&&e(Error("invalid CRC-32 checksum: 0x"+n(l,d,d).toString(16)+" / 0x"+g.toString(16))),a.L=o=(_[v++]|_[v++]<<8|_[v++]<<16|_[v++]<<24)>>>0,(4294967295&l.length)!==o&&e(Error("invalid input size: "+(4294967295&l.length)+" / "+o)),this.m.push(a),this.c=v}this.s=!0;var y,b,w,k=this.m,M=0,S=0;for(y=0,b=k.length;y<b;++y)S+=k[y].data.length;if(p)for(w=new Uint8Array(S),y=0;y<b;++y)w.set(k[y].data,M),M+=k[y].data.length;else{for(w=[],y=0;y<b;++y)w[y]=k[y].data;w=Array.prototype.concat.apply([],w)}return w},t("Zlib.Gunzip",c),t("Zlib.Gunzip.prototype.decompress",c.prototype.g),t("Zlib.Gunzip.prototype.getMembers",c.prototype.F)}.call(this),this.goog={provide:function(){},math:{}},goog.provide("goog.math.Long"),goog.math.Long=function(e,t){this.low_=0|e,this.high_=0|t},goog.math.Long.IntCache_={},goog.math.Long.fromInt=function(e){if(-128<=e&&e<128){var t=goog.math.Long.IntCache_[e];if(t)return t}var n=new goog.math.Long(0|e,e<0?-1:0);return-128<=e&&e<128&&(goog.math.Long.IntCache_[e]=n),n},goog.math.Long.fromNumber=function(e){return isNaN(e)||!isFinite(e)?goog.math.Long.ZERO:e<=-goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.MIN_VALUE:e+1>=goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.MAX_VALUE:e<0?goog.math.Long.fromNumber(-e).negate():new goog.math.Long(e%goog.math.Long.TWO_PWR_32_DBL_|0,e/goog.math.Long.TWO_PWR_32_DBL_|0)},goog.math.Long.fromBits=function(e,t){return new goog.math.Long(e,t)},goog.math.Long.fromString=function(e,t){if(0==e.length)throw Error("number format error: empty string");var n=t||10;if(n<2||36<n)throw Error("radix out of range: "+n);if("-"==e.charAt(0))return goog.math.Long.fromString(e.substring(1),n).negate();if(e.indexOf("-")>=0)throw Error('number format error: interior "-" character: '+e);for(var i=goog.math.Long.fromNumber(Math.pow(n,8)),a=goog.math.Long.ZERO,r=0;r<e.length;r+=8){var o=Math.min(8,e.length-r),s=parseInt(e.substring(r,r+o),n);if(o<8){var l=goog.math.Long.fromNumber(Math.pow(n,o));a=a.multiply(l).add(goog.math.Long.fromNumber(s))}else a=a.multiply(i),a=a.add(goog.math.Long.fromNumber(s))}return a},goog.math.Long.TWO_PWR_16_DBL_=65536,goog.math.Long.TWO_PWR_24_DBL_=1<<24,goog.math.Long.TWO_PWR_32_DBL_=goog.math.Long.TWO_PWR_16_DBL_*goog.math.Long.TWO_PWR_16_DBL_,goog.math.Long.TWO_PWR_31_DBL_=goog.math.Long.TWO_PWR_32_DBL_/2,goog.math.Long.TWO_PWR_48_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_16_DBL_,goog.math.Long.TWO_PWR_64_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_32_DBL_,goog.math.Long.TWO_PWR_63_DBL_=goog.math.Long.TWO_PWR_64_DBL_/2,goog.math.Long.ZERO=goog.math.Long.fromInt(0),goog.math.Long.ONE=goog.math.Long.fromInt(1),goog.math.Long.NEG_ONE=goog.math.Long.fromInt(-1),goog.math.Long.MAX_VALUE=goog.math.Long.fromBits(-1,2147483647),goog.math.Long.MIN_VALUE=goog.math.Long.fromBits(0,-2147483648),goog.math.Long.TWO_PWR_24_=goog.math.Long.fromInt(1<<24),goog.math.Long.prototype.toInt=function(){return this.low_},goog.math.Long.prototype.toNumber=function(){return this.high_*goog.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()},goog.math.Long.prototype.toString=function(e){var t=e||10;if(t<2||36<t)throw Error("radix out of range: "+t);if(this.isZero())return"0";if(this.isNegative()){if(this.equals(goog.math.Long.MIN_VALUE)){var n=goog.math.Long.fromNumber(t),i=this.div(n),a=i.multiply(n).subtract(this);return i.toString(t)+a.toInt().toString(t)}return"-"+this.negate().toString(t)}for(var r=goog.math.Long.fromNumber(Math.pow(t,6)),a=this,o="";;){var s=a.div(r),l=a.subtract(s.multiply(r)).toInt(),c=l.toString(t);if(a=s,a.isZero())return c+o;for(;c.length<6;)c="0"+c;o=""+c+o}},goog.math.Long.prototype.getHighBits=function(){return this.high_},goog.math.Long.prototype.getLowBits=function(){return this.low_},goog.math.Long.prototype.getLowBitsUnsigned=function(){return this.low_>=0?this.low_:goog.math.Long.TWO_PWR_32_DBL_+this.low_},goog.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(goog.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var e=0!=this.high_?this.high_:this.low_,t=31;t>0&&0==(e&1<<t);t--);return 0!=this.high_?t+33:t+1},goog.math.Long.prototype.isZero=function(){return 0==this.high_&&0==this.low_},goog.math.Long.prototype.isNegative=function(){return this.high_<0},goog.math.Long.prototype.isOdd=function(){return 1==(1&this.low_)},goog.math.Long.prototype.equals=function(e){return this.high_==e.high_&&this.low_==e.low_},goog.math.Long.prototype.notEquals=function(e){return this.high_!=e.high_||this.low_!=e.low_},goog.math.Long.prototype.lessThan=function(e){return this.compare(e)<0},goog.math.Long.prototype.lessThanOrEqual=function(e){return this.compare(e)<=0},goog.math.Long.prototype.greaterThan=function(e){return this.compare(e)>0},goog.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0},goog.math.Long.prototype.compare=function(e){if(this.equals(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.subtract(e).isNegative()?-1:1},goog.math.Long.prototype.negate=function(){return this.equals(goog.math.Long.MIN_VALUE)?goog.math.Long.MIN_VALUE:this.not().add(goog.math.Long.ONE)},goog.math.Long.prototype.add=function(e){var t=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,a=65535&this.low_,r=e.high_>>>16,o=65535&e.high_,s=e.low_>>>16,l=65535&e.low_,c=0,d=0,u=0,p=0;return p+=a+l,u+=p>>>16,p&=65535,u+=i+s,d+=u>>>16,u&=65535,d+=n+o,c+=d>>>16,d&=65535,c+=t+r,c&=65535,goog.math.Long.fromBits(u<<16|p,c<<16|d)},goog.math.Long.prototype.subtract=function(e){return this.add(e.negate())},goog.math.Long.prototype.multiply=function(e){if(this.isZero())return goog.math.Long.ZERO;if(e.isZero())return goog.math.Long.ZERO;if(this.equals(goog.math.Long.MIN_VALUE))return e.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO;if(e.equals(goog.math.Long.MIN_VALUE))return this.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO;if(this.isNegative())return e.isNegative()?this.negate().multiply(e.negate()):this.negate().multiply(e).negate();if(e.isNegative())return this.multiply(e.negate()).negate();if(this.lessThan(goog.math.Long.TWO_PWR_24_)&&e.lessThan(goog.math.Long.TWO_PWR_24_))return goog.math.Long.fromNumber(this.toNumber()*e.toNumber());var t=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,a=65535&this.low_,r=e.high_>>>16,o=65535&e.high_,s=e.low_>>>16,l=65535&e.low_,c=0,d=0,u=0,p=0;return p+=a*l,u+=p>>>16,p&=65535,u+=i*l,d+=u>>>16,u&=65535,u+=a*s,d+=u>>>16,u&=65535,d+=n*l,c+=d>>>16,d&=65535,d+=i*s,c+=d>>>16,d&=65535,d+=a*o,c+=d>>>16,d&=65535,c+=t*l+n*s+i*o+a*r,c&=65535,goog.math.Long.fromBits(u<<16|p,c<<16|d)},goog.math.Long.prototype.div=function(e){if(e.isZero())throw Error("division by zero");if(this.isZero())return goog.math.Long.ZERO;if(this.equals(goog.math.Long.MIN_VALUE)){if(e.equals(goog.math.Long.ONE)||e.equals(goog.math.Long.NEG_ONE))return goog.math.Long.MIN_VALUE;if(e.equals(goog.math.Long.MIN_VALUE))return goog.math.Long.ONE;var t=this.shiftRight(1),n=t.div(e).shiftLeft(1);if(n.equals(goog.math.Long.ZERO))return e.isNegative()?goog.math.Long.ONE:goog.math.Long.NEG_ONE;var i=this.subtract(e.multiply(n)),a=n.add(i.div(e));return a}if(e.equals(goog.math.Long.MIN_VALUE))return goog.math.Long.ZERO;if(this.isNegative())return e.isNegative()?this.negate().div(e.negate()):this.negate().div(e).negate();if(e.isNegative())return this.div(e.negate()).negate();for(var r=goog.math.Long.ZERO,i=this;i.greaterThanOrEqual(e);){for(var n=Math.max(1,Math.floor(i.toNumber()/e.toNumber())),o=Math.ceil(Math.log(n)/Math.LN2),s=o<=48?1:Math.pow(2,o-48),l=goog.math.Long.fromNumber(n),c=l.multiply(e);c.isNegative()||c.greaterThan(i);)n-=s,l=goog.math.Long.fromNumber(n),c=l.multiply(e);l.isZero()&&(l=goog.math.Long.ONE),r=r.add(l),i=i.subtract(c)}return r},goog.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))},goog.math.Long.prototype.not=function(){return goog.math.Long.fromBits(~this.low_,~this.high_)},goog.math.Long.prototype.and=function(e){return goog.math.Long.fromBits(this.low_&e.low_,this.high_&e.high_)},goog.math.Long.prototype.or=function(e){return goog.math.Long.fromBits(this.low_|e.low_,this.high_|e.high_)},goog.math.Long.prototype.xor=function(e){return goog.math.Long.fromBits(this.low_^e.low_,this.high_^e.high_)},goog.math.Long.prototype.shiftLeft=function(e){if(e&=63,0==e)return this;var t=this.low_;if(e<32){var n=this.high_;return goog.math.Long.fromBits(t<<e,n<<e|t>>>32-e)}return goog.math.Long.fromBits(0,t<<e-32)},goog.math.Long.prototype.shiftRight=function(e){if(e&=63,0==e)return this;var t=this.high_;if(e<32){var n=this.low_;return goog.math.Long.fromBits(n>>>e|t<<32-e,t>>e)}return goog.math.Long.fromBits(t>>e-32,t>=0?0:-1)},goog.math.Long.prototype.shiftRightUnsigned=function(e){if(e&=63,0==e)return this;var t=this.high_;if(e<32){var n=this.low_;return goog.math.Long.fromBits(n>>>e|t<<32-e,t>>>e)}return 32==e?goog.math.Long.fromBits(t,0):goog.math.Long.fromBits(t>>>e-32,0)},bpe=0,mask=0,radix=mask+1,digitsStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-";for(bpe=0;1<<bpe+1>1<<bpe;bpe++);bpe>>=1,mask=(1<<bpe)-1,radix=mask+1,one=int2bigInt(1,1,1),t=new Array(0),ss=t,s0=t,s1=t,s2=t,s3=t,s4=t,s5=t,s6=t,s7=t,T=t,sa=t,mr_x1=t,mr_r=t,mr_a=t,eg_v=t,eg_u=t,eg_A=t,eg_B=t,eg_C=t,eg_D=t,md_q1=t,md_q2=t,md_q3=t,md_r=t,md_r1=t,md_r2=t,md_tt=t,primes=t,pows=t,s_i=t,s_i2=t,s_R=t,s_rm=t,s_q=t,s_n1=t,s_a=t,s_r2=t,s_n=t,s_b=t,s_d=t,s_x1=t,s_x2=t,s_aa=t,rpprb=t,function(){function e(e){return JSON.parse(JSON.stringify(e))}function t(e,t,n,a,r){for(i=0;i<r;++i)e[t+i]=n[a+i]}function n(e){var t,n=[],i=e.length;for(t=0;t<i;++t)n.push(e[t]);return n}function a(t,n){var i=[];i.push(e(t));var a;for(a=0;a<n;++a)i.push(e(t));return i.push(0),i}function r(e,t){var n,i=[];for(n=0;n<t;++n)i.push(e);return i.push(0),i}function o(e,t,n,i,a){var r;for(r=0;r<a;r++)e[t+r]=n[i+r]}function s(e,t,n,i){var a;for(a=0;a<i;++a)e[t+a]=n}function l(e,t,n,i){var a,r="";for(a=0;a<i;++a)r+=String.fromCharCode(e[t+a]);return n==r?0:1}function c(e,t){var n,i=[];for(n=0;n<e;++n)i.push(t);return i}function d(t,n){var i,a=[];for(i=0;i<t;++i)a.push(e(n));return a}function u(t,n){var i;for(i=t.length-1;0<=i;--i)n=e(c(t[i],n));return n}function p(e){if(!e)throw Error("assert :P")}var f,m=void 0,h=null,g=0,_=0,v=g,y=g,b=0,w=0;window.WebPDecoder=function(){function k(e){return e==Wt||e==Gt||e==Kt||e==Yt}function M(e){return C(e,1)}function S(e,t){var n=1+((e.la-1)*t>>8),i=n<<8,a=g;for(e.Z>=i?(a=1,e.la-=n,e.Z-=i):(a=0,e.la=n);128>e.la;)e.Z<<=1,e.la<<=1,8==++e.gc&&(e.gc=0,e.bc&&(e.Z+=e.qa[e.Ia++],e.bc--));return a}function A(e,t,n,i){i-=n,2<=i?(e.Z=t[n+0]<<8|t[n+1],e.qa=t,e.Ia=n+2,e.bc=i-2):(e.Z=0,e.qa=h,e.bc=0),e.la=255,e.gc=0}function C(e,t){for(var n=0,i=g,i=t-1;0<=i;i--)n|=S(e,128)<<i;return n}function T(e,t){var n=C(e,t);return M(e)?-n:n}function E(e,t,n,i){var a=w;for(p(e!=h),p(t!=h),p(4294967288>i),e.qa=t,e.Ia=n,e.ya=i,e.T=0,e.Q=0,e.g=0,e.L=0,a=e.fa=0;4>a&&a<e.ya;++a)e.T|=e.qa[e.Ia+e.Q]<<8*a,++e.Q}function $(e){for(;8<=e.g&&e.Q<e.ya;)e.T>>>=8,e.T+=e.qa[e.Ia+e.Q]<<24>>>0,++e.Q,e.g-=8}function I(e){8<=e.g&&$(e),e.Q==e.ya&&32==e.g&&(e.L=1)}function x(e,t){var n=0;
if(p(0<=t),!e.L&&t<gn){if(e.Q==e.ya&&32<=e.g+t&&(e.L=1,32<e.g+t))return n;n=e.T>>e.g&_n[t],e.g+=t,8<=e.g&&8<=e.g&&$(e)}else e.fa=1;return n}function P(e){return e.Pa==e.gb}function D(e,t){return p(e!=h),0==t?0:(e.gb=2*t-1,e.Y=d(e.gb,Wn),e.Y==h?0:(e.Y[0].s=-1,e.Pa=1))}function R(e){e!=h&&(e.Y=h,e.Y=h,e.gb=0,e.Pa=0)}function O(e,t,n,i){for(var a=e.Y,r=0,o=+e.gb;0<i--;){if(r>=o)return 0;if(0>a[r].s){if(P(e))return 0;var s=e,l=s.Y,c=+s.Pa;a[r].s=c-r,s.Pa+=2,l[c+0].s=-1,l[c+1].s=-1}else if(0==a[r].s)return 0;r+=a[r].s+(n>>i&1)}if(0>a[r].s)a[r].s=0;else if(0!=a[r].s)return 0;return a[r].kc=t,1}function N(e,t,n){var i=g,a=0,r=0;for(p(e!=h),p(t!=h),i=0;i<n;++i)0<t[i]&&(++a,r=i);if(!D(e,a))return 0;if(1==a)return 0>r||r>=n?(R(e),0):O(e,r,0,0);if(a=0,r=c(n,g),r==h)return(a=a&&P(e))||R(e),a;var o=g,o=g,i=c(Tn+1,0),s=g,l=c(Tn+1,0),d=0;for(p(t!=h),p(0<n),p(r!=h),o=0;o<n;++o)t[o]>d&&(d=t[o]);if(d>Tn)i=0;else{for(o=0;o<n;++o)++i[t[o]];for(s=i[0]=0,l[0]=-1,o=1;o<=d;++o)s=s+i[o-1]<<1,l[o]=s;for(o=0;o<n;++o)r[o]=0<t[o]?l[t[o]]++:Kn;i=1}if(!i)return(a=a&&P(e))||R(e),a;for(i=0;i<n;++i)if(0<t[i]&&!O(e,i,r[i],t[i]))return(a=a&&P(e))||R(e),a;return(a=P(e))||R(e),a}function L(e,t,n,i,a,r,o){for(var s=g,s=0;s<o;++s)a[r+s]=e[t+s]+n[i+s]&255}function F(n,i,a){var r=n.P.l;if(!(a=0>i||0>a||i+a>n.P.v)&&(a=0==i)){e:{var o=n.Ga,s=n.G,l=n.ub;a=n.P.l;var d=n.P.v,u=n.Xb,f=[h],m=h,_=d*a,v=h,y=h,y="WEBP_FILTER_TYPE",b=g,f=g,w=0,k=g;if(p(0<a&&0<d&&r>=a),p(o!=h&&u!=h),l<=On)a=0;else if(k=o[s+0]>>0&3,y=o[s+0]>>2&3,b=o[s+0]>>4&3,f=o[s+0]>>6&3,k<Nn||k>Ln||y>=Ni||b>Fn||0!=f)a=0;else{if(k==Nn)w=l>=_,f=o,m=s+On;else{if(f=c(_,0),m=0,f==h){a=0;break e}var w=s+On,l=l-On,s=f,v=e(un),M=0,S=Qe();S==h?w=0:(S.l=a,S.v=d,S.N=v,ye(Ft),v.put=Et,v.Mb=Tt,v.Pb=$t,v.ka=h,v.ka=s,v.fd=0,v.width=a,v.height=d,S.a=en,E(S.o,o,w,l),S.Wa=Ii,tt(a,d,1,S,h)&&nt(S,a)&&(S.Wa=$i,M=Je(S,S.V,S.Ha,S.l,S.v,it)),S!=h&&et(S),w=M)}if(w){for(o=Li[y],o!=h?(v=c(_,0),y=0,v==h&&(w=0,k!=Nn&&(m=f=h)),o(f,m,a,d,1,a,v,y),_=v,k=y):(_=f,k=m),o=0;0<d--;)t(u,o,_,k,a),k+=a,o+=r;b==Fn&&(w=f==h||0>=m||0>=a?0:1)}a=w}}a=!a}return a?h:0==i?n.Xb:+i*r}function U(e){var t=e.width,n=e.height,i=e.J;if(0>=t||0>=n||!(i>=Ut&&i<Zt))return nn;if(!e.Fc&&e.Jb==h){var a=h,r=0,o=0,s=0,l=0,a=b,d=t*Fi[i],u=d*n;if(i<Xt||(r=parseInt((t+1)/2,10),s=r*parseInt((n+1)/2,10),i==Jt&&(o=t,l=o*n)),a=u+2*s+l,a!=a)return nn;if(a=c(a,205),a==h)return tn;e.Jb=a,e.jc=h,i<Xt?(t=e.c.RGBA,t.ma=a,t.Sa=h,t.f=d,t.size=u):(t=e.c.Va,t.y=a,t.D=h,t.F=d,t.Wc=u,t.c=a,t.B=h+u,t.nb=r,t.Rc=s,t.S=a,t.C=h+u+s,t.rb=r,t.Uc=s,i==Jt&&(t.p=a,t.q=h+u+2*s),t.Wb=l,t.Fa=o)}return i=1,r=e.J,o=e.width,s=e.height,r>=Ut&&r<Zt?r<Xt?(e=e.c.RGBA,i&=e.f*s<=e.size,i&=e.f>=o*Fi[r],i&=e.ma!=h):(e=e.c.Va,l=e.nb*parseInt((s+1)/2,10),d=e.rb*parseInt((s+1)/2,10),u=e.Fa*s,i&=e.F*s<=e.Wc,i&=l<=e.Rc,i&=d<=e.Uc,i&=u<=e.Wb,i&=e.F>=o,i&=e.nb>=parseInt((o+1)/2,10),i&=e.rb>=parseInt((o+1)/2,10),i&=e.y!=h,i&=e.c!=h,i&=e.S!=h,r==Jt&&(i&=e.Fa>=o,i&=u<=e.Wb,i&=e.p!=h)):i=0,i?en:nn}function B(e,t,n,i){if(i==h||0>=e||0>=t)return nn;if(n!=h){if(n.Ua){var a=n.wc,r=n.vc,o=n.t&-2,s=n.k&-2;if(0>o||0>s||0>=a||0>=r||o+a>e||s+r>t)return nn;e=a,t=r}if(n.I){if(0>=n.Ba||0>=n.Aa)return nn;e=n.Ba,t=n.Aa}}return i.width=e,i.height=t,U(i)}function H(e){return e&-256?0>e?0:255:e}function V(e,t,n,i){var a,r=c(16,0);a=0;var o;for(o=0;4>o;++o){var s=e[t+0]+e[t+8],l=e[t+0]-e[t+8],d=(e[t+4]*la>>16)-(e[t+12]*sa>>16),u=(e[t+4]*sa>>16)+(e[t+12]*la>>16);r[a+0]=s+u,r[a+1]=l+d,r[a+2]=l-d,r[a+3]=s-u,a+=4,t++}for(o=a=0;4>o;++o)e=r[a+0]+4,s=e+r[a+8],l=e-r[a+8],d=(r[a+4]*la>>16)-(r[a+12]*sa>>16),u=(r[a+4]*sa>>16)+(r[a+12]*la>>16),n[i+0+0*fi]=H(n[i+0+0*fi]+(s+u>>3)),n[i+1+0*fi]=H(n[i+1+0*fi]+(l+d>>3)),n[i+2+0*fi]=H(n[i+2+0*fi]+(l-d>>3)),n[i+3+0*fi]=H(n[i+3+0*fi]+(s-u>>3)),a++,i+=fi}function q(e,t,n,i,a){V(e,t,n,i),a&&V(e,t+16,n,i+4)}function z(e,t,n,i){Ui(e,t+0,n,i+0,1),Ui(e,t+32,n,i+4*fi,1)}function W(e,t,n,i){e=e[t+0]+4;var a;for(a=0;4>a;++a)for(t=0;4>t;++t)n[i+t+a*fi]=H(n[i+t+a*fi]+(e>>3))}function G(e,t,n,i){e[t+0]&&W(e,t+0,n,i+0),e[t+16]&&W(e,t+16,n,i+4),e[t+32]&&W(e,t+32,n,i+4*fi),e[t+48]&&W(e,t+48,n,i+4*fi+4)}function K(e,t,n){var i,a=t-fi,r=ra,o=255-e[a-1];for(i=0;i<n;++i){var s,l=r,c=o+e[t-1];for(s=0;s<n;++s)e[t+s]=l[c+e[a+s]];t+=fi}}function Y(e,t,n){var a;for(a=0;16>a;++a)for(i=0;16>i;++i)t[n+a*fi+i]=e}function X(e,t,n){return e+2*t+n+2>>2}function J(e,t,n){var i,a;for(i=0;8>i;++i)for(a=0;8>a;++a)t[n+a+i*fi]=e}function Z(e,t,n){var i=e[t-n],a=e[t+0],r=3*(a-i)+ia[1020+e[t-2*n]-e[t+n]],o=aa[112+(r+4>>3)];e[t-n]=ra[255+i+aa[112+(r+3>>3)]],e[t+0]=ra[255+a-o]}function Q(e,t,n,i){var a=e[t+0],r=e[t+n];return ta[255+e[t-2*n]-e[t-n]]>i||ta[255+r-a]>i}function ee(e,t,n,i,a){var r=e[t-3*n],o=e[t-2*n],s=e[t-n],l=e[t+0],c=e[t+n],d=e[t+2*n],u=e[t+3*n];return 2*ta[255+s-l]+na[255+o-c]>i?0:ta[255+e[t-4*n]-r]<=a&&ta[255+r-o]<=a&&ta[255+o-s]<=a&&ta[255+u-d]<=a&&ta[255+d-c]<=a&&ta[255+c-l]<=a}function te(e,t,n,i){var a;for(a=0;16>a;++a)2*ta[255+e[t+a-n]-e[t+a+0]]+na[255+e[t+a-2*n]-e[t+a+n]]<=i&&Z(e,t+a,n)}function ne(e,t,n,i){var a;for(a=0;16>a;++a)2*ta[255+e[t+a*n-1]-e[t+a*n+0]]+na[255+e[t+a*n-2]-e[t+a*n+1]]<=i&&Z(e,t+a*n,1)}function ie(e,t,n,i){var a;for(a=3;0<a;--a)t+=4*n,te(e,t+0,n,i)}function ae(e,t,n,i){var a;for(a=3;0<a;--a)t+=4,ne(e,t+0,n,i)}function re(e,t,n,i,a,r,o,s){for(;0<a--;){if(ee(e,t+0,n,r,o))if(Q(e,t+0,n,s))Z(e,t+0,n);else{var l=e,c=t+0,d=n,u=l[c-2*d],p=l[c-d],f=l[c+0],m=l[c+d],h=l[c+2*d],g=ia[1020+3*(f-p)+ia[1020+u-m]],_=27*g+63>>7,v=18*g+63>>7,g=9*g+63>>7;l[c-3*d]=ra[255+l[c-3*d]+g],l[c-2*d]=ra[255+u+v],l[c-d]=ra[255+p+_],l[c+0]=ra[255+f-_],l[c+d]=ra[255+m-v],l[c+2*d]=ra[255+h-g]}t+=i}}function oe(e,t,n,i,a,r,o,s){for(;0<a--;){if(ee(e,t+0,n,r,o))if(Q(e,t+0,n,s))Z(e,t+0,n);else{var l=e,c=t+0,d=n,u=l[c-d],p=l[c+0],f=l[c+d],m=3*(p-u),h=aa[112+(m+4>>3)],m=aa[112+(m+3>>3)],g=h+1>>1;l[c-2*d]=ra[255+l[c-2*d]+g],l[c-d]=ra[255+u+m],l[c+0]=ra[255+p-h],l[c+d]=ra[255+f-g]}t+=i}}function se(e,t,n,i,a,r){re(e,t+0,n,1,16,i,a,r)}function le(e,t,n,i,a,r){re(e,t+0,1,n,16,i,a,r)}function ce(e,t,n,i,a,r){var o;for(o=3;0<o;--o)t+=4*n,oe(e,t+0,n,1,16,i,a,r)}function de(e,t,n,i,a,r){var o;for(o=3;0<o;--o)t+=4,oe(e,t+0,1,n,16,i,a,r)}function ue(e,t,n,i,a,r,o,s){re(e,t,a,1,8,r,o,s),re(n,i,a,1,8,r,o,s)}function pe(e,t,n,i,a,r,o,s){re(e,t,1,a,8,r,o,s),re(n,i,1,a,8,r,o,s)}function fe(e,t,n,i,a,r,o,s){oe(e,t+4*a,a,1,8,r,o,s),oe(n,i+4*a,a,1,8,r,o,s)}function me(e,t,n,i,a,r,o,s){oe(e,t+4,1,a,8,r,o,s),oe(n,i+4,1,a,8,r,o,s)}function he(e,t){return t==Jn?0==e.i?0==e.d?ai:ii:0==e.d?ni:Jn:t}function ge(e,t,n,a){for(i=0;4>i;++i)e[t+i]=n[a+i]}function _e(e,t){return 0>e?0:e>t?t:e}function ve(e){e.a="VP8_STATUS_OK",e.xc="OK"}function ye(e){e>>>8!=Ft>>>8&&alert("mismatch error")}function be(e,t,n){return e.a==en&&(e.a=t,e.xc=n,e.za=0),0}function we(t,n){var a=[0],r=_,o=[w],s=e(vi),l=e(yi),c=e(mn),o="VP8StatusCode",s=e(fn);if(t==h)return alert("(dec == null)"),0;if(ve(t),n==h)return be(t,"VP8_STATUS_INVALID_PARAM","null VP8Io passed to VP8GetHeaders()");if(s.data=n.data,s.b=n.b,s.e=n.e,s.b=[s.b],s.e=[s.e],s=[s],o=Dt(s),o!=en)return be(t,o,"Incorrect/incomplete header.");if(s=s[0],s.b=s.b[0],s.e=s.e[0],s.ia)return be(t,an,"Unexpected lossless format encountered.");if(t.Ga==h&&(p(0==t.ub),t.Ga=s.$,t.G=s.G,t.ub=s.pa),r=s.data,a=s.b+s.offset,o=s.e-s.offset,p(s.e>=s.offset),4>o[0])return be(t,ln,"Truncated header.");if(c=r[a+0]|r[a+1]<<8|r[a+2]<<16,s=t.Ac,s.fb=!(1&c)+0,s.Jc=c>>1&7,s.Nc=c>>4&1,s.Ra=c>>5,3<s.Jc)return be(t,"VP8_STATUS_BITSTREAM_ERROR","Incorrect keyframe parameters.");if(!s.Nc)return be(t,"VP8_STATUS_UNSUPPORTED_FEATURE","Frame not displayable.");if(a+=3,o-=3,l=t.P,s.fb){if(7>o)return be(t,"VP8_STATUS_NOT_ENOUGH_DATA","cannot parse picture header");if(!(3<=o&&157==r[a+0]&&1==r[a+1]&&42==r[a+2]))return be(t,"VP8_STATUS_BITSTREAM_ERROR","Bad code word");for(l.l=16383&(r[a+4]<<8|r[a+3]),l.gd=r[a+4]>>6,l.v=16383&(r[a+6]<<8|r[a+5]),l.hd=r[a+6]>>6,a+=7,o-=7,t.Ma=l.l+15>>4,t.hb=l.v+15>>4,n.width=l.l,n.height=l.v,n.I=0,n.Ua=0,n.k=0,n.t=0,n.Ka=n.width,n.K=n.height,n.m=n.width,n.h=n.height,c=t.R,i=0;i<c.Ta.length;++i)c.Ta[i]=255;for(c.z=e(ba),c=t.Ca,p(c!=h),c.pb=0,c.ob=0,c.tb=1,i=0;i<c.Kb.length;++i)c.Kb[i]=0;for(i=0;i<c.Cb.length;++i)c.Cb[i]=0;t.Lb=0}if(s.Ra>o)return be(t,"VP8_STATUS_NOT_ENOUGH_DATA","bad partition length");c=t.o,A(c,r,a,a+s.Ra),a+=s.Ra,o-=s.Ra,s.fb&&(l.uc=M(c),l.$c=M(c));var l=c,d=t.Ca,u=t.R;if(p(l!=h),p(d!=h),d.pb=M(l),d.pb){if(d.ob=M(l),M(l)){var f;for(d.tb=M(l),f=0;f<oi;++f)d.Kb[f]=M(l)?T(l,7):0;for(f=0;f<oi;++f)d.Cb[f]=M(l)?T(l,6):0}if(d.ob)for(f=0;f<ri;++f)u.Ta[f]=M(l)?C(l,8):255}else d.ob=0;if(l.Ab)return be(t,"VP8_STATUS_BITSTREAM_ERROR","cannot parse segment header");if(l=c,d=t.ga,d.Oc=M(l),d.Fb=C(l,6),d.kb=C(l,3),d.oc=M(l),d.oc&&M(l)){for(u=0;u<si;++u)M(l)&&(d.Lc[u]=T(l,6));for(u=0;u<li;++u)M(l)&&(d.Gc[u]=T(l,6))}if(t.A=0==d.Fb?0:d.Oc?1:2,0<t.A)if(t.Ca.pb)for(u=0;u<oi;++u)f=t.Ca.Cb[u],t.Ca.tb||(f+=d.Fb),t.Zb[u]=f;else t.Zb[0]=d.Fb;if(l.Ab)return be(t,"VP8_STATUS_BITSTREAM_ERROR","cannot parse filter header");var l=r,m=a,d=m,o=m+o;f=0;var v=g,y=g;if(t.Hb=1<<C(t.o,2),v=t.Hb-1,u=l,f=m+3*v,o<f)o="VP8_STATUS_NOT_ENOUGH_DATA";else{for(y=0;y<v;++y){var m=u,b=f+(l[d+0]|l[d+1]<<8|l[d+2]<<16);b>o&&(m=l),A(t.ic[+y],u,f,b),u=m,f=b,d+=3}A(t.ic[+v],u,f,o),o=f<o?"VP8_STATUS_OK":"VP8_STATUS_SUSPENDED"}if("VP8_STATUS_OK"!=o)return be(t,"VP8_STATUS_BITSTREAM_ERROR","cannot parse partitions");for(v=t.o,o=C(v,7),l=M(v)?T(v,4):0,d=M(v)?T(v,4):0,u=M(v)?T(v,4):0,f=M(v)?T(v,4):0,v=M(v)?T(v,4):0,y=t.Ca,m=g,m=0;m<oi;++m){if(b=g,y.pb)b=y.Kb[m],y.tb||(b+=o);else{if(0<m){t.yb[m]=t.yb[0];continue}b=o}var k=t.yb[m];k.sc[0]=_a[_e(b+l,127)],k.sc[1]=va[_e(b+0,127)],k.sb[0]=2*_a[_e(b+d,127)],k.sb[1]=101581*va[_e(b+u,127)]>>16,8>k.sb[1]&&(k.sb[1]=8),k.qc[0]=_a[_e(b+f,117)],k.qc[1]=va[_e(b+v,127)]}if(!s.fb)return be(t,rn,"Not a key frame.");for(t.Zc=259,M(c),o=t.R,l=0;l<ci;++l)for(d=0;d<di;++d)for(u=0;u<ui;++u)for(f=0;f<pi;++f)S(c,ka[l][d][u][f])&&(o.z[l][d][u][f]=C(c,8));if(t.pc=M(c),t.pc&&(t.Pc=C(c,8)),t.P.uc){if(a-=8,c=w,8>s.Ra||1!=r[a+8-1])return be(t,an,"RIFF: Inconsistent extra information.");c=r[a+0]<<0|r[a+1]<<8|r[a+2]<<16,t.fc=c,t.dd=h,t.cd=r[a+3]}return t.za=1}function ke(e,t,n,i,a,r){var o=t[a][n];if(!S(e,o[0]))return 0;for(;;){if(++a,S(e,o[1])){var s;if(S(e,o[2])){if(S(e,o[3]))if(S(e,o[6])){s=_,n=S(e,o[8]),o=S(e,o[9+n]),o=2*n+o,n=0,s=Sa[o];var l;for(l=0;l<s.length-1;++l)n+=n+S(e,s[l]);n+=3+(8<<o)}else S(e,o[7])?(n=7+2*S(e,165),n+=S(e,145)):n=5+S(e,159);else n=S(e,o[4])?3+S(e,o[5]):2;o=t[Ma[a]][2]}else o=t[Ma[a]][1],n=1;if(s=Aa[a-1],r[r[r.length-1]+s]=(S(e,128)?-n:n)*i[(0<s)+0],16==a||!S(e,o[0]))return a}else o=t[Ma[a]][0];if(16==a)return 16}}function Me(e,t){return((16777216*e[0]+65536*e[1]+256*e[2]+1*e[3])*Ea&4278190080)>>t}function Se(e,o){var l=0;if(e==h)return 0;if(o==h)return be(e,"VP8_STATUS_INVALID_PARAM","NULL VP8Io parameter in VP8Decode().");if(!e.za&&!we(e,o))return 0;p(e.za);var d;if(o.Mb&&!o.Mb(o))be(e,sn,"Frame setup failed"),d=e.a;else{o.Za&&(e.A=0);var u=fa[e.A];2==e.A?(e.lb=0,e.mb=0):(e.lb=o.t-u>>4,e.mb=o.k-u>>4,0>e.lb&&(e.lb=0),0>e.mb&&(e.mb=0)),e.Ya=o.K+15+u>>4,e.wb=o.Ka+15+u>>4,e.wb>e.Ma&&(e.wb=e.Ma),e.Ya>e.hb&&(e.Ya=e.hb),d=en}if(l=d==en){if(l){var f;e:{if(e.Ja=0,e.qb){var v=e.rc;if(!WebPWorkerReset(v)){f=be(e,tn,"thread initialization failed.");break e}v.Qd=e,v.Rd=e.oa.N,v.Ud=FinishRow,e.jb=0<e.A?ma:ma-1}else e.jb=ha;f=1}var y;if(!(y=!f)){var b;e:{var w=e.jb,k=e.Ma,M=4*k,A=32*k,C=k+1,T=0<e.A?k*(e.qb?2:1):0,E=mi,$=A*(16*w+parseInt(3*fa[e.A]/2,10)),I=e.Ga!=h?e.P.l*e.P.v:0,x=M+A+C+T+E+384+$+I+pa;if(x!=x)b=0;else{if(x>e.Gb){if(e.ib=0,e.Gb=0,e.ib==h){b=be(e,"VP8_STATUS_OUT_OF_MEMORY","no memory during frame initialization.");break e}e.Gb=x}e.dc=205,e.Xc=r(205,16*k),e.Sc=r(205,8*k),e.Vc=r(205,8*k),e.M=T?a(Mi,T):h,e.Sd=T?0:h,e.oa.ha=0,e.oa.M=e.M,p(0==(E&pa)),e.Ea=r(205,1*E),e.z=-12851,e.H=16*k,e.r=8*k;var P=fa[e.A],D=P*e.H,R=P/2*e.r;e.ca=c($,205),e.da=+D,e.aa=e.ca,e.ba=e.da+16*w*e.H+R,e.ra=e.aa,e.sa=e.ba+8*w*e.r+R,e.Xb=I?c(I,_):h,e.La=a(Si,C),e.dc=r(Jn,M),b=1}}y=!b}if(y)l=0;else{if(o.width=e.P.l,o.height=e.P.v,o.w=0,o.y=e.ca,o.D=e.da,o.c=e.aa,o.B=e.ba,o.S=e.ra,o.C=e.sa,o.F=e.H,o.Da=e.r,o.p=h,o.q=h,!oa){var O;for(O=-255;255>=O;++O)ta[255+O]=0>O?-O:O,na[255+O]=ta[255+O]>>1;for(O=-1020;1020>=O;++O)ia[1020+O]=-128>O?-128:127<O?127:O;for(O=-112;112>=O;++O)aa[112+O]=-16>O?-16:15<O?15:O;for(O=-255;510>=O;++O)ra[255+O]=0>O?0:255<O?255:O;oa=1}Ui=q,Bi=z,Hi=W,ji=G,Vi=se,qi=le,zi=ue,Wi=pe,Gi=ce,Ki=de,Yi=fe,Xi=me,Ji=te,Zi=ne,Qi=ie,ea=ae,l=1}}if(l)e:{for(e.d=0;e.d<e.Ya;++e.d){var N=e.ic[e.d&e.Hb-1],L=e,U=L.La[0];for(U.X=0,U.ua=0,s(L.cc,0,Jn,L.cc.length),L.W=(0<L.A&&L.d>=L.mb&&L.d<=L.Ya)+0,e.i=0;e.i<e.Ma;e.i++){var B,H=e,j=N,V=H.o,K=H.La[0],Y=H.La[1+H.i];H.Ca.ob&&(H.Lb=S(V,H.R.Ta[0])?2+S(V,H.R.Ta[2]):0+S(V,H.R.Ta[1])),Y.Nb=H.pc?S(V,H.Pc):0;var X=H.dc;X[X.length-1]=0+4*H.i;var J=H.cc;if(H.wa=!S(V,145),H.wa)for(var Z=H.Eb,Q=0,ee=m,ee=0;4>ee;++ee){var re,oe=J[ee];for(re=0;4>re;++re){var _e=wa[X[X[X.length-1]+re]][oe],ve=0;do ve=ya[2*ve+S(V,_e[ve])];while(0<ve);oe=-ve,X[X[X.length-1]+re]=oe,Z[Q]=oe,Q++}J[ee]=oe}else{var oe=S(V,156)?S(V,128)?ti:ei:S(V,163)?Qn:Zn;for(H.Eb[0]=oe,ve=0;4>ve;++ve)X[ve+X[X.length-1]]=oe;for(ve=0;4>ve;++ve)J[ve]=oe}if(H.Tc=S(V,142)?S(V,114)?S(V,183)?ti:ei:Qn:Zn,V.Ab)B=0;else{if(Y.Nb)K.X=Y.X=0,H.wa||(K.ua=Y.ua=0),H.ja=0,H.Oa=0;else{var ye=m,Se=m,Ce=m,Te=Ca,Ee=H.yb[H.Lb],$e=H.z,Ie=H.La[0],xe=c(4,0),Pe=c(4,0),De=c(4,0),Re=c(4,0),Oe=0,Ne=0,Le=m,Fe=m,Ue=m,$e=r(0,384);if(H.wa)Ce=0,Te=H.R.z[3];else{var Be=c(16,0),He=Y.ua+Ie.ua;Y.ua=Ie.ua=(0<ke(j,H.R.z[1],He,Ee.sb,0,Be))+0;for(var Ce=1,Te=H.R.z[0],je=Be,Ve=$e,qe=c(16,g),ze=g,ze=0;4>ze;++ze){var We=je[0+ze]+je[12+ze],Ge=je[4+ze]+je[8+ze],Ke=je[4+ze]-je[8+ze],Ye=je[0+ze]-je[12+ze];qe[0+ze]=We+Ge,qe[8+ze]=We-Ge,qe[4+ze]=Ye+Ke,qe[12+ze]=Ye-Ke}for(ze=0;4>ze;++ze){var Xe=Ve[Ve.length-1],Je=qe[0+4*ze]+3,We=Je+qe[3+4*ze],Ge=qe[1+4*ze]+qe[2+4*ze],Ke=qe[1+4*ze]-qe[2+4*ze],Ye=Je-qe[3+4*ze];Ve[Xe+0]=We+Ge>>3,Ve[Xe+16]=Ye+Ke>>3,Ve[Xe+32]=We-Ge>>3,Ve[Xe+48]=Ye-Ke>>3,Ve[Ve.length-1]+=64}$e[$e.length-1]=0}for(De=n(Ta[15&Y.X]),Re=n(Ta[15&Ie.X]),Fe=0;4>Fe;++Fe){for(var Ze=Re[Fe],Le=0;4>Le;++Le){var He=Ze+De[Le],Qe=ke(j,Te,He,Ee.sc,Ce,$e);De[Le]=Ze=(0<Qe)+0,Pe[Le]=(0!=$e[$e[$e.length-1]+0])+0,xe[Le]=(1<Qe)+0,$e[$e.length-1]+=16}Re[Fe]=Ze,Ne|=Me(Pe,24-4*Fe),Oe|=Me(xe,24-4*Fe)}for(ye=Me(De,24),Se=Me(Re,24),De=n(Ta[Y.X>>4]),Re=n(Ta[Ie.X>>4]),Ue=0;4>Ue;Ue+=2){for(Fe=0;2>Fe;++Fe){for(Ze=Re[Ue+Fe],Le=0;2>Le;++Le)He=Ze+De[Ue+Le],Qe=ke(j,H.R.z[2],He,Ee.qc,0,$e),De[Ue+Le]=Ze=(0<Qe)+0,Pe[2*Fe+Le]=(0!=$e[$e[$e.length-1]+0])+0,xe[2*Fe+Le]=(1<Qe)+0,$e[$e.length-1]+=16;Re[Ue+Fe]=Ze}Ne|=Me(Pe,8-2*Ue),Oe|=Me(xe,8-2*Ue)}ye|=Me(De,20),Se|=Me(Re,20),Y.X=ye,Ie.X=Se,H.z=$e,H.Oa=Oe+0,H.ja=Oe|Ne,Y.Nb=!H.ja+0}B=!j.Ab}if(!B){l=be(e,"VP8_STATUS_NOT_ENOUGH_DATA","Premature end-of-file encountered."+e.i+" "+e.d);break e}var et=e,tt=et.Ea,nt=hi,it=et.Ea,at=gi,rt=et.Ea,ot=_i;if(0<et.i){for(var st=m,st=-1;16>st;++st)ge(tt,nt+st*fi-4,tt,nt+st*fi+12);for(st=-1;8>st;++st)ge(it,at+st*fi-4,it,at+st*fi+4),ge(rt,ot+st*fi-4,rt,ot+st*fi+4)}else{for(st=0;16>st;++st)tt[nt+st*fi-1]=129;for(st=0;8>st;++st)it[at+st*fi-1]=129,rt[ot+st*fi-1]=129;0<et.d&&(tt[nt-1-fi]=it[at-1-fi]=rt[ot-1-fi]=129)}var lt=et.Xc,ct=16*+et.i,dt=et.Sc,ut=8*+et.i,pt=et.Vc,ft=8*+et.i,mt=et.z,ht=m;if(0<et.d)t(tt,nt-fi,lt,ct,16),t(it,at-fi,dt,ut,8),t(rt,ot-fi,pt,ft,8);else if(0==et.i){for(i=0;21>i;++i)tt[nt-fi-1+i]=127;for(i=0;9>i;++i)it[at-fi-1+i]=127;for(i=0;9>i;++i)rt[ot-fi-1+i]=127}if(et.wa){var gt=nt-fi+16;0<et.d&&(et.i>=et.Ma-1?tt[gt+0]=tt[gt+1]=tt[gt+2]=tt[gt+3]=lt[ct+15]:t(tt,gt+0,lt,ct+16,4));for(var _t=0;4>_t;++_t)tt[_t+gt+4*fi]=tt[_t+gt+4*fi]=tt[_t+gt+8*fi]=tt[_t+gt+12*fi]=tt[_t+gt+0];for(ht=0;16>ht;ht++){var vt=tt,yt=nt+ga[ht];ca[et.Eb[ht]](vt,yt),et.Oa&1<<ht?Ui(mt,16*+ht,vt,yt,0):et.ja&1<<ht&&Hi(mt,16*+ht,vt,yt)}}else{var bt=he(et,et.Eb[0]);if(da[bt](tt,nt),et.ja)for(ht=0;16>ht;ht++)vt=tt,yt=nt+ga[ht],et.Oa&1<<ht?Ui(mt,16*+ht,vt,yt,0):et.ja&1<<ht&&Hi(mt,16*+ht,vt,yt)}if(bt=he(et,et.Tc),ua[bt](it,at),ua[bt](rt,ot),983040&et.ja){var wt=et.z,kt=256;983040&et.Oa?Bi(wt,kt,it,at):ji(wt,kt,it,at)}if(15728640&et.ja){var Mt=et.z,kt=320;15728640&et.Oa?Bi(Mt,kt,rt,ot):ji(Mt,kt,rt,ot)}et.d<et.hb-1&&(t(lt,ct,tt,nt+15*fi,16),t(dt,ut,it,at+7*fi,8),t(pt,ft,rt,ot+7*fi,8));var St=e;if(0<St.A){var At=St.M[1+St.i],Ct=St.La[1+St.i].Nb,Tt=St.Zb[St.Lb];St.ga.oc&&(Tt+=St.ga.Lc[0],St.wa&&(Tt+=St.ga.Gc[0])),Tt=0>Tt?0:63<Tt?63:Tt,At.zc=Tt,0<St.ga.kb&&(Tt=4<St.ga.kb?Tt>>2:Tt>>1,Tt>9-St.ga.kb&&(Tt=9-St.ga.kb)),At.yc=1>Tt?1:Tt,At.ab=(!Ct||St.wa)+0}for(var Et=m,$t=8*St.Ja*St.r,It=St.ca,xt=St.da+16*St.i+16*St.Ja*St.H,Pt=St.aa,Dt=St.ba+8*St.i+$t,Rt=St.ra,Ot=St.sa+8*St.i+$t,Et=0;16>Et;++Et)t(It,xt+Et*St.H,St.Ea,+hi+Et*fi,16);for(Et=0;8>Et;++Et)t(Pt,Dt+Et*St.r,St.Ea,+gi+Et*fi,8),t(Rt,Ot+Et*St.r,St.Ea,+_i+Et*fi,8)}var Nt=e,Lt=o,Ft=1,Ut=Nt.oa;if(Nt.qb){var Bt=Nt.rc,Ft=Ft&WebPWorkerSync(Bt);if(p(Bt.a==OK),Ft){if(Ut.N=Lt,Ut.ha=Nt.Ja,Ut.d=Nt.d,Ut.W=Nt.W,Ut.W){var Ht=Ut.M;Ut.M=Nt.M,Nt.M=Ht}WebPWorkerLaunch(Bt),++Nt.Ja==Nt.jb&&(Nt.Ja=0)}}else{Ut.d=Nt.d,Ut.W=Nt.W;t:{var jt=1,Vt=Nt.oa,qt=fa[Nt.A],zt=qt*Nt.H,Wt=parseInt(qt/2)*Nt.r,Gt=16*Vt.ha*Nt.H,Kt=8*Vt.ha*Nt.r,Yt=Nt.ca,Xt=Nt.da-zt+Gt,Jt=Nt.aa,Zt=Nt.ba-Wt+Kt,Qt=Nt.ra,nn=Nt.sa-Wt+Kt,rn=0==Vt.d,on=(Vt.d>=Nt.hb-1)+0,ln=16*Vt.d,cn=16*(Vt.d+1);if(Vt.W){var dn=Nt,un=g,pn=dn.oa.d;for(p(dn.oa.W),un=dn.lb;un<dn.wb;++un){var fn=dn,mn=un,hn=pn,gn=fn.oa,_n=fn.H,vn=gn.M[1+mn],yn=fn.ca,bn=fn.da+16*gn.ha*_n+16*mn,wn=vn.zc,kn=vn.yc,Mn=2*wn+kn;if(0!=wn)if(1==fn.A)0<mn&&Zi(yn,bn,_n,Mn+4),vn.ab&&ea(yn,bn,_n,Mn),0<hn&&Ji(yn,bn,_n,Mn+4),vn.ab&&Qi(yn,bn,_n,Mn);else{var Sn=fn.r,An=fn.aa,Cn=fn.ba+8*gn.ha*Sn+8*mn,Tn=fn.ra,En=fn.sa+8*gn.ha*Sn+8*mn,$n=fn.Ac.fb?40<=wn?2:15<=wn?1:0:40<=wn?3:20<=wn?2:15<=wn?1:0;0<mn&&(qi(yn,bn,_n,Mn+4,kn,$n),Wi(An,Cn,Tn,En,Sn,Mn+4,kn,$n)),vn.ab&&(Ki(yn,bn,_n,Mn,kn,$n),Xi(An,Cn,Tn,En,Sn,Mn,kn,$n)),0<hn&&(Vi(yn,bn,_n,Mn+4,kn,$n),zi(An,Cn,Tn,En,Sn,Mn+4,kn,$n)),vn.ab&&(Gi(yn,bn,_n,Mn,kn,$n),Yi(An,Cn,Tn,En,Sn,Mn,kn,$n))}}}if(Lt.put){if(rn?(Lt.y=Nt.ca,Lt.D=Nt.da+Gt,Lt.c=Nt.aa,Lt.B=Nt.ba+Kt,Lt.S=Nt.ra,Lt.C=Nt.sa+Kt):(ln-=qt,Lt.y=Yt,Lt.D=Xt,Lt.c=Jt,Lt.B=Zt,Lt.S=Qt,Lt.C=nn),on||(cn-=qt),cn>Lt.K&&(cn=Lt.K),Nt.Ga!=h&&ln<cn&&(0==ln?(Lt.p=F(Nt,ln,cn-ln),Lt.q=0):Lt.q=F(Nt,ln,cn-ln),Lt.p==h)){Ft=be(Nt,an,"Could not decode alpha data.");break t}if(ln<Lt.k){var In=Lt.k-ln,ln=Lt.k;p(!(1&In)),Lt.D+=Nt.H*In,Lt.B+=Nt.r*(In>>1),Lt.C+=Nt.r*(In>>1),Lt.p!=h&&(Lt.q+=Lt.width*In)}ln<cn&&(Lt.D+=Lt.t,Lt.B+=Lt.t>>1,Lt.C+=Lt.t>>1,Lt.p!=h&&(Lt.q+=Lt.t),Lt.w=ln-Lt.k,Lt.m=Lt.Ka-Lt.t,Lt.h=cn-ln,jt=Lt.put(Lt))}Vt.ha+1==Nt.jb&&!on&&(t(Nt.ca,Nt.da-zt,Yt,Xt+16*Nt.H,zt),t(Nt.aa,Nt.ba-Wt,Jt,Zt+8*Nt.r,Wt),t(Nt.ra,Nt.sa-Wt,Qt,nn+8*Nt.r,Wt)),Ft=jt}}if(!Ft){l=be(e,"VP8_STATUS_USER_ABORT","Output aborted.");break e}}var xn;if(!(xn=e.qb&&!WebPWorkerSync(e.rc))){var Pn;(Pn=0<e.fc)&&(p(e),p(0<e.fc),Pn=!1),xn=Pn}l=xn?0:1}var Dn=l;o.Pb&&o.Pb(o),l=1&Dn}return l?(e.za=0,l):(Ae(e),0)}function Ae(e){e!=h&&(e.ib&&(e.ib=0),e.ib=h,e.Gb=0,e.za=0)}function Ce(e,t){return e+(1<<t)-1>>t}function Te(e,t,n,i,a){var r=Za[n]+Qa[t]>>$a;t=Ja[t],i[a+0]=er[e+Xa[n]-Ia],i[a+1]=er[e+r-Ia],i[a+2]=er[e+t-Ia]}function Ee(e,t,n,i,a){var r=Za[n]+Qa[t]>>$a;t=Ja[t],i[a+0]=248&er[e+Xa[n]-Ia]|er[e+r-Ia]>>5,i[a+1]=er[e+r-Ia]<<3&224|er[e+t-Ia]>>3}function $e(e,t,n,i,a){i[a+0]=255,Te(e,t,n,i,a+1)}function Ie(e,t,n,i,a){var r=Ja[t];i[a+0]=tr[e+Xa[n]-Ia]<<4|tr[e+(Za[n]+Qa[t]>>$a)-Ia],i[a+1]=15|tr[e+r-Ia]<<4}function xe(e,t,n,i,a){var r=Xa[n];n=Za[n]+Qa[t]>>$a,i[a+0]=er[e+Ja[t]-Ia],i[a+1]=er[e+n-Ia],i[a+2]=er[e+r-Ia]}function Pe(e,t,n,i,a){xe(e,t,n,i,a),i[a+3]=255}function De(e,t,n,i,a){Te(e,t,n,i,a),i[a+3]=255}function Re(e,t,n){e[t]=((((4278255360&e[t])>>>0)+((4278255360&n)>>>0)&4278255360)>>>0|(16711935&e[t])+(16711935&n)&16711935)>>>0}function Oe(e,t){return((4278124286&(e^t))>>>1)+((e&t)>>>0)>>>0}function Ne(e){return 256>e&&0<e?e:0>=e?0:~e>>24&255}function Le(e,t){return Ne(e+parseInt((e-t)/2,10))}function Fe(){return An}function Ue(e,t){return e&=255,t&=255,127<e&&(e-=256),127<t&&(t-=256),e*t>>>5}function Be(e,t,n,i,a,r,o){var s=g,l=8>>e.n,c=e.U,d=e.u;if(8>l){e=(1<<e.n)-1;for(var u=(1<<l)-1,s=t;s<n;++s){t=0;for(var p=g,p=0;p<c;++p)0==(p&e)&&(t=i[a++]>>8&255),r[o++]=d[t&u],t>>=l}}else for(s=t;s<n;++s)for(p=0;p<c;++p)r[o++]=d[i[a++]>>8&255]}function He(e,t,n,i,a){for(n=t+n;t<n;){var r=e[t++];i[a++]=r>>16&255,i[a++]=r>>8&255,i[a++]=r>>0&255,i[a++]=r>>24&255}}function je(e,t,n,i,a){for(n=t+n;t<n;){var r=e[t++];i[a++]=r>>16&240|r>>12&15,i[a++]=r>>0&240|r>>28&15}}function Ve(e,t,n,i,a){for(n=t+n;t<n;){var r=e[t++];i[a++]=r>>24&255,i[a++]=r>>16&255,i[a++]=r>>8&255,i[a++]=r>>0&255}}function qe(e,t,n,i){return x(e,8)!=yn?0:(t[0]=x(e,bn)+1,n[0]=x(e,bn)+1,i[0]=x(e,1),x(e,wn),1)}function ze(e,t){var n=g;return 4>e?e+1:(n=e-2>>1,(2+(1&e)<<n)+x(t,n)+1)}function We(e,t){if(t.Q+8>t.ya){var n=e.Y,i=0;for(p(n!=h);0!=n[i].s;){var a=n,r=t,o=r.T>>r.g&1;r.L?r.fa=1:(++r.g,8<=r.g&&$(r),r.Q==r.ya&&32==r.g&&(r.L=1)),i=i+a[i].s+o}return n[i].kc}for(n=e.Y,i=0,p(n!=h);0!=n[i].s;)a=n,r=t.T>>t.g&1,++t.g,i=i+a[i].s+r;return n[i].kc}function Ge(e,t){if(e!=h)for(var n=g,i=g,n=0;n<t;++n)for(var a=e[n].va,i=0;i<Sn;++i)R(a[i])}function Ke(e,t,n){return t=0==e.eb?0:e.ac[e.bd+e.Ec*(n>>e.eb)+(t>>e.eb)],p(t<e.hc),e.Db[+t]}function Ye(n,i,a,r){var s=n.Na,l=n.O,c=l+i,d=a,u=r;for(r=n.Xa,a=n.vb,t(r,a,d,u,n.l*i);0<s--;){i=n.nc[s];var f=l,m=c,_=d,v=u,u=r,d=a;switch(p(f<m),p(m<=i.Vb),i.Qc){case Dn:for(_=0,i=d+(m-f)*i.U;d<i;){var m=u,v=d,b=m[v]>>8&255,w=(16711935&m[v])>>>0,w=w+(b<<16|b),w=16711935&w;u[d++]=((4278255360&m[v])>>>0|w)>>>0,32==f&&_++}break;case xn:var k=i,M=f,_=m,v=u,b=d,w=k.U;if(0==M){var S=g;for(Re(v,b,An),S=1;S<w;++S)Re(v,b+S,v[b+S-1]);b+=w,++M}for(var A=(1<<k.n)-1,C=Ce(w,k.n),T=k.u,k=+(M>>k.n)*C;M<_;){var E=T,$=k,I=h;for(Re(v,b,v[b-w+0]),I=Pa[E[$++]>>8&15],S=1;S<w;++S){var x=y;0==(S&A)&&(I=Pa[E[$++]>>8&15]),x=I(v[b+S-1],v,b+S-w),Re(v,b+S,x)}b+=w,++M,0==(M&A)&&(k+=C)}m!=i.Vb&&(i=i.U,t(u,d-i,u,d+(m-f-1)*i,i));break;case Pn:for(_=i.U,v=(1<<i.n)-1,b=Ce(_,i.n),w=i.u,i=+(f>>i.n)*b;f<m;){for(S=w,M=i,A=e(Da),C=g,C=0;C<_;++C)0==(C&v)&&(T=S[M++],k=A,k.Cc=T>>0&255,k.Bc=T>>8&255,k.Kc=T>>16&255),T=u[d+C],k=T>>>8,E=T>>>16,$=T,E+=Ue(A.Cc,k),E&=255,$+=Ue(A.Bc,k),$+=Ue(A.Kc,E),$&=255,u[d+C]=(4278255360&T|E<<16|$)>>>0;d+=_,++f,0==(f&v)&&(i+=b)}break;case Rn:_==u&&0<i.n?(_=(m-f)*Ce(i.U,i.n),v=d+(m-f)*i.U-_,o(u,v,u,d,_),Be(i,f,m,u,v,u,d)):Be(i,f,m,_,v,u,d)}d=r,u=a}}function Xe(e,t){var n=e.V,i=e.Ha+e.l*e.O,a=t-e.O;if(!(0>=a)){Ye(e,a,n,i);var r=e.N,n=e.Xa,o=[e.vb],i=e.O,a=t,s=o,l=r.width;if(p(i<a),p(r.t<r.Ka),a>r.K&&(a=r.K),i<r.k){var c=r.k-i,i=r.k;s[0]+=l*c}if(i>=a?i=0:(s[0]+=r.t,r.w=i-r.k,r.m=r.Ka-r.t,r.h=a-i,i=1),i){if(o=o[0],i=e.Ib,a=r.width,i.J<Xt){var d=i.c.RGBA,s=d.ma,u=d.Sa+e.xa*d.f;if(r.I)n=EmitRescaledRows(e,n,o,a,r.h,s,u,d.f);else{for(var l=i.J,c=r.m,r=r.h,d=d.f,f=r;0<f--;){var m=n,h=o,g=c,_=s,v=u;switch(l){case Ut:for(g=h+g;h<g;){var y=m[h++];_[v++]=y>>16&255,_[v++]=y>>8&255,_[v++]=y>>0&255}break;case Bt:He(m,h,g,_,v);break;case Wt:He(m,h,g,_,v),WebPApplyAlphaMultiply(_,0,g,1,0);break;case Ht:for(g=h+g;h<g;)y=m[h++],_[v++]=y>>0&255,_[v++]=y>>8&255,_[v++]=y>>16&255;break;case jt:Ve(m,h,g,_,v);break;case Gt:Ve(m,h,g,_,v),WebPApplyAlphaMultiply(_,0,g,1,0);break;case Vt:Ve(m,h,g,_,v);break;case Kt:Ve(m,h,g,_,v),WebPApplyAlphaMultiply(_,1,g,1,0);break;case qt:je(m,h,g,_,v);break;case Yt:je(m,h,g,_,v),WebPApplyAlphaMultiply4444(_,g,1,0);break;case zt:for(g=h+g;h<g;)y=m[h++],_[v++]=y>>16&248|y>>13&7,_[v++]=y>>5&224|y>>3&31;break;default:p(0)}o+=a,u+=d}n=r}e.xa+=n}else e.xa=r.I?EmitRescaledRowsYUVA(e,n,o,a,r.h):EmitRowsYUVA(e,n,o,a,r.m,r.h);p(e.xa<=i.height)}e.O=t,p(e.O<=e.v)}}function Je(e,t,n,i,a,r){var o=1,s=0,l=0,c=e.o,d=e.cb,u=d.Db,f=n,m=n;n+=i*a,a=En+$n;var _=a+d.xb,v=0<d.xb?d.Yb:h,y=d.Dc,b=!1;p(u!=h);e:for(;!c.L&&f<n;){var w=g;if(b||(0==(s&y)&&(u=Ke(d,s,l)),I(c),w=We(u.va[Ua],c)),w<En||b){if(!b){var k=o=b=g,M=g;I(c),b=We(u.va[Ba],c),o=w,I(c),k=We(u.va[Ha],c),I(c),M=We(u.va[ja],c),t[f]=(M<<24>>>0)+(b<<16)+(o<<8)+k}if(b=!1,++f,++s,s>=i&&(s=0,++l,r!=h&&0==l%Ra&&r(e,l),v!=h))for(;m<f;)o=t[m++],v.ea[Xn*o>>>v.bb]=o}else if(w<a){for(k=k=g,o=ze(w-En,c),w=We(u.va[Va],c),I(c),k=ze(w,c),k>Ga?k-=Ga:(w=Ka[k-1],w=(w>>4)*i+(8-(15&w)),k=1<=w?w:1),w=g,w=0;w<o;++w)t[f+w]=t[f+w-k];for(f+=o,s+=o;s>=i;)s-=i,++l,r!=h&&0==l%Ra&&r(e,l);if(f<n&&(u=Ke(d,s,l),v!=h))for(;m<f;)o=t[m++],v.ea[Xn*o>>>v.bb]=o}else if(w<_){for(b=w-a,p(v!=h);m<f;)w=t[m++],v.ea[Xn*w>>>v.bb]=w;w=t,k=f,M=v,p(b<=-1>>>M.bb),w[k]=M.ea[b],b=!0;continue e}(o=!c.fa)||End}return r!=h&&r(e,l),c.fa||!o||c.L&&f<n?(o=0,e.a=c.L?on:an):f==n&&(e.Ob=$i),o}function Ze(e){p(e),e.ac=h,Ge(e.Db,e.hc);var t=e.Yb;t!=h&&(t.ea=h,t.ea=h),p(e)}function Qe(){var t=e(Oi);return t==h?h:(t.a=en,t.Wa=xi,t.Ob=xi,t)}function et(e){var t=g;if(e!=h){for(Ze(e.cb),e.V=h,e.V=h,t=0;t<e.Na;++t){var n=e.nc[t];n.u=h,n.u=h}e.Na=0,e.Ub=0,e.Mc=h,e.Mc=h,e.Ib=h}}function tt(t,n,i,a,r){var o=1;t=[t],n=[n];for(var s=a.o,l=a.cb,u=h,f=h,f=0;;){if(i)for(;o&&x(s,1);){var m=t,_=n,v=a,y=1,b=v.o,o=v.nc[v.Na],w=x(b,2);if(v.Ub&1<<w)o=0;else{switch(v.Ub|=1<<w,o.Qc=w,o.U=m[0],o.Vb=_[0],o.u=[h],o.b=0,++v.Na,p(v.Na<=In),w){case xn:case Pn:o.n=x(b,3)+2,y=tt(Ce(o.U,o.n),Ce(o.Vb,o.n),0,v,o.u);break;case Rn:if(_=x(b,8)+1,y=16<_?0:4<_?1:2<_?2:3,m[0]=Ce(o.U,y),o.n=y,m=y=tt(_,1,0,v,o.u))if(m=_,v=o,y=g,_=1<<(8>>>v.n)>>>0,b=Array(_),b==h)m=0;else{var w=v.u[0],k=v.b;for(b[0]=v.u[0][v.b+0],y=1;y<m;++y)b[y]=((((4278255360&w[k+y])>>>0)+((4278255360&b[y-1])>>>0)&4278255360)>>>0|(16711935&w[k+y])+(16711935&b[y-1])&16711935)>>>0;for(;y<_;++y)b[y]=0;v.u[0]=h,v.b=h,v.u[0]=b,v.b=0,m=1}y=m;break;case Dn:break;default:p(0)}o.u=o.u[0],o=y}}if(o&&x(s,1)&&(f=x(s,4),o=1<=f&&f<=Mn,!o)){a.a=an;break}if(o)e:{var o=a,M=t[0],S=n[0],m=f,k=w=g,k=o.o,v=o.cb,y=[h],_=h,b=1;if(i&&x(k,1)){var w=x(k,3)+2,M=Ce(M,w),A=Ce(S,w),S=M*A;if(!tt(M,A,0,o,y)){o.a=an,Ge(_,b),o=0;break e}for(y=y[0],v.eb=w,w=0;w<S;++w)M=y[w]>>>8&65535,y[w]=M,M>=b&&(b=M+1)}if(k.fa)Ge(_,b),o=0;else if(p(65536>=b),_=d(b,Di),_==h)o.a=tn,Ge(_,b),o=0;else{for(w=0;w<b;++w)for(S=_[w].va,k=0;k<Sn;++k){M=qa[k],0==k&&0<m&&(M+=1<<m);t:{var C=M,M=o,T=S[+k],E=0,A=M.o;if(x(A,1)){var $=Array(2),L=Array(2),F=Array(2),E=x(A,1)+1,U=x(A,1);$[0]=x(A,0==U?1:8),L[0]=0,F[0]=E-1,2==E&&($[1]=x(A,8),L[1]=1,F[1]=E-1);n:{var U=0,B=g;if(p(T!=h),p(F!=h),p(L!=h),p($!=h),D(T,E)){for(B=0;B<E;++B)if(L[B]!=Kn){if(0>$[B]||$[B]>=C){(U=U&&P(T))||R(T),E=U;break n}if(!O(T,$[B],L[B],F[B])){(U=U&&P(T))||R(T),E=U;break n}}(U=(U=1)&&P(T))||R(T),E=U}else E=0}}else{if(E=g,L=[],$=x(A,4)+4,$>za){M.a=an,M=0;break t}if(F=Array(C),F==h){M.a=tn,M=0;break t}for(E=0;E<$;++E)L[Wa[E]]=x(A,3);n:{var E=M,H=L,L=C,$=F,U=0,B=E.o,j=g,V=g,q=Cn,z=e(Gn);if(N(z,H,za)){if(x(B,1)){if(j=2+2*x(B,3),V=2+x(B,j),V>L){E.a=an,R(z),E=U;break n}}else V=L;for(j=0;j<L;){var W=g;if(0==V--)break;if(I(B),W=We(z,B),W<Oa)$[j++]=W,0!=W&&(q=W);else{var H=W==Na,W=W-Oa,G=Fa[W],W=x(B,La[W])+G;if(j+W>L){E.a=an,R(z),E=U;break n}for(H=H?q:0;0<W--;)$[j++]=H}}U=1,R(z),E=U}else E.a=an,E=0}E&&(E=N(T,F,C))}(E=E&&!A.fa)?M=1:(M.a=an,M=0)}if(!M){Ge(_,b),o=0;break e}}v.ac=y,v.hc=b,v.Db=_,o=1}}if(!o){a.a=an;break}if(0<f){if(l.xb=1<<f,m=l.Yb,v=1<<f,p(m!=h),p(0<f),m.ea=c(v,0),m.ea==h?f=0:(m.bb=32-f,f=1),!f){a.a=tn,o=0;break}}else l.xb=0;if(f=a,m=t[0],v=n[0],y=f.cb,_=y.eb,f.l=m,f.v=v,y.Ec=Ce(m,_),y.Dc=0==_?-1:(1<<_)-1,i){a.Ob=Ii;break}if(u=Array(t*n),f=0,u==h){a.a=tn,o=0;break}o=(o=Je(a,u,f,t,n,h))&&!s.fa;break}return o?(r!=h?r[0]=u:(p(u==h),p(i)),i||Ze(l)):(Ze(l),a.a==an&&a.o.L&&(a.a=on)),o}function nt(e,t){var n=e.l*e.v,i=n+t+t*Ra;return p(e.l<=t),e.V=Array(i),e.Ha=0,e.V==h?(e.Xa=h,e.a=tn,0):(e.Xa=e.V,e.vb=e.Ha+n+t,1)}function it(e,t){var n=t-e.O,i=e.V,a=e.Ha+e.l*e.O;if(!(0>=n)){Ye(e,n,i,a);for(var a=e.N.width,n=a*n,i=e.N.ka,a=e.N.fd+a*e.O,r=e.Xa,o=e.vb,s=g,s=0;s<n;++s)i[a+s]=r[o+s]>>>8&255;e.O=e.xa=t}}function at(e,t){var n=[g],i=[g],a=[g];return e==h?0:t==h?(e.a=nn,0):(e.N=t,e.a=en,E(e.o,t.data,t.b,t.e),qe(e.o,n,i,a)?(e.Ob=xi,t.width=n[0],t.height=i[0],e.Wa=Ii,tt(n[0],i[0],1,e,h)?1:(et(e),p(e.a!=en),0)):(e.a=an,et(e),p(e.a!=en),0))}function rt(e){var t=h,n=h;return e==h?0:(t=e.N,p(t!=h),n=t.ka,p(n!=h),e.Ib=n.j,e.Hc=n.Hc,p(e.Ib!=h),Lt(n.Qa,t,jt)?!nt(e,t.width)||t.I&&!AllocateAndInitRescaler(e,t)?(et(e),p(e.a!=en),0):(e.Wa=$i,Je(e,e.V,e.Ha,e.l,e.v,Xe)?(n.ec=e.xa,et(e),1):(et(e),p(e.a!=en),0)):(e.a=nn,et(e),p(e.a!=en),0))}function _e(e,t){return 0>e?0:e>t?t:e}function ot(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v){var y,b=g-1>>1,w=a[r+0]|o[s+0]<<16,k=l[c+0]|d[u+0]<<16;if(e){var M=3*w+k+131074>>2;_(e[t+0],255&M,M>>16,p,f)}for(n&&(M=3*k+w+131074>>2,_(n[i+0],255&M,M>>16,m,h)),y=1;y<=b;++y){var S=a[r+y]|o[s+y]<<16,A=l[c+y]|d[u+y]<<16,M=w+S+k+A+524296,C=M+2*(S+k)>>3,T=M+2*(w+A)>>3;e&&(M=C+w>>1,w=T+S>>1,_(e[t+2*y-1],255&M,M>>16,p,f+(2*y-1)*v),_(e[t+2*y-0],255&w,w>>16,p,f+(2*y-0)*v)),n&&(M=T+k>>1,w=C+A>>1,_(n[i+2*y-1],255&M,M>>16,m,h+(2*y-1)*v),_(n[i+2*y+0],255&w,w>>16,m,h+(2*y+0)*v)),w=S,k=A}1&g||(e&&(M=3*w+k+131074>>2,_(e[t+g-1],255&M,M>>16,p,f+(g-1)*v)),n&&(M=3*k+w+131074>>2,_(n[i+g-1],255&M,M>>16,m,h+(g-1)*v)))}function st(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g){ot(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,Te,3)}function lt(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g){ot(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,xe,3)}function ct(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g){ot(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,De,4)}function dt(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g){ot(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,Pe,4)}function ut(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g){ot(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,$e,4)}function pt(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g){ot(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,Ie,2)}function ft(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g){ot(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,Ee,2)}function mt(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m){var h;for(h=0;h<p-1;h+=2)f(e[t+0],a[r+0],o[s+0],l,c),f(e[t+1],a[r+0],o[s+0],l,c+m),f(n[i+0],a[r+0],o[s+0],d,u),f(n[i+1],a[r+0],o[s+0],d,u+m),t+=2,i+=2,r++,s++,c+=2*m,u+=2*m;h==p-1&&(f(e[t+0],a[r+0],o[s+0],l,c),f(n[i+0],a[r+0],o[s+0],d,u))}function ht(e,t,n,i,a,r,o,s,l,c,d,u,p){mt(e,t,n,i,a,r,o,s,l,c,d,u,p,De,4)}function gt(e,t,n,i,a,r,o,s,l,c,d,u,p){mt(e,t,n,i,a,r,o,s,l,c,d,u,p,Pe,4)}function _t(e,t,n,i,a,r,o,s,l,c,d,u,p){mt(e,t,n,i,a,r,o,s,l,c,d,u,p,$e,4)}function vt(e,t,n,i,a,r,o,s,l,c,d,u,p){mt(e,t,n,i,a,r,o,s,l,c,d,u,p,Ie,2)}function yt(e,t,n,i,a,r){for(;0<a--;){for(var o=e,s=t+(n?1:0),l=e,c=t+(n?0:3),d=g,d=0;d<i;++d){var u=l[c+4*d];if(255!=u){var u=32897*u,p=o,f=s+4*d+0;o[s+4*d+0]*u>>>23,p[f]=m,p=o,f=s+4*d+1,o[s+4*d+1]*u>>>23,p[f]=m,p=o,f=s+4*d+2,o[s+4*d+2]*u>>>23,p[f]=m}}t+=r}}function bt(e,n){var i,a=n.j.c.Va,r=a.y,o=a.D+e.w*a.F,s=a.c,l=a.B+(e.w>>1)*a.nb,c=a.S,d=a.C+(e.w>>1)*a.rb,u=e.m,p=e.h,f=parseInt((u+1)/2,10),m=parseInt((p+1)/2,10);for(i=0;i<p;++i)t(r,o+i*a.F,e.y,e.D+i*e.F,u);for(i=0;i<m;++i)t(s,l+i*a.nb,e.c,e.B+i*e.Da,f),t(c,d+i*a.rb,e.S,e.C+i*e.Da,f);return e.h}function wt(e,t){var n,i=t.j,a=i.c.RGBA,r=a.ma,o=a.Sa+e.w*a.f,s=e.y,l=e.D,c=e.c,d=e.B,u=e.S,p=e.C,i=ar[i.J],f=e.m,m=e.h-1;for(n=0;n<m;n+=2)i(s,l,s,l+e.F,c,d,u,p,r,o,r,o+a.f,f),l+=2*e.F,d+=e.Da,p+=e.Da,o+=2*a.f;return n==m&&i(s,l,s,l,c,d,u,p,r,o,r,o,f),e.h}function kt(e,n){var i=e.h,a=n.j.c.RGBA,r=a.ma,o=a.Sa+e.w*a.f,s=ir[n.j.J],l=e.y,c=e.D,d=e.c,u=e.B,p=e.S,f=e.C,m=n.Qb,g=n.Rb,_=n.lc,v=n.mc,y=e.w,b=e.w+e.h,w=e.m,k=parseInt((w+1)/2,10);for(0==y?s(h,h,l,c,d,u,p,f,d,u,p,f,h,h,r,o,w):(s(n.Sb,n.Tb,l,c,m,g,_,v,d,u,p,f,r,o-a.f,r,o,w),++i);y+2<b;y+=2)m=d,g=u,_=p,v=f,u+=e.Da,f+=e.Da,o+=2*a.f,c+=2*e.F,s(l,c-e.F,l,c,m,g,_,v,d,u,p,f,r,o-a.f,r,o,w);return c+=e.F,e.k+b<e.K?(t(n.Sb,n.Tb,l,c,1*w),t(n.Qb,n.Rb,d,u,1*k),t(n.lc,n.mc,p,f,1*k),i--):1&b||s(l,c,h,h,d,u,p,f,d,u,p,f,r,o+a.f,h,h,w),i}function Mt(e,n){var i=e.p,a=e.q,r=n.j.c.Va,o=e.m,l=e.h,c=r.p,d=r.q+e.w*r.Fa,i=e.p,a=e.q,u=g;if(i!=h)for(u=0;u<l;++u)t(c,d,i,a,1*o),a+=e.width,d+=r.Fa;else if(r.p!=h)for(u=0;u<l;++u)s(c,d,255,o),d+=r.Fa;return 0}function St(e,t,n){var i=e.w;return n[0]=e.h,e.Bb&&(0==i?--n[0]:(--i,t[0]-=e.width),e.k+e.w+e.h==e.K&&(n[0]=e.K-e.k-i)),i}function At(e,t){var n=e.p,i=[e.q];if(n!=h){for(var a=e.m,r=t.j.J,o=r==Vt||r==Kt,s=t.j.c.RGBA,l=[g],c=St(e,i,l),i=i[0],d=s.ma,c=s.Sa+c*s.f,u=c+(o?0:3),p=255,f=g,m=g,m=0;m<l[0];++m){for(f=0;f<a;++f){var _=n[i+f];
d[u+4*f]=_,p&=_}i+=e.width,u+=s.f}255!=p&&k(r)&&WebPApplyAlphaMultiply(d,c,o,a,l,s.f)}return 0}function Ct(e,t){var n=e.p,i=[e.q];if(n!=h){var a=e.m,r=t.j.J,o=t.j.c.RGBA,s=[g],l=St(e,i,s),i=i[0],c=o.ma,l=o.Sa+l*o.f,d=l+1,u=15,p=g;for(j=0;j<s[0];++j){for(p=0;p<a;++p){var f=n[i+p]>>4;c[d+2*p]=240&c[d+2*p]|f,u&=f}i+=e.width,d+=o.f}15!=u&&k(r)&&WebPApplyAlphaMultiply4444(c,l,a,s,o.f)}return 0}function Tt(e){var t=e.ka,n=t.j.J,i=n<Xt,a=n==Bt||n==jt||n==Vt||n==qt||n==Jt||k(n);if(t.memory=h,t.$a=h,t.zb=h,t.ad=h,!Lt(t.Qa,e,a?Xt:Jt))return 0;if(e.I){if(!(i?InitRGBRescaler(e,t):InitYUVRescaler(e,t)))return alert("memory error #1"),0}else{if(i){if(t.$a=wt,e.Bb){var r,o=e.m+1>>1,s=e.m+2*o,l=[];for(r=0;r<s;++r)l.push(205);if(l.push(0),t.memory=l,t.memory==h)return alert("memory error #2"),0;t.Sb=t.memory,t.Tb=0,t.Qb=t.Sb,t.Rb=t.Tb+e.m,t.lc=t.Qb,t.mc=t.Rb+o,t.$a=kt,ir[Ut]=st,ir[Bt]=ct,ir[Ht]=lt,ir[jt]=dt,ir[Vt]=ut,ir[qt]=pt,ir[zt]=ft}}else t.$a=bt;a&&(k(n)&&(WebPApplyAlphaMultiply=yt,ir[Wt]=ct,ir[Gt]=dt,ir[Kt]=ut,ir[Yt]=pt),t.zb=n==qt||n==Yt?Ct:i?At:Mt)}if(i&&!nr){for(e=0;256>e;++e)Xa[e]=89858*(e-128)+Ya>>$a,Qa[e]=-22014*(e-128)+Ya,Za[e]=-45773*(e-128),Ja[e]=113618*(e-128)+Ya>>$a;for(e=Ia;e<xa;++e)t=76283*(e-16)+Ya>>$a,er[e-Ia]=_e(t,255),tr[e-Ia]=_e(t+8>>4,15);nr=1}return 1}function Et(e){var t=e.ka,n=e.m,i=e.h;return p(!(1&e.w)),0>=n||0>=i?0:(n=t.$a(e,t),t.ec+=n,t.zb&&t.zb(e,t),1)}function $t(e){e=e.ka,e.memory="",e.memory=h}function It(e,t){return e[t+0]|e[t+1]<<8|e[t+2]<<16}function xt(e,t){return(It(e,t)|e[t+3]<<24)>>>0}function Pt(t,n,i,a,r,o,s){var c=0,d=[0],u="VP8StatusCode",f=e(fn);if(t==h||i[0]<Hn)return ln;f.data=t,f.b=[n[0]],f.e=[i[0]],f.na=[f.na];e:{if(c=f.na,p(t!=h),p(i!=h),p(c!=h),c[0]=0,i[0]>=Hn&&!l(t,n[0],"RIFF",Un)){if(l(t,n[0]+8,"WEBP",Un)){u=an;break e}var v=xt(t,n[0]+Un);if(v<Un+Bn){u=an;break e}c[0]=v,n[0]+=Hn,i[0]-=Hn}else c[0]=0;u=en}if(f.na=f.na[0],u!=en)return u;c=0<f.na,v=[0];e:if(u=Bn+jn,p(t!=h),p(i!=h),p(d!=h),d[0]=0,i[0]<Bn)u=ln;else{if(!l(t,n[0],"VP8X",Un)){var b=g,k=g,M=y;if(xt(t,n[0]+Un)!=jn){u=an;break e}if(i[0]<u){u=ln;break e}if(M=xt(t,n[0]+8),b=1+It(t,n[0]+12),k=1+It(t,n[0]+15),b*k>=qn){u=an;break e}v!=h&&(v[0]=M),a!=h&&(a[0]=b),r!=h&&(r[0]=k),n[0]+=u,i[0]-=u,d[0]=1}u=en}if(u!=en)return u;if(!c&&d[0])return an;if(o!=h&&(o[0]=!!(v[0]&Vn)),d&&s==h)return en;if(i<Un)return ln;if(c&&d[0]||!c&&!d[0]&&!l(t,n[0],"ALPH",Un)){f.$=[f.$],f.G=[f.G],f.pa=[f.pa];e:{var d=f.na,c=f.$,v=f.G,u=f.pa,b=_,k=0,M=w,S=Un+Bn+jn;for(p(t!=h),p(i!=h),b=t,k=n[0],M=i[0],p(c!=h),p(u!=h),c[0]=h,v[0]=h,u[0]=0;;){var A=y,C=y;if(n[0]=k,i[0]=M,M<Bn){u=ln;break e}if(A=xt(b,k+Un),C=Bn+A+1&-2,S+=C,0<d&&S>d){u=an;break e}if(M<C){u=ln;break e}if(l(b,k,"ALPH",Un)){if(!l(b,k,"VP8 ",Un)||!l(b,"VP8L",Un)){u=en;break e}}else c[0]=b,v[0]=k+Bn,u[0]=A;k+=C,M-=C}u=m}if(f.$=f.$[0],f.G=f.G[0],f.pa=f.pa[0],u!=en)return u}f.ta=[f.ta],f.ia=[f.ia];e:if(d=f.na,c=f.ta,v=f.ia,k=!l(t,n[0],"VP8 ",Un),u=!l(t,n[0],"VP8L",Un),b=Un+Bn,p(t!=h),p(i!=h),p(c!=h),p(v!=h),i[0]<Bn)u=ln;else{if(k||u){if(k=xt(t,n[0]+Un),d>=b&&k>d-b){u=an;break e}c[0]=k,n[0]+=Bn,i[0]-=Bn,v[0]=u}else v[0]=1<=i&&t[n+0]==yn,c[0]=i[0];u=en}if(f.ta=f.ta[0],f.ia=f.ia[0],u!=en)return u;if(f.ta>zn)return an;if(f.ia){if(i[0]<kn)return ln;d=n[0],c=i[0],a=a?a[0]:h,r=r?r[0]:h,v=o?o[0]:h,t==h||c<kn?t=0:(u=[g],b=[g],k=[g],M=e(hn),E(M,t,d,c),qe(M,u,b,k)?(a!=h&&(a[0]=u[0]),r!=h&&(r[0]=b[0]),v!=h&&(v[0]=k[0]),t=1):t=0)}else{if(i<vn)return ln;d=n[0],c=i[0],a=a?a[0]:h,r=r?r[0]:h,!(t==h||c<vn)&&3<=c-3&&157==t[d+3+0]&&1==t[d+3+1]&&42==t[d+3+2]?(c=t[d+0]|t[d+1]<<8|t[d+2]<<16,v=16383&(t[d+7]<<8|t[d+6]),t=16383&(t[d+9]<<8|t[d+8]),!(!(1&c)+0)||3<(c>>1&7)||!(c>>4&1)||c>>5>=f.ta?t=0:(a&&(a[0]=v),r&&(r[0]=t),t=1)):t=0}return t?(o!=h&&(o[0]|=f.$!=h),s!=h&&(s[0]=f,s[0].offset=n[0]-s[0].b,p(n[0]-s[0].b<zn),p(s[0].offset==s[0].e-i[0])),en):an}function Dt(e){return p(e!=h),Pt(e[0].data,e[0].b,e[0].e,h,h,h,e)}function Rt(t,n,i,a){var r="VP8StatusCode",o=e(un),s=e(fn);if(s.data=t,s.b=n,s.e=i,s.b=[s.b],s.e=[s.e],s=[s],r=Dt(s),r!=en)return r;if(s=s[0],s.b=s.b[0],s.e=s.e[0],p(a!=h),ye(Ft),o.data=s.data,o.b=n+s.offset,o.e=s.e-s.offset,o.put=Et,o.Mb=Tt,o.Pb=$t,o.ka=a,s.ia){if(t=Qe(),t==h)return tn;at(t,o)?(r=B(o.width,o.height,a.Qa,a.j),r==en&&!rt(t)&&(r=t.a)):r=t.a,t!=h&&et(t)}else{if(r=e(Ei),r!=h&&(ve(r),r.za=0,r.Hb=1),t=r,t==h)return tn;t.qb=0,t.Ga=s.$,t.G=s.G,t.ub=s.pa,we(t,o)?(r=B(o.width,o.height,a.Qa,a.j),r==en&&!Se(t,o)&&(r=t.a)):r=t.a,t!=h&&Ae(t)}return r!=en&&(f||this).Yc(a.j),r}function Ot(t,n,i,a,r){var o={value:0};i={value:i};var s=e(pn),l=e(Qt);s.j=l,l.J=t;var c,d={value:l.width},u={value:l.height};c=i;var p=e(cn);return Nt(n,o,c,p)!=en?c=0:(d!=h&&(d.value=p.width),u!=h&&(u.value=p.height),c=1),c?(l.width=d.value,l.height=u.value,a!=h&&(a.value=l.width.value),r!=h&&(r.value=l.height.value),Rt(n,o.value,i.value,s)!=en?h:t<Xt?l.c.RGBA.ma:l.c.Va.y):h}function Nt(e,t,n,i){return i==h||e==h?nn:(p(i!=h),i.tc=0,i.width=[i.width],i.height=[i.height],i.$b=[i.$b],Pt(e,t,n,i.width,i.height,i.$b,h))}function Lt(e,t,n){var i=t.width,a=t.height,r=0,o=0,s=i,l=a;if(t.Ua=e!=h&&0<e.Ua,t.Ua&&(s=e.wc,l=e.vc,r=e.t,o=e.k,n<Xt||(r&=-2,o&=-2),0>r||0>o||0>=s||0>=l||r+s>i||o+l>a))return 0;if(t.t=r,t.k=o,t.Ka=r+s,t.K=o+l,t.m=s,t.h=l,t.I=e!=h&&0<e.I,t.I){if(0>=e.Ba||0>=e.Aa)return 0;t.Ba=e.Ba,t.Aa=e.Aa}return t.Za=e&&e.Za,t.Bb=e==h||!e.ed,t.I&&(t.Za=t.Ba<3*i/4&&t.Aa<3*a/4,t.Bb=0),1}var Ft=512,Ut=0,Bt=1,Ht=2,jt=3,Vt=4,qt=5,zt=6,Wt=7,Gt=8,Kt=9,Yt=10,Xt=11,Jt=12,Zt=13;this.WEBP_CSP_MODE=this.Cd={nd:0,od:1,kd:2,ld:3,jd:4,pd:5,qd:6,rd:7,sd:8,md:9};var Qt={J:"WEBP_CSP_MODE",width:g,height:g,Fc:g,c:{RGBA:{ma:_,Sa:0,f:g,size:w},Va:{y:_,c:_,S:_,p:_,D:_,B:_,C:_,q:_,F:g,nb:g,rb:g,Fa:g,Wc:w,Rc:w,Uc:w,Wb:w}},Ic:c(4,y),Jb:h,jc:_},en=0,tn=1,nn=2,an=3,rn=4,on=5,sn=6,ln=7;this.VP8StatusCode=this.td={xd:0,yd:1,vd:2,ud:3,Ad:4,zd:5,Bd:6,wd:7};var cn={width:{value:g},height:{value:g},$b:{value:g},tc:g,Yd:g,rotate:g,be:g,Ic:c(3,y)};this.WebPGetFeatures=this.Md=function(e,t,n){var i="VP8StatusCode";return Ft>>>8!=Ft>>>8||n==h?e=nn:(t=[t],i=Nt(e,[0],t,n),e=i==ln?an:i),e};var dn={Za:g,ed:g,Ua:g,t:g,k:g,wc:g,vc:g,I:g,Ba:g,Aa:g,ae:g,Td:g,Xd:g,Ic:c(6,y)};this.WebPDecoderConfig=this.Kd={input:e(cn),j:e(Qt),options:e(dn)},this.WebPInitDecoderConfig=this.Nd=function(e){return Ft>>>8!=Ft>>>8||e==h?e=0:(e=e.input,p(e!=h),e.tc=0,e=1),e};var un={width:g,height:g,w:g,m:g,h:g,y:_,c:_,S:_,D:0,B:0,C:0,F:g,Da:g,ka:0,put:0,Mb:0,Pb:0,Bb:g,e:w,data:_,b:0,Za:g,Ua:g,t:g,Ka:g,k:g,K:g,I:g,Ba:g,Aa:g,p:_,q:0},pn={j:e(Qt),Sb:_,Qb:_,lc:_,Tb:0,Rb:0,mc:0,ec:g,Qa:e(dn),memory:0,$a:"(OutputFunc)",zb:"(OutputFunc)",ad:"(OutputRowFunc)"},fn={data:_,b:_,e:w,offset:w,$:h,G:_,pa:w,ta:w,na:w,ia:g},mn={qa:_,Ia:h,Pd:_,Ab:g,la:y,Z:y,gc:g},hn={T:b,qa:_,Ia:_,ya:w,Q:w,g:g,L:g,fa:g},gn=25,_n=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215],vn=10,yn=47,bn=14,wn=3,kn=5,Mn=11,Sn=5,An=4278190080,Cn=8,Tn=15,En=256,$n=24,In=4,xn=0,Pn=1,Dn=2,Rn=3,On=1,Nn=0,Ln=1,Fn=1,Un=4,Bn=8,Hn=12,jn=10,Vn=16,qn=1*Math.pow(2,32),zn=-1-Bn-1>>>0,Wn={kc:g,s:g},Gn={Y:"HuffmanTreeNode*",gb:g,Pa:g},Kn=-1,Yn={ea:y,bb:g},Xn=506832829,Jn=0,Zn=Jn,Qn=2,ei=3,ti=1,ni=4,ii=5,ai=6,ri=3,oi=4,si=4,li=4,ci=4,di=8,ui=3,pi=11,fi=32,mi=17*fi+9*fi,hi=1*fi+8,gi=hi+16*fi+fi,_i=gi+16,vi={fb:_,Jc:_,Nc:_,Ra:y},yi={l:0,v:0,gd:_,hd:_,uc:_,$c:_},bi={pb:g,ob:g,tb:g,Kb:c(oi,0),Cb:c(oi,0)},wi={Ta:c(ri,_),z:u([ci,di,ui,pi],_)},ki={Oc:g,Fb:g,kb:g,oc:g,Lc:c(si,g),Gc:c(si,g)},Mi={zc:g,yc:g,ab:g},Si={X:g,ua:g,Nb:g},Ai=c(2,g),Ci={sc:e(Ai),sb:e(Ai),qc:e(Ai)},Ti={ha:g,d:g,W:g,M:Mi,N:un},Ei={a:"VP8StatusCode",za:g,xc:0,o:e(mn),Ac:e(vi),P:e(yi),ga:e(ki),Ca:e(bi),rc:"WebPWorker",qb:g,Ja:g,jb:g,oa:Ti,Ma:g,hb:g,lb:g,mb:g,wb:g,Ya:g,Hb:g,ic:d(8,mn),Zc:y,yb:d(oi,Ci),R:e(wi),pc:g,Pc:_,dc:_,cc:c(4,_),Xc:_,Sc:_,Vc:_,La:e(Si),M:e(Mi),Ea:_,z:0,ca:_,aa:_,ra:_,da:g,ba:g,sa:g,H:g,r:g,ib:0,Gb:w,i:g,d:g,wa:_,Eb:c(16,_),Vd:0,Tc:_,Lb:_,ja:y,Oa:y,A:g,W:g,Zb:c(oi,_),Ga:h,G:0,ub:w,Xb:_,Od:0,cd:g,dd:_,Wd:0,fc:w},$i=0,Ii=1,xi=2,Pi={Qc:"VP8LImageTransformType",n:g,U:g,Vb:g,u:y,b:y},Di={va:d(Sn,Gn)},Ri={xb:g,Yb:e(Yn),Dc:g,eb:g,Ec:g,ac:y,bd:y,hc:g,Db:"HTreeGroup"},Oi={a:"VP8StatusCode",Wa:"VP8LDecodeState",Ob:"VP8LDecodeState",N:"VP8Io",Ib:"WebPDecBuffer",Hc:"WebPDecBuffer",V:y,Ha:y,Xa:y,vb:y,o:e(hn),l:g,v:g,O:g,xa:g,cb:e(Ri),Na:g,nc:d(In,Pi),Ub:y,Mc:_,$d:_,Zd:"*WebPRescaler"},Ni=4,Li=[h,function(e,n,i,a,r,o,s,l){var c=g,d=l;for(p(e!=h),p(s!=h),p(0<i),p(0<a),p(0<r),p(o>=i*r),c=0;c<a;++c)0==c?t(s,l,e,n,r):L(e,n,s,d-o,s,l,r),L(e,n+r,s,d,s,l+r,r*(i-1)),d+=o,n+=o,l+=o},function(e,n,i,a,r,o,s,l){var c=g,d=l;for(p(e!=h),p(s!=h),p(0<i),p(0<a),p(0<r),p(o>=i*r),t(s,l,e,n,r),L(e,n+r,s,d,s,l+r,r*(i-1)),c=1;c<a;++c)n+=o,l+=o,L(e,n,s,d,s,l,r*i),d+=o},function(e,n,i,a,r,o,s,l){var c=l,d=g;for(p(e!=h),p(s!=h),p(0<i),p(0<a),p(0<r),p(o>=i*r),t(s,l,e,n,r),L(e,n+r,s,c,s,l+r,r*(i-1)),d=1;d<a;++d){var u=g,c=c+o;for(n+=o,l+=o,L(e,n,s,c-o,s,l,r),u=r;u<i*r;++u){var f=s[c+u-r]+s[c+u-o]-s[c+u-o-r];s[l+u]=e[n+u]+(0>f?0:255<f?255:f)&255}}}],Fi=[3,4,3,4,4,2,2,4,4,4,2,1,1];this.WebPFreeDecBuffer=this.Yc=function(e){e!=h&&(e.Fc||(e.Jb=""),e.jc=0,e.Jb=e.jc=h)},f=this;var Ui,Bi,Hi,ji,Vi,qi,zi,Wi,Gi,Ki,Yi,Xi,Ji,Zi,Qi,ea,ta=c(511,_),na=c(511,_),ia=c(2041,0),aa=c(225,0),ra=c(766,_),oa=0,sa=85627,la=35468,ca=[function(e,t){var n,i=4;for(n=0;4>n;++n)i+=e[t+n-fi]+e[t-1+n*fi];for(i>>=3,n=0;4>n;++n)s(e,t+n*fi,i,4)},function(e,t){K(e,t,4)},function(e,n){var i=n-fi,a=[];for(a.push(X(e[i-1],e[i+0],e[i+1])),a.push(X(e[i+0],e[i+1],e[i+2])),a.push(X(e[i+1],e[i+2],e[i+3])),a.push(X(e[i+2],e[i+3],e[i+4])),i=0;4>i;++i)t(e,n+i*fi,a,0,4)},function(e,t){var n=e[t-1],i=e[t-1+fi],a=e[t-1+2*fi],r=e[t-1+3*fi];e[t+0+0*fi]=e[t+1+0*fi]=e[t+2+0*fi]=e[t+3+0*fi]=X(e[t-1-fi],n,i),e[t+0+1*fi]=e[t+1+1*fi]=e[t+2+1*fi]=e[t+3+1*fi]=X(n,i,a),e[t+0+2*fi]=e[t+1+2*fi]=e[t+2+2*fi]=e[t+3+2*fi]=X(i,a,r),e[t+0+3*fi]=e[t+1+3*fi]=e[t+2+3*fi]=e[t+3+3*fi]=X(a,r,r)},function(e,t){var n=e[t-1+0*fi],i=e[t-1+1*fi],a=e[t-1+2*fi],r=e[t-1-fi],o=e[t+0-fi],s=e[t+1-fi],l=e[t+2-fi],c=e[t+3-fi];e[t+0+3*fi]=X(i,a,e[t-1+3*fi]),e[t+0+2*fi]=e[t+1+3*fi]=X(n,i,a),e[t+0+1*fi]=e[t+1+2*fi]=e[t+2+3*fi]=X(r,n,i),e[t+0+0*fi]=e[t+1+1*fi]=e[t+2+2*fi]=e[t+3+3*fi]=X(o,r,n),e[t+1+0*fi]=e[t+2+1*fi]=e[t+3+2*fi]=X(s,o,r),e[t+2+0*fi]=e[t+3+1*fi]=X(l,s,o),e[t+3+0*fi]=X(c,l,s)},function(e,t){var n=e[t-1+0*fi],i=e[t-1+1*fi],a=e[t-1+2*fi],r=e[t-1-fi],o=e[t+0-fi],s=e[t+1-fi],l=e[t+2-fi],c=e[t+3-fi];e[t+0+0*fi]=e[t+1+2*fi]=r+o+1>>1,e[t+1+0*fi]=e[t+2+2*fi]=o+s+1>>1,e[t+2+0*fi]=e[t+3+2*fi]=s+l+1>>1,e[t+3+0*fi]=l+c+1>>1,e[t+0+3*fi]=X(a,i,n),e[t+0+2*fi]=X(i,n,r),e[t+0+1*fi]=e[t+1+3*fi]=X(n,r,o),e[t+1+1*fi]=e[t+2+3*fi]=X(r,o,s),e[t+2+1*fi]=e[t+3+3*fi]=X(o,s,l),e[t+3+1*fi]=X(s,l,c)},function(e,t){var n=e[t+1-fi],i=e[t+2-fi],a=e[t+3-fi],r=e[t+4-fi],o=e[t+5-fi],s=e[t+6-fi],l=e[t+7-fi];e[t+0+0*fi]=X(e[t+0-fi],n,i),e[t+1+0*fi]=e[t+0+1*fi]=X(n,i,a),e[t+2+0*fi]=e[t+1+1*fi]=e[t+0+2*fi]=X(i,a,r),e[t+3+0*fi]=e[t+2+1*fi]=e[t+1+2*fi]=e[t+0+3*fi]=X(a,r,o),e[t+3+1*fi]=e[t+2+2*fi]=e[t+1+3*fi]=X(r,o,s),e[t+3+2*fi]=e[t+2+3*fi]=X(o,s,l),e[t+3+3*fi]=X(s,l,l)},function(e,t){var n=e[t+0-fi],i=e[t+1-fi],a=e[t+2-fi],r=e[t+3-fi],o=e[t+4-fi],s=e[t+5-fi],l=e[t+6-fi],c=e[t+7-fi];e[t+0+0*fi]=n+i+1>>1,e[t+1+0*fi]=e[t+0+2*fi]=i+a+1>>1,e[t+2+0*fi]=e[t+1+2*fi]=a+r+1>>1,e[t+3+0*fi]=e[t+2+2*fi]=r+o+1>>1,e[t+0+1*fi]=X(n,i,a),e[t+1+1*fi]=e[t+0+3*fi]=X(i,a,r),e[t+2+1*fi]=e[t+1+3*fi]=X(a,r,o),e[t+3+1*fi]=e[t+2+3*fi]=X(r,o,s),e[t+3+2*fi]=X(o,s,l),e[t+3+3*fi]=X(s,l,c)},function(e,t){var n=e[t-1+0*fi],i=e[t-1+1*fi],a=e[t-1+2*fi],r=e[t-1+3*fi],o=e[t-1-fi],s=e[t+0-fi],l=e[t+1-fi],c=e[t+2-fi];e[t+0+0*fi]=e[t+2+1*fi]=n+o+1>>1,e[t+0+1*fi]=e[t+2+2*fi]=i+n+1>>1,e[t+0+2*fi]=e[t+2+3*fi]=a+i+1>>1,e[t+0+3*fi]=r+a+1>>1,e[t+3+0*fi]=X(s,l,c),e[t+2+0*fi]=X(o,s,l),e[t+1+0*fi]=e[t+3+1*fi]=X(n,o,s),e[t+1+1*fi]=e[t+3+2*fi]=X(i,n,o),e[t+1+2*fi]=e[t+3+3*fi]=X(a,i,n),e[t+1+3*fi]=X(r,a,i)},function(e,t){var n=e[t-1+0*fi],i=e[t-1+1*fi],a=e[t-1+2*fi],r=e[t-1+3*fi];e[t+0+0*fi]=n+i+1>>1,e[t+2+0*fi]=e[t+0+1*fi]=i+a+1>>1,e[t+2+1*fi]=e[t+0+2*fi]=a+r+1>>1,e[t+1+0*fi]=X(n,i,a),e[t+3+0*fi]=e[t+1+1*fi]=X(i,a,r),e[t+3+1*fi]=e[t+1+2*fi]=X(a,r,r),e[t+3+2*fi]=e[t+2+2*fi]=e[t+0+3*fi]=e[t+1+3*fi]=e[t+2+3*fi]=e[t+3+3*fi]=r}],da=[function(e,t){var n,i=16;for(n=0;16>n;++n)i+=e[t-1+n*fi]+e[t+n-fi];Y(i>>5,e,t)},function(e,t){K(e,t,16)},function(e,n){var i;for(i=0;16>i;++i)t(e,n+i*fi,e,n-fi,16)},function(e,t){var n;for(n=16;0<n;--n)s(e,t+0,e[t-1],16),t+=fi},function(e,t){var n,i=8;for(n=0;16>n;++n)i+=e[t-1+n*fi];Y(i>>4,e,t)},function(e,t){var n,i=8;for(n=0;16>n;++n)i+=e[t+n-fi];Y(i>>4,e,t)},function(e,t){Y(128,e,t)}],ua=[function(e,t){var n,i=8;for(n=0;8>n;++n)i+=e[t+n-fi]+e[t-1+n*fi];J(1*(i>>4),e,t)},function(e,t){K(e,t,8)},function(e,n){var i;for(i=0;8>i;++i)t(e,n+i*fi,e,n-fi,8)},function(e,t){var n;for(n=0;8>n;++n)s(e,t+0,e[t-1],8),t+=fi},function(e,t){var n,i=4;for(n=0;8>n;++n)i+=e[t-1+n*fi];J(1*(i>>3),e,t)},function(e,t){var n,i=4;for(n=0;8>n;++n)i+=e[t+n-fi];J(1*(i>>3),e,t)},function(e,t){J(128,e,t)}],pa=31,fa=[0,2,8],ma=3,ha=1,ga=[0+0*fi,4+0*fi,8+0*fi,12+0*fi,0+4*fi,4+4*fi,8+4*fi,12+4*fi,0+8*fi,4+8*fi,8+8*fi,12+8*fi,0+12*fi,4+12*fi,8+12*fi,12+12*fi],_a=[4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,17,18,19,20,20,21,21,22,22,23,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38,39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,98,100,101,102,104,106,108,110,112,114,116,118,122,124,126,128,130,132,134,136,138,140,143,145,148,151,154,157],va=[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,234,239,245,249,254,259,264,269,274,279,284],ya=[-Jn,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],ba=[[[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]],[[253,136,254,255,228,219,128,128,128,128,128],[189,129,242,255,227,213,255,219,128,128,128],[106,126,227,252,214,209,255,255,128,128,128]],[[1,98,248,255,236,226,255,255,128,128,128],[181,133,238,254,221,234,255,154,128,128,128],[78,134,202,247,198,180,255,219,128,128,128]],[[1,185,249,255,243,255,128,128,128,128,128],[184,150,247,255,236,224,128,128,128,128,128],[77,110,216,255,236,230,128,128,128,128,128]],[[1,101,251,255,241,255,128,128,128,128,128],[170,139,241,252,236,209,255,255,128,128,128],[37,116,196,243,228,255,255,255,128,128,128]],[[1,204,254,255,245,255,128,128,128,128,128],[207,160,250,255,238,128,128,128,128,128,128],[102,103,231,255,211,171,128,128,128,128,128]],[[1,152,252,255,240,255,128,128,128,128,128],[177,135,243,255,234,225,128,128,128,128,128],[80,129,211,255,194,224,128,128,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[246,1,255,128,128,128,128,128,128,128,128],[255,128,128,128,128,128,128,128,128,128,128]]],[[[198,35,237,223,193,187,162,160,145,155,62],[131,45,198,221,172,176,220,157,252,221,1],[68,47,146,208,149,167,221,162,255,223,128]],[[1,149,241,255,221,224,255,255,128,128,128],[184,141,234,253,222,220,255,199,128,128,128],[81,99,181,242,176,190,249,202,255,255,128]],[[1,129,232,253,214,197,242,196,255,255,128],[99,121,210,250,201,198,255,202,128,128,128],[23,91,163,242,170,187,247,210,255,255,128]],[[1,200,246,255,234,255,128,128,128,128,128],[109,178,241,255,231,245,255,255,128,128,128],[44,130,201,253,205,192,255,255,128,128,128]],[[1,132,239,251,219,209,255,165,128,128,128],[94,136,225,251,218,190,255,255,128,128,128],[22,100,174,245,186,161,255,199,128,128,128]],[[1,182,249,255,232,235,128,128,128,128,128],[124,143,241,255,227,234,128,128,128,128,128],[35,77,181,251,193,211,255,205,128,128,128]],[[1,157,247,255,236,231,255,255,128,128,128],[121,141,235,255,225,227,255,255,128,128,128],[45,99,188,251,195,217,255,224,128,128,128]],[[1,1,251,255,213,255,128,128,128,128,128],[203,1,248,255,255,128,128,128,128,128,128],[137,1,177,255,224,255,128,128,128,128,128]]],[[[253,9,248,251,207,208,255,192,128,128,128],[175,13,224,243,193,185,249,198,255,255,128],[73,17,171,221,161,179,236,167,255,234,128]],[[1,95,247,253,212,183,255,255,128,128,128],[239,90,244,250,211,209,255,255,128,128,128],[155,77,195,248,188,195,255,255,128,128,128]],[[1,24,239,251,218,219,255,205,128,128,128],[201,51,219,255,196,186,128,128,128,128,128],[69,46,190,239,201,218,255,228,128,128,128]],[[1,191,251,255,255,128,128,128,128,128,128],[223,165,249,255,213,255,128,128,128,128,128],[141,124,248,255,255,128,128,128,128,128,128]],[[1,16,248,255,255,128,128,128,128,128,128],[190,36,230,255,236,255,128,128,128,128,128],[149,1,255,128,128,128,128,128,128,128,128]],[[1,226,255,128,128,128,128,128,128,128,128],[247,192,255,128,128,128,128,128,128,128,128],[240,128,255,128,128,128,128,128,128,128,128]],[[1,134,252,255,255,128,128,128,128,128,128],[213,62,250,255,255,128,128,128,128,128,128],[55,93,255,128,128,128,128,128,128,128,128]],[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]]],[[[202,24,213,235,186,191,220,160,240,175,255],[126,38,182,232,169,184,228,174,255,187,128],[61,46,138,219,151,178,240,170,255,216,128]],[[1,112,230,250,199,191,247,159,255,255,128],[166,109,228,252,211,215,255,174,128,128,128],[39,77,162,232,172,180,245,178,255,255,128]],[[1,52,220,246,198,199,249,220,255,255,128],[124,74,191,243,183,193,250,221,255,255,128],[24,71,130,219,154,170,243,182,255,255,128]],[[1,182,225,249,219,240,255,224,128,128,128],[149,150,226,252,216,205,255,171,128,128,128],[28,108,170,242,183,194,254,223,255,255,128]],[[1,81,230,252,204,203,255,192,128,128,128],[123,102,209,247,188,196,255,233,128,128,128],[20,95,153,243,164,173,255,203,128,128,128]],[[1,222,248,255,216,213,128,128,128,128,128],[168,175,246,252,235,205,255,255,128,128,128],[47,116,215,255,211,212,255,255,128,128,128]],[[1,121,236,253,212,214,255,255,128,128,128],[141,84,213,252,201,202,255,219,128,128,128],[42,80,160,240,162,185,255,205,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[244,1,255,128,128,128,128,128,128,128,128],[238,1,255,128,128,128,128,128,128,128,128]]]],wa=[[[231,120,48,89,115,113,120,152,112],[152,179,64,126,170,118,46,70,95],[175,69,143,80,85,82,72,155,103],[56,58,10,171,218,189,17,13,152],[114,26,17,163,44,195,21,10,173],[121,24,80,195,26,62,44,64,85],[144,71,10,38,171,213,144,34,26],[170,46,55,19,136,160,33,206,71],[63,20,8,114,114,208,12,9,226],[81,40,11,96,182,84,29,16,36]],[[134,183,89,137,98,101,106,165,148],[72,187,100,130,157,111,32,75,80],[66,102,167,99,74,62,40,234,128],[41,53,9,178,241,141,26,8,107],[74,43,26,146,73,166,49,23,157],[65,38,105,160,51,52,31,115,128],[104,79,12,27,217,255,87,17,7],[87,68,71,44,114,51,15,186,23],[47,41,14,110,182,183,21,17,194],[66,45,25,102,197,189,23,18,22]],[[88,88,147,150,42,46,45,196,205],[43,97,183,117,85,38,35,179,61],[39,53,200,87,26,21,43,232,171],[56,34,51,104,114,102,29,93,77],[39,28,85,171,58,165,90,98,64],[34,22,116,206,23,34,43,166,73],[107,54,32,26,51,1,81,43,31],[68,25,106,22,64,171,36,225,114],[34,19,21,102,132,188,16,76,124],[62,18,78,95,85,57,50,48,51]],[[193,101,35,159,215,111,89,46,111],[60,148,31,172,219,228,21,18,111],[112,113,77,85,179,255,38,120,114],[40,42,1,196,245,209,10,25,109],[88,43,29,140,166,213,37,43,154],[61,63,30,155,67,45,68,1,209],[100,80,8,43,154,1,51,26,71],[142,78,78,16,255,128,34,197,171],[41,40,5,102,211,183,4,1,221],[51,50,17,168,209,192,23,25,82]],[[138,31,36,171,27,166,38,44,229],[67,87,58,169,82,115,26,59,179],[63,59,90,180,59,166,93,73,154],[40,40,21,116,143,209,34,39,175],[47,15,16,183,34,223,49,45,183],[46,17,33,183,6,98,15,32,183],[57,46,22,24,128,1,54,17,37],[65,32,73,115,28,128,23,128,205],[40,3,9,115,51,192,18,6,223],[87,37,9,115,59,77,64,21,47]],[[104,55,44,218,9,54,53,130,226],[64,90,70,205,40,41,23,26,57],[54,57,112,184,5,41,38,166,213],[30,34,26,133,152,116,10,32,134],[39,19,53,221,26,114,32,73,255],[31,9,65,234,2,15,1,118,73],[75,32,12,51,192,255,160,43,51],[88,31,35,67,102,85,55,186,85],[56,21,23,111,59,205,45,37,192],[55,38,70,124,73,102,1,34,98]],[[125,98,42,88,104,85,117,175,82],[95,84,53,89,128,100,113,101,45],[75,79,123,47,51,128,81,171,1],[57,17,5,71,102,57,53,41,49],[38,33,13,121,57,73,26,1,85],[41,10,67,138,77,110,90,47,114],[115,21,2,10,102,255,166,23,6],[101,29,16,10,85,128,101,196,26],[57,18,10,102,102,213,34,20,43],[117,20,15,36,163,128,68,1,26]],[[102,61,71,37,34,53,31,243,192],[69,60,71,38,73,119,28,222,37],[68,45,128,34,1,47,11,245,171],[62,17,19,70,146,85,55,62,70],[37,43,37,154,100,163,85,160,1],[63,9,92,136,28,64,32,201,85],[75,15,9,9,64,255,184,119,16],[86,6,28,5,64,255,25,248,1],[56,8,17,132,137,255,55,116,128],[58,15,20,82,135,57,26,121,40]],[[164,50,31,137,154,133,25,35,218],[51,103,44,131,131,123,31,6,158],[86,40,64,135,148,224,45,183,128],[22,26,17,131,240,154,14,1,209],[45,16,21,91,64,222,7,1,197],[56,21,39,155,60,138,23,102,213],[83,12,13,54,192,255,68,47,28],[85,26,85,85,128,128,32,146,171],[18,11,7,63,144,171,4,4,246],[35,27,10,146,174,171,12,26,128]],[[190,80,35,99,180,80,126,54,45],[85,126,47,87,176,51,41,20,32],[101,75,128,139,118,146,116,128,85],[56,41,15,176,236,85,37,9,62],[71,30,17,119,118,255,17,18,138],[101,38,60,138,55,70,43,26,142],[146,36,19,30,171,255,97,27,20],[138,45,61,62,219,1,81,188,64],[32,41,20,117,151,142,20,21,163],[112,19,12,61,195,128,48,4,24]]],ka=[[[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[176,246,255,255,255,255,255,255,255,255,255],[223,241,252,255,255,255,255,255,255,255,255],[249,253,253,255,255,255,255,255,255,255,255]],[[255,244,252,255,255,255,255,255,255,255,255],[234,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255]],[[255,246,254,255,255,255,255,255,255,255,255],[239,253,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[251,255,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[251,254,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,254,253,255,254,255,255,255,255,255,255],[250,255,254,255,254,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[217,255,255,255,255,255,255,255,255,255,255],[225,252,241,253,255,255,254,255,255,255,255],[234,250,241,250,253,255,253,254,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[223,254,254,255,255,255,255,255,255,255,255],[238,253,254,254,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[249,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,255,255,255,255,255,255,255,255,255],[247,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[252,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[186,251,250,255,255,255,255,255,255,255,255],[234,251,244,254,255,255,255,255,255,255,255],[251,251,243,253,254,255,254,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[236,253,254,255,255,255,255,255,255,255,255],[251,253,253,254,254,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[254,254,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[254,254,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[248,255,255,255,255,255,255,255,255,255,255],[250,254,252,254,255,255,255,255,255,255,255],[248,254,249,253,255,255,255,255,255,255,255]],[[255,253,253,255,255,255,255,255,255,255,255],[246,253,253,255,255,255,255,255,255,255,255],[252,254,251,254,254,255,255,255,255,255,255]],[[255,254,252,255,255,255,255,255,255,255,255],[248,254,253,255,255,255,255,255,255,255,255],[253,255,254,254,255,255,255,255,255,255,255]],[[255,251,254,255,255,255,255,255,255,255,255],[245,251,254,255,255,255,255,255,255,255,255],[253,253,254,255,255,255,255,255,255,255,255]],[[255,251,253,255,255,255,255,255,255,255,255],[252,253,254,255,255,255,255,255,255,255,255],[255,254,255,255,255,255,255,255,255,255,255]],[[255,252,255,255,255,255,255,255,255,255,255],[249,255,254,255,255,255,255,255,255,255,255],[255,255,254,255,255,255,255,255,255,255,255]],[[255,255,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]]];this.WebPGetDecoderVersion=this.Ld=function(){return 512};var Ma=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],Sa=[[173,148,140,0],[176,155,140,135,0],[180,157,141,134,130,0],[254,254,243,230,196,177,153,140,133,130,129,0]],Aa=[0,1,4,8,5,2,3,6,9,12,13,10,7,11,14,15],Ca=u([ui,pi],"");c(4,_);var Ta=[[0,0,0,0],[1,0,0,0],[0,1,0,0],[1,1,0,0],[0,0,1,0],[1,0,1,0],[0,1,1,0],[1,1,1,0],[0,0,0,1],[1,0,0,1],[0,1,0,1],[1,1,0,1],[0,0,1,1],[1,0,1,1],[0,1,1,1],[1,1,1,1]],Ea=134480385,$a=16,Ia=-227,xa=482,Pa=[Fe,function(e){return e},function(e,t,n){return t[n+0]},function(e,t,n){return t[n+1]},function(e,t,n){return t[n-1]},function(e,t,n){return Oe(Oe(e,t[n+1]),t[n+0])},function(e,t,n){return Oe(e,t[n-1])},function(e,t,n){return Oe(e,t[n+0])},function(e,t,n){return Oe(t[n-1],t[n+0])},function(e,t,n){return Oe(t[n+0],t[n+1])},function(e,t,n){return Oe(Oe(e,t[n-1]),Oe(t[n+0],t[n+1]))},function(e,t,n){return 0>=Math.abs((e>>24&255)-(t[n-1]>>24&255))-Math.abs((t[n+0]>>24&255)-(t[n-1]>>24&255))+(Math.abs((e>>16&255)-(t[n-1]>>16&255))-Math.abs((t[n+0]>>16&255)-(t[n-1]>>16&255)))+(Math.abs((e>>8&255)-(t[n-1]>>8&255))-Math.abs((t[n+0]>>8&255)-(t[n-1]>>8&255)))+(Math.abs((255&e)-(255&t[n-1]))-Math.abs((255&t[n+0])-(255&t[n-1])))?t[n+0]:e},function(e,t,n){return(Ne((e>>24&255)+(t[n+0]>>24&255)-(t[n-1]>>24&255))<<24|Ne((e>>16&255)+(t[n+0]>>16&255)-(t[n-1]>>16&255))<<16|Ne((e>>8&255)+(t[n+0]>>8&255)-(t[n-1]>>8&255))<<8|Ne((255&e)+(255&t[n+0])-(255&t[n-1])))>>>0},function(e,t,n){var i=t[n-1];return e=Oe(e,t[n+0]),(Le(e>>24&255,i>>24&255)<<24|Le(e>>16&255,i>>16&255)<<16|Le(e>>8&255,i>>8&255)<<8|Le(e>>0&255,i>>0&255))>>>0},Fe,Fe],Da={Cc:_,Bc:_,Kc:_},Ra=16,Oa=16,Na=16,La=[2,3,7],Fa=[3,3,11],Ua=0,Ba=1,Ha=2,ja=3,Va=4,qa=[En+$n,En,En,En,40],za=19,Wa=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],Ga=120,Ka=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],Ya=1<<$a-1,Xa=c(256,0),Ja=c(256,0),Za=c(256,v),Qa=c(256,v),er=c(xa-Ia,_),tr=c(xa-Ia,_),nr=0,ir=Array(Zt),ar=[function(e,t,n,i,a,r,o,s,l,c,d,u,p){mt(e,t,n,i,a,r,o,s,l,c,d,u,p,Te,3)},ht,function(e,t,n,i,a,r,o,s,l,c,d,u,p){mt(e,t,n,i,a,r,o,s,l,c,d,u,p,xe,3)},gt,_t,vt,function(e,t,n,i,a,r,o,s,l,c,d,u,p){mt(e,t,n,i,a,r,o,s,l,c,d,u,p,Ee,2)},ht,gt,_t,vt];this.Hd=function(e,t,n,i){return Ot(Ut,e,t,n,i)},this.Id=function(e,t,n,i){return Ot(Bt,e,t,n,i)},this.Jd=function(e,t,n,i){return Ot(qt,e,t,n,i)},this.Ed=function(e,t,n,i){return Ot(Vt,e,t,n,i)},this.Fd=function(e,t,n,i){return Ot(Ht,e,t,n,i)},this.Gd=function(e,t,n,i){return Ot(jt,e,t,n,i)},this.WebPDecode=this.Dd=function(t,n,i){var a=e(pn),r="VP8StatusCode";return i==h?nn:(r=Nt(t,[0],[n],i.input),r!=en?r==ln?an:r:(a.j=i.j,a.Qa=i.Qa,r=Rt(t,0,[n],a)))}}}(),function(e,t){"use strict";angular.module("toaster",[]).constant("toasterConfig",{limit:0,"tap-to-dismiss":!0,"close-button":!1,"close-html":'<button class="toast-close-button" type="button">&times;</button>',"newest-on-top":!0,"time-out":5e3,"icon-classes":{error:"toast-error",info:"toast-info",wait:"toast-wait",success:"toast-success",warning:"toast-warning"},"body-output-type":"","body-template":"toasterBodyTmpl.html","icon-class":"toast-info","position-class":"toast-top-right","title-class":"toast-title","message-class":"toast-message","prevent-duplicates":!1,"mouseover-timer-stop":!0}).service("toaster",["$rootScope","toasterConfig",function(e,t){function n(e){return function(t,n,i,a,r,o,s,l,c){return angular.isString(t)?this.pop(e,t,n,i,a,r,o,s,l,c):this.pop(angular.extend(t,{type:e}))}}var i=function(){var e={};return e.newGuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"==e?t:3&t|8;return n.toString(16)})},e}();this.pop=function(t,n,a,r,o,s,l,c,d,u){if(angular.isObject(t)){var p=t;this.toast={type:p.type,title:p.title,body:p.body,timeout:p.timeout,bodyOutputType:p.bodyOutputType,clickHandler:p.clickHandler,showCloseButton:p.showCloseButton,closeHtml:p.closeHtml,toastId:p.toastId,onShowCallback:p.onShowCallback,onHideCallback:p.onHideCallback,directiveData:p.directiveData},l=p.toasterId}else this.toast={type:t,title:n,body:a,timeout:r,bodyOutputType:o,clickHandler:s,showCloseButton:c,toastId:d,onHideCallback:u};return this.toast.toastId&&this.toast.toastId.length||(this.toast.toastId=i.newGuid()),e.$emit("toaster-newToast",l,this.toast.toastId),{toasterId:l,toastId:this.toast.toastId}},this.clear=function(t,n){angular.isObject(t)?e.$emit("toaster-clearToasts",t.toasterId,t.toastId):e.$emit("toaster-clearToasts",t,n)};for(var a in t["icon-classes"])this[a]=n(a)}]).factory("toasterEventRegistry",["$rootScope",function(e){var t,n=null,i=null,a=[],r=[];return t={setup:function(){n||(n=e.$on("toaster-newToast",function(e,t,n){for(var i=0,r=a.length;i<r;i++)a[i](e,t,n)})),i||(i=e.$on("toaster-clearToasts",function(e,t,n){for(var i=0,a=r.length;i<a;i++)r[i](e,t,n)}))},subscribeToNewToastEvent:function(e){a.push(e)},subscribeToClearToastsEvent:function(e){r.push(e)},unsubscribeToNewToastEvent:function(e){var t=a.indexOf(e);t>=0&&a.splice(t,1),0===a.length&&(n(),n=null)},unsubscribeToClearToastsEvent:function(e){var t=r.indexOf(e);t>=0&&r.splice(t,1),0===r.length&&(i(),i=null)}},{setup:t.setup,subscribeToNewToastEvent:t.subscribeToNewToastEvent,subscribeToClearToastsEvent:t.subscribeToClearToastsEvent,unsubscribeToNewToastEvent:t.unsubscribeToNewToastEvent,unsubscribeToClearToastsEvent:t.unsubscribeToClearToastsEvent}}]).directive("directiveTemplate",["$compile","$injector",function(e,t){return{restrict:"A",scope:{directiveName:"@directiveName",directiveData:"@directiveData"},replace:!0,link:function(n,i,a){n.$watch("directiveName",function(r){
if(angular.isUndefined(r)||r.length<=0)throw new Error("A valid directive name must be provided via the toast body argument when using bodyOutputType: directive");var o;try{o=t.get(a.$normalize(r)+"Directive")}catch(s){throw new Error(r+" could not be found. The name should appear as it exists in the markup, not camelCased as it would appear in the directive declaration, e.g. directive-name not directiveName.")}var l=o[0];if(l.scope!==!0&&l.scope)throw new Error("Cannot use a directive with an isolated scope. The scope must be either true or falsy (e.g. false/null/undefined). Occurred for directive "+r+".");if(l.restrict.indexOf("A")<0)throw new Error('Directives must be usable as attributes. Add "A" to the restrict option (or remove the option entirely). Occurred for directive '+r+".");n.directiveData&&(n.directiveData=angular.fromJson(n.directiveData));var c=e("<div "+r+"></div>")(n);i.append(c)})}}}]).directive("toasterContainer",["$parse","$rootScope","$interval","$sce","toasterConfig","toaster","toasterEventRegistry",function(e,t,n,i,a,r,o){return{replace:!0,restrict:"EA",scope:!0,link:function(t,s,l){function c(e,i){e.timeoutPromise=n(function(){t.removeToast(e.toastId)},i,1)}function d(n,a){if(n.type=m["icon-classes"][n.type],n.type||(n.type=m["icon-class"]),m["prevent-duplicates"]===!0&&t.toasters.length){if(t.toasters[t.toasters.length-1].body===n.body)return;var r,o,s=!1;for(r=0,o=t.toasters.length;r<o;r++)if(t.toasters[r].toastId===a){s=!0;break}if(s)return}var l=m["close-button"];if("boolean"==typeof n.showCloseButton);else if("boolean"==typeof l)n.showCloseButton=l;else if("object"==typeof l){var c=l[n.type];"undefined"!=typeof c&&null!==c&&(n.showCloseButton=c)}else n.showCloseButton=!1;switch(n.showCloseButton&&(n.closeHtml=i.trustAsHtml(n.closeHtml||t.config.closeHtml)),n.bodyOutputType=n.bodyOutputType||m["body-output-type"],n.bodyOutputType){case"trustedHtml":n.html=i.trustAsHtml(n.body);break;case"template":n.bodyTemplate=n.body||m["body-template"];break;case"templateWithData":var d=e(n.body||m["body-template"]),u=d(t);n.bodyTemplate=u.template,n.data=u.data;break;case"directive":n.html=n.body}t.configureTimer(n),m["newest-on-top"]===!0?(t.toasters.unshift(n),m.limit>0&&t.toasters.length>m.limit&&t.toasters.pop()):(t.toasters.push(n),m.limit>0&&t.toasters.length>m.limit&&t.toasters.shift()),angular.isFunction(n.onShowCallback)&&n.onShowCallback()}function u(e){var i=t.toasters[e];i.timeoutPromise&&n.cancel(i.timeoutPromise),t.toasters.splice(e,1),angular.isFunction(i.onHideCallback)&&i.onHideCallback()}function p(e){for(var n=t.toasters.length-1;n>=0;n--)f(e)?u(n):t.toasters[n].toastId==e&&u(n)}function f(e){return angular.isUndefined(e)||null===e}var m;m=angular.extend({},a,t.$eval(l.toasterOptions)),t.config={toasterId:m["toaster-id"],position:m["position-class"],title:m["title-class"],message:m["message-class"],tap:m["tap-to-dismiss"],closeButton:m["close-button"],closeHtml:m["close-html"],animation:m["animation-class"],mouseoverTimer:m["mouseover-timer-stop"]},t.$on("$destroy",function(){o.unsubscribeToNewToastEvent(t._onNewToast),o.unsubscribeToClearToastsEvent(t._onClearToasts)}),t.configureTimer=function(e){var t=angular.isNumber(e.timeout)?e.timeout:m["time-out"];"object"==typeof t&&(t=t[e.type]),t>0&&c(e,t)},t.removeToast=function(e){var n,i;for(n=0,i=t.toasters.length;n<i;n++)if(t.toasters[n].toastId===e){u(n);break}},t.toasters=[],t._onNewToast=function(e,n,i){(f(t.config.toasterId)&&f(n)||!f(t.config.toasterId)&&!f(n)&&t.config.toasterId==n)&&d(r.toast,i)},t._onClearToasts=function(e,n,i){("*"==n||f(t.config.toasterId)&&f(n)||!f(t.config.toasterId)&&!f(n)&&t.config.toasterId==n)&&p(i)},o.setup(),o.subscribeToNewToastEvent(t._onNewToast),o.subscribeToClearToastsEvent(t._onClearToasts)},controller:["$scope","$element","$attrs",function(e,t,i){e.stopTimer=function(t){e.config.mouseoverTimer===!0&&t.timeoutPromise&&(n.cancel(t.timeoutPromise),t.timeoutPromise=null)},e.restartTimer=function(t){e.config.mouseoverTimer===!0?t.timeoutPromise||e.configureTimer(t):null===t.timeoutPromise&&e.removeToast(t.toastId)},e.click=function(t,n){if(e.config.tap===!0||t.showCloseButton===!0&&n===!0){var i=!0;t.clickHandler&&(angular.isFunction(t.clickHandler)?i=t.clickHandler(t,n):angular.isFunction(e.$parent.$eval(t.clickHandler))?i=e.$parent.$eval(t.clickHandler)(t,n):console.log("TOAST-NOTE: Your click handler is not inside a parent scope of toaster-container.")),i&&e.removeToast(t.toastId)}}}],template:'<div id="toast-container" ng-class="[config.position, config.animation]"><div ng-repeat="toaster in toasters" class="toast" ng-class="toaster.type" ng-click="click(toaster)" ng-mouseover="stopTimer(toaster)" ng-mouseout="restartTimer(toaster)"><div ng-if="toaster.showCloseButton" ng-click="click(toaster, true)" ng-bind-html="toaster.closeHtml"></div><div ng-class="config.title">{{toaster.title}}</div><div ng-class="config.message" ng-switch on="toaster.bodyOutputType"><div ng-switch-when="trustedHtml" ng-bind-html="toaster.html"></div><div ng-switch-when="template"><div ng-include="toaster.bodyTemplate"></div></div><div ng-switch-when="templateWithData"><div ng-include="toaster.bodyTemplate"></div></div><div ng-switch-when="directive"><div directive-template directive-name="{{toaster.html}}" directive-data="{{toaster.directiveData}}"></div></div><div ng-switch-default >{{toaster.body}}</div></div></div></div>'}}])}(window,document),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e;return function t(e,n,i){function a(o,s){if(!n[o]){if(!e[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(r)return r(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var d=n[o]={exports:{}};e[o][0].call(d.exports,function(t){var n=e[o][1][t];return a(n?n:t)},d,d.exports,t,e,n,i)}return n[o].exports}for(var r="function"==typeof require&&require,o=0;o<i.length;o++)a(i[o]);return a}({1:[function(e,t,n){var i=e("matches-selector");t.exports=function(e,t,n){for(var a=n?e:e.parentNode;a&&a!==document;){if(i(a,t))return a;a=a.parentNode}}},{"matches-selector":5}],2:[function(e,t,n){function i(e,t,n,i,r){var o=a.apply(this,arguments);return e.addEventListener(n,o,r),{destroy:function(){e.removeEventListener(n,o,r)}}}function a(e,t,n,i){return function(n){n.delegateTarget=r(n.target,t,!0),n.delegateTarget&&i.call(e,n)}}var r=e("closest");t.exports=i},{closest:1}],3:[function(e,t,n){n.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},n.nodeList=function(e){var t=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===t||"[object HTMLCollection]"===t)&&"length"in e&&(0===e.length||n.node(e[0]))},n.string=function(e){return"string"==typeof e||e instanceof String},n.fn=function(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t}},{}],4:[function(e,t,n){function i(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!s.string(t))throw new TypeError("Second argument must be a String");if(!s.fn(n))throw new TypeError("Third argument must be a Function");if(s.node(e))return a(e,t,n);if(s.nodeList(e))return r(e,t,n);if(s.string(e))return o(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function a(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}function r(e,t,n){return Array.prototype.forEach.call(e,function(e){e.addEventListener(t,n)}),{destroy:function(){Array.prototype.forEach.call(e,function(e){e.removeEventListener(t,n)})}}}function o(e,t,n){return l(document.body,e,t,n)}var s=e("./is"),l=e("delegate");t.exports=i},{"./is":3,delegate:2}],5:[function(e,t,n){function i(e,t){if(r)return r.call(e,t);for(var n=e.parentNode.querySelectorAll(t),i=0;i<n.length;++i)if(n[i]==e)return!0;return!1}var a=Element.prototype,r=a.matchesSelector||a.webkitMatchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector;t.exports=i},{}],6:[function(e,t,n){function i(e){var t;if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName)e.focus(),e.setSelectionRange(0,e.value.length),t=e.value;else{e.hasAttribute("contenteditable")&&e.focus();var n=window.getSelection(),i=document.createRange();i.selectNodeContents(e),n.removeAllRanges(),n.addRange(i),t=n.toString()}return t}t.exports=i},{}],7:[function(e,t,n){function i(){}i.prototype={on:function(e,t,n){var i=this.e||(this.e={});return(i[e]||(i[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){function i(){a.off(e,i),t.apply(n,arguments)}var a=this;return i._=t,this.on(e,i,n)},emit:function(e){var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),i=0,a=n.length;for(i;i<a;i++)n[i].fn.apply(n[i].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),i=n[e],a=[];if(i&&t)for(var r=0,o=i.length;r<o;r++)i[r].fn!==t&&i[r].fn._!==t&&a.push(i[r]);return a.length?n[e]=a:delete n[e],this}},t.exports=i},{}],8:[function(t,n,i){!function(a,r){if("function"==typeof e&&e.amd)e(["module","select"],r);else if("undefined"!=typeof i)r(n,t("select"));else{var o={exports:{}};r(o,a.select),a.clipboardAction=o.exports}}(this,function(e,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=n(t),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),s=function(){function e(t){i(this,e),this.resolveOptions(t),this.initSelection()}return e.prototype.resolveOptions=function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action=e.action,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""},e.prototype.initSelection=function(){this.text?this.selectFake():this.target&&this.selectTarget()},e.prototype.selectFake=function(){var e=this,t="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},setTimeout(function(){e.fakeHandler=document.body.addEventListener("click",e.fakeHandlerCallback)||!0},0),this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px",this.fakeElem.style.top=(window.pageYOffset||document.documentElement.scrollTop)+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,a["default"])(this.fakeElem),this.copyText()},e.prototype.removeFake=function(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)},e.prototype.selectTarget=function(){this.selectedText=(0,a["default"])(this.target),this.copyText()},e.prototype.copyText=function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)},e.prototype.handleResult=function(e){e?this.emitter.emit("success",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)}):this.emitter.emit("error",{action:this.action,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})},e.prototype.clearSelection=function(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()},e.prototype.destroy=function(){this.removeFake()},o(e,[{key:"action",set:function(){var e=arguments.length<=0||void 0===arguments[0]?"copy":arguments[0];if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(e){if(void 0!==e){if(!e||"object"!==("undefined"==typeof e?"undefined":r(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function(){return this._target}}]),e}();e.exports=s})},{select:6}],9:[function(t,n,i){!function(a,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof i)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var o={exports:{}};r(o,a.clipboardAction,a.tinyEmitter,a.goodListener),a.clipboard=o.exports}}(this,function(e,t,n,i){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var c=a(t),d=a(n),u=a(i),p=function(e){function t(n,i){r(this,t);var a=o(this,e.call(this));return a.resolveOptions(i),a.listenClick(n),a}return s(t,e),t.prototype.resolveOptions=function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText},t.prototype.listenClick=function(e){var t=this;this.listener=(0,u["default"])(e,"click",function(e){return t.onClick(e)})},t.prototype.onClick=function(e){var t=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new c["default"]({action:this.action(t),target:this.target(t),text:this.text(t),trigger:t,emitter:this})},t.prototype.defaultAction=function(e){return l("action",e)},t.prototype.defaultTarget=function(e){var t=l("target",e);if(t)return document.querySelector(t)},t.prototype.defaultText=function(e){return l("text",e)},t.prototype.destroy=function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)},t}(d["default"]);e.exports=p})},{"./clipboard-action":8,"good-listener":4,"tiny-emitter":7}]},{},[9])(9)}),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ogvjs=t():e.ogvjs=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var a=n[i]={exports:{},id:i,loaded:!1};return e[i].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){var i=n(1),a=n(3),r=n(7),o=n(8),s="1.4.2-20170425024925-504d7197";window&&(window.OGVCompat=i,window.OGVLoader=a,window.OGVMediaType=r,window.OGVPlayer=o,window.OGVVersion=s),e.exports={OGVCompat:i,OGVLoader:a,OGVMediaType:r,OGVPlayer:o,OGVVersion:s}},function(e,t,n){var i=n(2),a={benchmark:new i,hasTypedArrays:function(){return!!window.Uint32Array},hasWebAudio:function(){return!(!window.AudioContext&&!window.webkitAudioContext)},hasFlash:function(){if(navigator.userAgent.indexOf("Trident")!==-1)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash");return!0}catch(e){return!1}return!1},hasAudio:function(){return this.hasWebAudio()||this.hasFlash()},isBlacklisted:function(e){var t=[/\(i.* OS [67]_.* like Mac OS X\).* Mobile\/.* Safari\//,/\(Macintosh.* Version\/6\..* Safari\/\d/],n=!1;return t.forEach(function(t){e.match(t)&&(n=!0)}),n},isSlow:function(){return this.benchmark.slow},isTooSlow:function(){return this.benchmark.tooSlow},supported:function(e){return"OGVDecoder"===e?this.hasTypedArrays()&&!this.isBlacklisted(navigator.userAgent):"OGVPlayer"===e&&(this.supported("OGVDecoder")&&this.hasAudio()&&!this.isTooSlow())}};e.exports=a},function(e,t){function n(){function e(){var e=0,n=function(t){return e++,t<2?t:n(t-2)+n(t-1)},a=t();n(30);var r=t()-a;i=e/r}var t,n=this;t=window.performance&&window.performance.now?function(){return window.performance.now()}:function(){return Date.now()};var i=null;Object.defineProperty(n,"speed",{get:function(){return null===i&&e(),i}}),Object.defineProperty(n,"slowCutoff",{get:function(){return 5e4}}),Object.defineProperty(n,"tooSlowCutoff",{get:function(){return 0}}),Object.defineProperty(n,"slow",{get:function(){return n.speed<n.slowCutoff}}),Object.defineProperty(n,"tooSlow",{get:function(){return n.speed<n.tooSlowCutoff}})}e.exports=n},function(e,t,n){var i="1.4.2-20170425024925-504d7197";!function(){function t(e){var t=c[e];if(t)return a(t);throw new Error("asked for URL for unknown class "+e)}function a(e){if(e){var t=m.base;return void 0===t?t="":t+="/",t+e+"?version="+encodeURIComponent(i)}throw new Error("asked for URL for unknown script "+e)}function r(e,t){function n(t){var n=f[e];delete f[e],p[e]="done",n.forEach(function(e){e()})}if("done"==p[e])t();else if("loading"==p[e])f[e].push(t);else{p[e]="loading",f[e]=[t];var i=document.createElement("script");i.addEventListener("load",n),i.addEventListener("error",n),i.src=e,document.querySelector("head").appendChild(i)}}function o(e,t){if(e.match(/-wasm\.js/)){var n=e.replace(/-wasm\.js/,"-wasm.wasm"),i=new XMLHttpRequest;i.responseType="arraybuffer",i.onload=function(){t(i.response)},i.onerror=function(){t(null)},i.open("GET",n),i.send()}else t(null)}function s(){if("object"!=typeof l.window);else for(var e,t,n=document.querySelectorAll("script"),i=/^(?:|(.*)\/)ogv(?:-support)?\.js(?:\?|#|$)/,a=0;a<n.length;a++)if(e=n[a].getAttribute("src"),e&&(t=e.match(i)))return t[1]}var l=this,c={OGVDemuxerOgg:"ogv-demuxer-ogg.js",OGVDemuxerOggW:"ogv-demuxer-ogg-wasm.js",OGVDemuxerWebM:"ogv-demuxer-webm.js",OGVDemuxerWebMW:"ogv-demuxer-webm-wasm.js",OGVDecoderAudioOpus:"ogv-decoder-audio-opus.js",OGVDecoderAudioOpusW:"ogv-decoder-audio-opus-wasm.js",OGVDecoderAudioVorbis:"ogv-decoder-audio-vorbis.js",OGVDecoderAudioVorbisW:"ogv-decoder-audio-vorbis-wasm.js",OGVDecoderVideoTheora:"ogv-decoder-video-theora.js",OGVDecoderVideoTheoraW:"ogv-decoder-video-theora-wasm.js",OGVDecoderVideoVP8:"ogv-decoder-video-vp8.js",OGVDecoderVideoVP8W:"ogv-decoder-video-vp8-wasm.js",OGVDecoderVideoVP8MT:"ogv-decoder-video-vp8-mt.js",OGVDecoderVideoVP9:"ogv-decoder-video-vp9.js",OGVDecoderVideoVP9W:"ogv-decoder-video-vp9-wasm.js",OGVDecoderVideoVP9MT:"ogv-decoder-video-vp9-mt.js"},d={OGVDecoderAudioOpus:"audio",OGVDecoderAudioOpusW:"audio",OGVDecoderAudioVorbis:"audio",OGVDecoderAudioVorbisW:"audio",OGVDecoderVideoTheora:"video",OGVDecoderVideoTheoraW:"video",OGVDecoderVideoVP8:"video",OGVDecoderVideoVP8W:"video",OGVDecoderVideoVP9:"video",OGVDecoderVideoVP9W:"video"},u={audio:{proxy:n(4),worker:"ogv-worker-audio.js"},video:{proxy:n(6),worker:"ogv-worker-video.js"}},p={},f={},m={base:s(),loadClass:function(e,n,i){if(i=i||{},i.worker)return void this.workerProxy(e,n);var a=t(e);o(a,function(t){function i(n){return n=n||{},null!==t&&(n.wasmBinary=t),new l[e](n)}"function"==typeof l[e]?n(i):"object"==typeof l.window?r(a,function(){n(i)}):"function"==typeof l.importScripts&&(l.importScripts(a),n(i))})},workerProxy:function(e,t){function n(){if(1==b&&1==w){try{y=new Blob([_+" "+v],{type:"application/javascript"})}catch(e){window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,y=new BlobBuilder,y.append(_+" "+v),y=y.getBlob()}o=new Worker(URL.createObjectURL(y)),t(m)}}var i=d[e],r=u[i];if(!r)throw new Error("Requested worker for class with no proxy: "+e);var o,s=r.proxy,l=r.worker,p=a(c[e]),f=a(l),m=function(t){return new s(o,e,t)};if(f.match(/^https?:|\/\//i)){var h,g,_,v,y,b=!1,w=!1;h=new XMLHttpRequest,h.open("GET",p,!0),h.onreadystatechange=function(){4==h.readyState&&200==h.status&&(_=h.responseText,b=!0,n())},h.send(),g=new XMLHttpRequest,g.open("GET",f,!0),g.onreadystatechange=function(){4==g.readyState&&200==g.status&&(v=g.responseText,w=!0,n())},g.send()}else o=new Worker(f),t(m)}};e.exports=m}()},function(e,t,n){var i=n(5),a=i({loadedMetadata:!1,audioFormat:null,audioBuffer:null,cpuTime:0},{init:function(e){this.proxy("init",[],e)},processHeader:function(e,t){this.proxy("processHeader",[e],t,[e])},processAudio:function(e,t){this.proxy("processAudio",[e],t,[e])},close:function(){this.terminate()}});e.exports=a},function(e,t){function n(e,t){return function(n,i,a){a=a||{};var r=this,o=function(){var e=new ArrayBuffer(1024),t=new Uint8Array(e);try{return n.postMessage({action:"transferTest",bytes:t},[e]),!e.byteLength}catch(i){return!1}}(),s={};for(var l in e)e.hasOwnProperty(l)&&!function(t){s[t]=e[t],Object.defineProperty(r,t,{get:function(){return s[t]}})}(l);var c=0;Object.defineProperty(r,"processing",{get:function(){return c>0}});for(var d in t)t.hasOwnProperty(d)&&(r[d]=t[d]);var u=0,p={};return this.proxy=function(e,t,i,a){if(!n)throw'Tried to call "'+e+'" method on closed proxy object';var r="callback-"+ ++u+"-"+e;i&&(p[r]=i);var s={action:e,callbackId:r,args:t||[]};c++,o?n.postMessage(s,a||[]):n.postMessage(s)},this.terminate=function(){n&&(n.terminate(),n=null,c=0,p={})},n.addEventListener("message",function(e){if(c--,"callback"===e.data.action){var t=e.data,n=t.callbackId,i=t.args,a=p[n];if(t.props)for(var r in t.props)t.props.hasOwnProperty(r)&&(s[r]=t.props[r]);a&&(delete p[n],a.apply(this,i))}}),r.proxy("construct",[i,a],function(){}),r}}e.exports=n},function(e,t,n){var i=n(5),a=i({loadedMetadata:!1,videoFormat:null,frameBuffer:null,cpuTime:0},{init:function(e){this.proxy("init",[],e)},processHeader:function(e,t){this.proxy("processHeader",[e],t,[e])},processFrame:function(e,t){this.proxy("processFrame",[e],t,[e])},close:function(){this.terminate()}});e.exports=a},function(e,t){function n(e){function t(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")}function n(e,n,i){var a=e.split(n,i).map(function(e){return t(e)});if("number"==typeof i)for(;a.length<i;)a.push(null);return a}e=""+e;var i=this;i.major=null,i.minor=null,i.codecs=null;var a=n(e,";");if(a.length){var r=a.shift();if(r){var o=n(r,"/",2);i.major=o[0],i.minor=o[1]}a.forEach(function(e){var t=e.match(/^codecs\s*=\s*"(.*?)"$/);t&&(i.codecs=n(t[1],","))})}}e.exports=n},function(e,t,n){function i(e,t){for(prop in t)t.hasOwnProperty(prop)&&(e[prop]=t[prop])}function a(){var e=this,t=document.createElement("style");t.type="text/css",t.textContent="ogvjs { display: inline-block; position: relative; -webkit-user-select: none; -webkit-tap-highlight-color: rgba(0,0,0,0); ",document.head.appendChild(t);var n=t.sheet;e.appendRule=function(e,t){var i=[];for(var a in t)t.hasOwnProperty(a)&&i.push(a+":"+t[a]);var r=e+"{"+i.join(";")+"}";n.insertRule(r,n.cssRules.length-1)}}n(9).polyfill();var r=n(12),o=n(3),s=n(19),l=n(30),c=(n(31),n(32)),d=n(7),u=n(33),p=(n(4),n(6),window.OGVTimeRanges=function(e){return Object.defineProperty(this,"length",{get:function(){return e.length}}),this.start=function(t){return e[t][0]},this.end=function(t){return e[t][1]},this}),f={MEDIA_ERR_ABORTED:1,MEDIA_ERR_NETWORK:2,MEDIA_ERR_DECODE:3,MEDIA_ERR_SRC_NOT_SUPPORTED:4},m=window.OGVMediaError=function(e,t){this.code=e,this.message=t};i(m,f),i(m.prototype,f);var h=function(e){function t(e){var t=ie();e();var n=ie()-t;return at+=n,n}function n(t){if(e.debug){var n=ie(),i=n-pe;e.debugFilter&&!t.match(e.debugFilter)||console.log("["+Math.round(10*i)/10+"ms] "+t)}}function a(e,t){n("fireEvent "+e);var i;t=t||{};var a="function"==typeof window.Event;a?i=new CustomEvent(e):(i=document.createEvent("Event"),i.initEvent(e,!1,!1));for(var r in t)t.hasOwnProperty(r)&&(i[r]=t[r]);var o=ne.dispatchEvent(i);!a&&"resize"===e&&ne.onresize&&o&&ne.onresize.call(ne,i)}function f(e,t){n("fireEventAsync "+e),setTimeout(function(){a(e,t)},0)}function _(){_e=new l(Z),_e.init(he.channels,he.rate),_e.bufferThreshold=1,_e.volume=ne.volume,_e.muted=ne.muted,_e.onbufferlow=function(){n("onbufferlow"),ae&&(ae.buffering||ae.seeking)||Et||L()},_e.onstarved=function(){$e?n("onstarved: appear to have reached end of audio"):(n("onstarved: halting audio due to starvation"),y(),we=!0),R()||L(0)}}function v(e){if(_e){_e.start();var t=_e.getPlaybackState();ye=t.playbackPosition}else ye=ie()/1e3;void 0!==e&&(be=e),we=!1,ke=!1,n("continuing at "+ye+", "+be)}function y(){be=b(),n("pausing at "+be),_e&&_e.stop()}function b(e){if(we||ke||Ne)return be;var t;return _e?(e=e||_e.getPlaybackState(),t=e.playbackPosition):t=ie()/1e3,t-ye+be}function w(){n("STOPPING"),Y=K.INITIAL,J=X.NOT_SEEKING,Oe=!1,Le=!1,et=0,tt=0,at=0,ke=!1,we=!1,ge.splice(0,ge.length),ae&&(ae.abort(),ae=null,Ae=!1),fe&&(fe.close(),fe=null,Tt=0,Et=0,$e=!1),me=null,he=null,_e&&(_e.close(),_e=null),re&&(clearTimeout(re),re=null),De&&(clearTimeout(De),De=null),ee&&(ee.clear(),ee=null),nt&&(nt=[]),it&&(it=[]),Me=0,ye=0,be=0,xe=null}function k(e){function t(e){return Math.round(10*e)/10}e=e||{},Fe&&!document.body.contains(ne)&&setTimeout(function(){ne.stop()},0);var i=ie(),a=i-_t,r=je-He;Ye+=Math.abs(r),ze+=a;var o={cpuTime:at,drawingTime:Ge-lt,bufferTime:We-ct,proxyTime:Ke-dt,demuxerTime:0,videoTime:0,audioTime:0,clockTime:je,late:ke||e.dropped,dropped:e.dropped};fe&&(o.demuxerTime=fe.demuxerCpuTime-st,o.videoTime+=vt-rt,o.audioTime+=fe.audioCpuTime-ot),o.cpuTime+=o.demuxerTime,at=0,_t=i,fe?(rt=vt,ot=fe.audioCpuTime,st=fe.demuxerCpuTime):(rt=0,ot=0,st=0),lt=Ge,ct=We,dt=Ke,n("drew frame "+e.frameEndTimestamp+": clock time "+t(a)+" (jitter "+t(r)+") cpu: "+t(o.cpuTime)+" (mux: "+t(o.demuxerTime)+" buf: "+t(o.bufferTime)+" draw: "+t(o.drawingTime)+" proxy: "+t(o.proxyTime)+") vid: "+t(o.videoTime)+" aud: "+t(o.audioTime)),f("framecallback",o),(!yt||i-yt>=bt)&&(yt=i,f("timeupdate"))}function M(e){Error.call(this,e)}function S(e){ae.seeking&&Ce.cancel(new M("cancel for new seek")),ae.buffering&&Te.cancel(new M("cancel for new seek")),Ae=!1,$e=!1,Le=!1,ae.seek(e,Ce).then(function(){O()})["catch"](N)}function A(e){var t=Math.max(0,ae.length-65536);Mt=e,de=new c({start:0,end:t,process:function(e,t,n){return n!=le&&(le=n,ce=!1,fe.flush(function(){S(n)}),!0)}}),de.start()}function C(e,t){function i(n){ae&&ae.buffering&&Te.cancel(new M("cancel for new seek")),ae&&ae.seeking&&Ce.cancel(new M("cancel for new seek")),ge.splice(0,ge.length),y(),we=!1,ke=!1,_e&&_e.flush(),Y=K.SEEKING,wt=e,se=t,fe?fe.flush(n):n()}if(n("requested seek to "+e+", mode "+t),ne.readyState==ne.HAVE_NOTHING)return n("not yet loaded; saving seek position for later"),void(Me=e);if(ae&&!ae.seekable)throw console.log(ae),new Error("Cannot seek a non-seekable stream");i(function(){R()||L(0)}),ge.push(function(){i(function(){T(e)})})}function T(e){Ae=!1,$e=!1,Le=!1,Y=K.SEEKING,wt=e,kt=-1,ce=!1,le=-1,nt=[],it=[],Tt=0,Et=0,ue=!1,fe.seekToKeypoint(e,function(t){return t?(J=X.LINEAR_TO_TARGET,f("seeking"),ue?void 0:void L()):void fe.getKeypointOffset(e,function(e){e>0?(J=X.LINEAR_TO_TARGET,S(e)):(J=X.BISECT_TO_TARGET,A(wt)),f("seeking")})})}function E(){function e(){yt=wt,f("timeupdate"),f("seeked"),R()||L()}return J=X.NOT_SEEKING,Y=K.READY,et=fe.frameTimestamp,tt=fe.audioTimestamp,wt=fe.hasAudio?fe.audioTimestamp:fe.frameTimestamp,be=wt,fe.hasVideo&&fe.frameReady?void fe.decodeFrame(function(t){t&&(oe&&(ne.removeChild(oe),oe=null),ee.drawFrame(fe.frameBuffer)),e()}):void e()}function $(){var e;if(e=fe.hasVideo?He/1e3:1/256,fe.hasVideo){if(Tt)return;if(!fe.frameReady)return void fe.process(function(e){e?L():Ae?(n("stream ended during linear seeking on video"),$e=!0,E()):O()});if(se===St.FAST&&fe.keyframeTimestamp==fe.frameTimestamp)return void E();if(fe.frameTimestamp+e<wt)return void fe.decodeFrame(function(){L()});if(!fe.hasAudio)return void E()}if(fe.hasAudio){if(Et)return;return fe.audioReady?fe.audioTimestamp+e<wt?void fe.decodeAudio(function(){L()}):void E():void fe.process(function(e){e?L():Ae?(n("stream ended during linear seeking on audio"),$e=!0,E()):O()})}}function I(){var e,t;if(fe.hasVideo)t=fe.frameTimestamp,e=He/1e3;else{if(!fe.hasAudio)throw new Error("Invalid seek state; no audio or video track available");t=fe.audioTimestamp,e=1/256}t<0?fe.process(function(e){if(e)L();else if(Ae){if(n("stream ended during bisection seek"),!de.right())throw n("failed going back"),new Error("not sure what to do")}else O()}):t-e/2>Mt?de.left()||(n("close enough (left)"),wt=t,E()):t+e/2<Mt?de.right()||(n("close enough (right)"),J=X.LINEAR_TO_TARGET,L()):J==X.BISECT_TO_TARGET&&fe.hasVideo&&fe.keyframeTimestamp<fe.frameTimestamp?(n("finding the keypoint now"),J=X.BISECT_TO_KEYPOINT,A(fe.keyframeTimestamp)):(n("straight seeking now"),J=X.LINEAR_TO_TARGET,L())}function x(){He=me.fps>0?1e3/me.fps:16.667,te.width=me.displayWidth,te.height=me.displayHeight,h.styleManager.appendRule("."+H,{width:me.displayWidth+"px",height:me.displayHeight+"px"}),h.updatePositionOnResize(),ee=r.attach(te,V)}function P(){if(ue&&(ue=!1),re=null,R(),At>0)throw new Error("REENTRANCY FAIL: doProcessing recursing unexpectedly");var e=0;do{if(Ct=!1,At++,D(),At--,Ct&&R())throw new Error("REENTRANCY FAIL: waiting on input or codec but asked to keep processing");++e>500&&(n("stuck in processing loop; breaking with timer"),Ct=0,L(0))}while(Ct)}function D(){function i(){n("finishStartPlaying"),Y=K.PLAYING,_t=ie(),fe.hasAudio&&_e?we=!0:v(),L(0),f("play"),f("playing")}function a(){if(Ne)n("paused during playback; stopping loop");else if((!fe.hasAudio||fe.audioReady||Et||$e)&&(!fe.hasVideo||fe.frameReady||Tt||nt.length||$e)){var i,a,o,s=null,l=0,c=!1,d=0,u=4,p=u;if(fe.hasAudio&&_e?(s=_e.getPlaybackState(),l=b(s),c=$e&&0==_e.durationBuffered,we&&(_e.durationBuffered>=2*_e.bufferThreshold||$e)&&(n("prebuffering audio done; buffered to "+_e.durationBuffered),v(l),we=!1),s.dropped!=Xe&&n("dropped "+(s.dropped-Xe)),s.delayed!=Je&&n("delayed "+(s.delayed-Je)),Xe=s.dropped,Je=s.delayed,i=_e.durationBuffered<=2*_e.bufferThreshold,i&&(fe.audioReady?Et>=It&&(n("audio decode disabled: "+Et+" packets in flight"),i=!1):i=!1)):(l=b(),i=fe.audioReady&&tt<l),fe.hasVideo){a=nt.length>0,o=Tt+nt.length<$t&&fe.frameReady,a&&(d=1e3*(nt[0].frameEndTimestamp-l),je=He-d);var m=He;if(we)o&&n("decoding a frame during prebuffering"),a=!1;else if(a&&$e&&c)n("audio timeline ended? ready to draw frame");else if(a&&-d>=m){if("delay-audio"==e.sync){if(!ke)if(n("late frame at "+l+": "+-d+" expected "+m),Ze++,nt.length>1){n("late frame has a neighbor; skipping to next frame");var h=nt.shift();d=1e3*(h.frameEndTimestamp-l),je=He-d,Be++,k({frameEndTimestamp:h.frameEndTimestamp,dropped:!0})}else y(),ke=!0}else if("skip-frames"==e.sync){for(var g=-1,_=0;_<nt.length-1;_++)nt[_].frameEndTimestamp<l&&(g=_-1);if(g>=0)for(;g-- >=0;){Ze++;var h=nt.shift();n("skipping already-decoded late frame at "+h.frameEndTimestamp),d=1e3*(h.frameEndTimestamp-l),et=h.frameEndTimestamp,je=He-d,Be++,h.dropped=!0,k()}var w=fe.nextKeyframeTimestamp,M=He/1e3*($t+Tt),S=w-M;if(w>=0&&w!=fe.frameTimestamp&&l>=S){n("skipping late frame at "+nt[0].frameEndTimestamp+" vs "+l+", expect to see keyframe at "+w);
for(var _=0;_<nt.length;_++){var h=nt[_];Ze++,Be++,et=h.frameEndTimestamp,d=1e3*(h.frameEndTimestamp-l),je=He-d,h.dropped=!0,k(h)}nt=[];for(var _=0;_<it.length;_++){var h=it[_];Ze++,Be++,et=h.frameEndTimestamp,d=1e3*(h.frameEndTimestamp-l),je=He-d,h.dropped=!0,k(h)}for(it=[],Tt=0;fe.frameReady&&fe.frameTimestamp<w;){var h={frameEndTimestamp:fe.frameTimestamp,dropped:!0};d=1e3*(h.frameEndTimestamp-l),je=He-d,Ze++,fe.discardFrame(function(){}),Be++,k(h)}return void(R()||L())}}}else a&&ke&&!o&&!i&&d>p?(n("late frame recovery reached "+d),v(l),ke=!1,a=!1):a&&ke||a&&d<=p||(a=!1)}if(o){n("play loop: ready to decode frame; thread depth: "+Tt+", have buffered: "+nt.length),0==me.fps&&fe.frameTimestamp-et>0&&(He=1e3*(fe.frameTimestamp-et)),Ve+=He,qe++;var A=et=fe.frameTimestamp;Tt++,it.push({frameEndTimestamp:A});var C=it,T=!1,E=t(function(){fe.decodeFrame(function(e){return C!==it?void n("play loop callback after flush, discarding"):(n("play loop callback: decoded frame"),Tt--,it.shift(),e?nt.push({yCbCrBuffer:fe.frameBuffer,videoCpuTime:fe.videoCpuTime,frameEndTimestamp:A}):n("Bad video packet or something"),void fe.process(function(){R()||L(T?void 0:0)}))})});Tt&&(T=!0,Ke+=E,L())}else if(i){n("play loop: ready for audio; depth: "+Et),Et++;var $=fe.audioTimestamp,I=t(function(){fe.decodeAudio(function(e){if(Et--,n("play loop callback: decoded audio"),tt=$,e){var i=fe.audioBuffer;if(i&&(We+=t(function(){_e&&_e.bufferData(i)}),!fe.hasVideo)){Be++;var a={frameEndTimestamp:tt};k(a)}}R()||L()})});Et&&(Ke+=I,fe.audioReady?L():r())}else if(a){n("play loop: ready to draw frame"),De&&(clearTimeout(De),De=null),oe&&(ne.removeChild(oe),oe=null);var h=nt.shift();vt=h.videoCpuTime,Ge+=t(function(){ee.drawFrame(h.yCbCrBuffer)}),Be++,Ue++,k(h),L()}else if(!nt.length||De||we)if($e&&!(Et||Tt||nt.length)){n("play loop: playback reached end of data "+[Et,Tt,nt.length]);var x=0;fe.hasAudio&&_e&&(x=1e3*_e.durationBuffered),x>0?(n("play loop: ending pending "+x+" ms"),L(Math.max(0,x))):(n("play loop: ENDING NOW: playback time "+b()+"; frameEndTimestamp: "+et),y(),ke=!1,we=!1,be=Math.max(tt,et),Le=!0,Ne=!0,f("pause"),f("ended"))}else n("play loop: waiting on async/timers");else{var P=d;n("play loop: setting a timer for drawing "+P),De=setTimeout(function(){De=null,L()},P)}}else n("play loop: demuxing"),r()}function r(){var e=fe.frameReady,t=fe.audioReady;fe.process(function(i){fe.frameReady&&!e||fe.audioReady&&!t?(n("demuxer has packets"),L()):i?(n("demuxer processing to find more packets"),L()):(n("demuxer ran out of data"),Ae?(n("demuxer reached end of data stream"),$e=!0,L()):(n("demuxer loading more data"),O()))})}if(ge.length){var o=ge.shift();o()}else if(Y==K.INITIAL)if(fe.loadedMetadata){if(!fe.hasVideo&&!fe.hasAudio)throw new Error("No audio or video found, something is wrong");fe.hasAudio&&(he=fe.audioFormat),fe.hasVideo&&(me=fe.videoFormat,x()),isNaN(fe.duration)||(xe=fe.duration),null===xe&&ae.seekable?(Y=K.SEEKING_END,Pe=-1,fe.flush(function(){S(Math.max(0,ae.length-131072))})):(Y=K.LOADED,L())}else fe.process(function(e){if(e)L();else{if(Ae)throw new Error("end of file before headers found");n("reading more cause we are out of data"),O()}});else if(Y==K.SEEKING_END)fe.frameReady?(n("saw frame with "+fe.frameTimestamp),Pe=Math.max(Pe,fe.frameTimestamp),fe.discardFrame(function(){L()})):fe.audioReady?(n("saw audio with "+fe.audioTimestamp),Pe=Math.max(Pe,fe.audioTimestamp),fe.discardAudio(function(){L()})):fe.process(function(e){e?L():ae.eof?(n("seek-duration: we are at the end: "+Pe),Pe>0&&(xe=Pe),Y=K.LOADED,fe.flush(function(){Ae=!1,$e=!1,S(0)})):O()});else if(Y==K.LOADED)Y=K.PRELOAD,f("loadedmetadata"),f("durationchange"),fe.hasVideo&&f("resize"),L(0);else if(Y==K.PRELOAD)!fe.frameReady&&fe.hasVideo||!fe.audioReady&&fe.hasAudio?fe.process(function(e){e?L():Ae?Le=!0:O()}):(Y=K.READY,f("loadeddata"),L());else if(Y==K.READY)if(n("initial seek to "+Me),Me>0){var s=Me;Me=0,n("initial seek to "+s),T(s)}else Ne?n("paused while in ready"):!fe.hasAudio||_e||ve?i():(_(),_e.waitUntilReady(i));else if(Y==K.SEEKING){if(J==X.NOT_SEEKING)throw new Error("seeking in invalid state (not seeking?)");if(J==X.BISECT_TO_TARGET)I();else if(J==X.BISECT_TO_KEYPOINT)I();else{if(J!=X.LINEAR_TO_TARGET)throw new Error("Invalid seek state "+J);$()}}else if(Y==K.PLAYING)a();else{if(Y!=K.ERROR)throw new Error("Unexpected OGVPlayer state "+Y);console.log("Reached error state. Sorry bout that.")}}function R(){return ae&&(ae.buffering||ae.seeking)||fe&&fe.processing}function O(){if(ae.buffering||ae.seeking)return void n("readBytesAndWait during i/o");var e=32768;ae.read(e,Te).then(function(e){n("got input "+[e.byteLength]),e.byteLength&&ge.push(function(){fe.receiveInput(e,function(){L()})}),ae.eof&&(n("stream is at end!"),Ae=!0),R()||L()})["catch"](N)}function N(e){e instanceof M?n("i/o promise canceled; ignoring"):(n("i/o error: "+e),Ee=new m(m.MEDIA_ERR_NETWORK,""+e),Y=K.ERROR,y())}function L(e){if(void 0===e&&(e=-1),ae&&ae.waiting)return void n("waiting on input");re&&(n("canceling old processing timer"),clearTimeout(re),re=null);var t=-1/256;e>t?re=setTimeout(function(){L()},e):At?Ct=!0:P()}function F(){Oe||fe||(Be=0,We=0,Ge=0,Ke=0,Oe=!0,Le=!1,fe=new j(Q),ut=0,pt=0,ft=0,mt=0,gt=0,ht=0,rt=0,ot=0,st=0,ct=0,dt=0,lt=0,vt=0,fe.onseek=function(e){ue=!0,ae&&S(e)},fe.init(function(){O()}))}function U(e){q&&Se.match(/\.webm$/i)?Q.type="video/webm":Q.type="video/ogg",j=u,e()}function B(e){function t(){ae=new s({url:ne.src,cacheSize:16777216}),ae.load().then(function(){Re=!1,Se=ne.src,Ie=ae.seekable?ae.length:0;var e=ae.headers["x-content-duration"];"string"==typeof e&&(xe=parseFloat(e)),U(F)})["catch"](N)}w(),Se="",Re=!0,ge.push(function(){e&&"none"===ne.preload?Re=!1:t()}),L(0)}e=e||{};var H="ogvjs"+ ++h.instanceCount,j=null,V={};void 0!==e.webGL&&(V.webGL=e.webGL),e.forceWebGL&&(V.webGL="required");var q=!!e.enableWebM,z=!!window.Worker;"undefined"!=typeof e.worker&&(z=!!e.worker);var W=!!e.threading,G=!!e.wasm;void 0===e.sync&&(e.sync="skip-frames");var K={INITIAL:"INITIAL",SEEKING_END:"SEEKING_END",LOADED:"LOADED",PRELOAD:"PRELOAD",READY:"READY",PLAYING:"PLAYING",SEEKING:"SEEKING",ENDED:"ENDED",ERROR:"ERROR"},Y=K.INITIAL,X={NOT_SEEKING:"NOT_SEEKING",BISECT_TO_TARGET:"BISECT_TO_TARGET",BISECT_TO_KEYPOINT:"BISECT_TO_KEYPOINT",LINEAR_TO_TARGET:"LINEAR_TO_TARGET"},J=X.NOT_SEEKING,Z={},Q={};e.base=e.base||o.base,"string"==typeof e.base&&(Z.base=e.base,Q.base=e.base),"undefined"!=typeof e.audioContext&&(Z.audioContext=e.audioContext),"undefined"!=typeof e.audioDestination&&(Z.output=e.audioDestination),Z.bufferSize=8192,Q.worker=z,Q.threading=W,Q.wasm=G,"number"==typeof e.memoryLimit&&(Q.memoryLimit=e.memoryLimit);var ee,te=document.createElement("canvas"),ne=document.createElement("ogvjs");ne.className=H,i(ne,g),te.style.position="absolute",te.style.top="0",te.style.left="0",te.style.width="100%",te.style.height="100%",te.style.objectFit="contain",ne.appendChild(te);var ie;ie=void 0===window.performance||void 0===window.performance.now?Date.now:window.performance.now.bind(window.performance);var ae,re,oe,se,le,ce,de,ue,pe=ie(),fe=null,me=null,he=null,ge=[],_e=null,ve=!1,ye=0,be=0,we=!1,ke=!1,Me=0,Se="",Ae=!1,Ce={},Te={},Ee=null,$e=!1,Ie=0,xe=null,Pe=null,De=null,Re=!1,Oe=!1,Ne=!0,Le=!1,Fe=!1,Ue=0,Be=0,He=1e3/60,je=0,Ve=0,qe=0,ze=0,We=0,Ge=0,Ke=0,Ye=0,Xe=0,Je=0,Ze=0,Qe="",et=(ie(),0),tt=0,nt=[],it=[],at=0,rt=0,ot=0,st=0,lt=0,ct=0,dt=0,ut=0,pt=0,ft=0,mt=0,ht=0,gt=0,_t=0,vt=0,yt=0,bt=250,wt=0,kt=0,Mt=0,St={EXACT:"exact",FAST:"fast"};M.prototype=Object.create(Error);var me,he,At=0,Ct=!1,Tt=0,Et=0,$t=3,It=4;ne.load=function(){B()},ne.canPlayType=function(e){var t=new d(e);if("ogg"!==t.minor||"audio"!==t.major&&"video"!==t.major&&"application"!==t.major)return"";if(t.codecs){var n=["vorbis","opus","theora"],i=0,a=0;return t.codecs.forEach(function(e){n.indexOf(e)>=0?i++:a++}),0===i?"":a>0?"":"probably"}return"maybe"},ne.play=function(){ve||Z.audioContext||h.initSharedAudioContext(),Ne&&(Fe=document.body.contains(ne),Ne=!1,Y==K.SEEKING||(Oe&&fe&&fe.loadedMetadata?(Le&&ae&&Ie?(n(".play() starting over after end"),C(0)):n(".play() while already started"),Y=K.READY,R()||L()):Re?n(".play() while loading"):(n(".play() before started"),ae||ne.load())))},ne.getPlaybackStats=function(){return{targetPerFrameTime:He,framesProcessed:Be,playTime:ze,demuxingTime:fe?fe.demuxerCpuTime-ft:0,videoDecodingTime:fe?fe.videoCpuTime-ut:0,audioDecodingTime:fe?fe.audioCpuTime-pt:0,bufferTime:We-mt,drawingTime:Ge-gt,proxyTime:Ke-ht,droppedAudio:Xe,delayedAudio:Je,jitter:Ye/Be,lateFrames:Ze}},ne.resetPlaybackStats=function(){Be=0,ze=0,fe&&(ft=fe.demuxerCpuTime,ut=fe.videoCpuTime,pt=fe.audioCpuTime),mt=We,gt=Ge,ht=Ke,Ye=0,Ve=0,qe=0},ne.getVideoFrameSink=function(){return ee},ne.getCanvas=function(){return te},ne.pause=function(){Ne||(clearTimeout(re),re=null,y(),we=!1,ke=!1,Ne=!0,a("pause"))},ne.stop=function(){w(),Ne=!0},ne.fastSeek=function(e){C(+e,St.FAST)},Object.defineProperty(ne,"src",{get:function(){return ne.getAttribute("src")||""},set:function(e){ne.setAttribute("src",e),Re=!1,B("interactive")}}),Object.defineProperty(ne,"buffered",{get:function(){var e;return e=ae&&Ie&&xe?ae.getBufferedRanges().map(function(e){return e.map(function(e){return e/ae.length*xe})}):[[0,0]],new p(e)}}),Object.defineProperty(ne,"seekable",{get:function(){return new p(ne.duration<1/0&&ae&&ae.seekable&&fe&&fe.seekable?[[0,xe]]:[])}}),Object.defineProperty(ne,"currentTime",{get:function(){return Y==K.SEEKING?wt:fe?Y!=K.PLAYING||Ne?be:b():Me},set:function(e){C(e,St.EXACT)}}),Object.defineProperty(ne,"duration",{get:function(){return fe&&fe.loadedMetadata?null!==xe?xe:1/0:NaN}}),Object.defineProperty(ne,"paused",{get:function(){return Ne}}),Object.defineProperty(ne,"ended",{get:function(){return Le}}),Object.defineProperty(ne,"seeking",{get:function(){return Y==K.SEEKING}}),Object.defineProperty(ne,"muted",{get:function(){return ve},set:function(e){ve=e,_e?_e.muted=ve:Oe&&!ve&&fe&&fe.hasAudio&&(n("unmuting: switching from timer to audio clock"),_(),v(tt)),f("volumechange")}}),Object.defineProperty(ne,"poster",{get:function(){return Qe},set:function(e){Qe=e,Oe||(oe&&ne.removeChild(oe),oe=new Image,oe.src=Qe,oe.className="ogvjs-poster",oe.style.position="absolute",oe.style.top="0",oe.style.left="0",oe.style.width="100%",oe.style.height="100%",oe.style.objectFit="contain",oe.style.visibility="hidden",oe.addEventListener("load",function(){oe===this&&(h.styleManager.appendRule("."+H,{width:oe.naturalWidth+"px",height:oe.naturalHeight+"px"}),h.updatePositionOnResize(),oe.style.visibility="visible")}),ne.appendChild(oe))}}),Object.defineProperty(ne,"videoWidth",{get:function(){return me?me.displayWidth:0}}),Object.defineProperty(ne,"videoHeight",{get:function(){return me?me.displayHeight:0}}),Object.defineProperty(ne,"ogvjsVideoFrameRate",{get:function(){return me?0==me.fps?qe/(Ve/1e3):me.fps:0}}),Object.defineProperty(ne,"ogvjsAudioChannels",{get:function(){return he?he.channels:0}}),Object.defineProperty(ne,"ogvjsAudioSampleRate",{get:function(){return he?he.rate:0}});var xt=0,Pt=0;Object.defineProperty(ne,"width",{get:function(){return xt},set:function(e){xt=parseInt(e,10),ne.style.width=xt+"px",h.updatePositionOnResize()}}),Object.defineProperty(ne,"height",{get:function(){return Pt},set:function(e){Pt=parseInt(e,10),ne.style.height=Pt+"px",h.updatePositionOnResize()}}),Object.defineProperty(ne,"autoplay",{get:function(){return!1},set:function(e){}}),Object.defineProperty(ne,"controls",{get:function(){return!1},set:function(e){}}),Object.defineProperty(ne,"loop",{get:function(){return!1},set:function(e){}}),Object.defineProperty(ne,"crossOrigin",{get:function(){return null},set:function(e){}}),Object.defineProperty(ne,"currentSrc",{get:function(){return Se}}),Object.defineProperty(ne,"defaultMuted",{get:function(){return!1}}),Object.defineProperty(ne,"defaultPlaybackRate",{get:function(){return 1}}),Object.defineProperty(ne,"error",{get:function(){return Y===K.ERROR?Ee?Ee:new m("unknown error occurred in media procesing"):null}}),Object.defineProperty(ne,"preload",{get:function(){return ne.getAttribute("preload")||""},set:function(e){ne.setAttribute("preload",e)}}),Object.defineProperty(ne,"readyState",{get:function(){return ae&&fe&&fe.loadedMetadata?h.HAVE_ENOUGH_DATA:h.HAVE_NOTHING}}),Object.defineProperty(ne,"networkState",{get:function(){return ae?ae.waiting?h.NETWORK_LOADING:h.NETWORK_IDLE:ne.readyState==h.HAVE_NOTHING?h.NETWORK_EMPTY:h.NETWORK_NO_SOURCE}}),Object.defineProperty(ne,"playbackRate",{get:function(){return 1},set:function(e){}}),Object.defineProperty(ne,"played",{get:function(){return new p([[0,ne.currentTime]])}});var Dt=1;return Object.defineProperty(ne,"volume",{get:function(){return Dt},set:function(e){Dt=+e,_e&&(_e.volume=Dt),f("volumechange")}}),ne.onframecallback=null,ne.onloadstate=null,ne.onprogress=null,ne.onsuspend=null,ne.onabort=null,ne.onemptied=null,ne.onstalled=null,ne.onloadedmetadata=null,ne.onloadeddata=null,ne.oncanplay=null,ne.oncanplaythrough=null,ne.onplaying=null,ne.onwaiting=null,ne.onseeking=null,ne.onseeked=null,ne.onended=null,ne.ondurationchange=null,ne.ontimeupdate=null,ne.onplay=null,ne.onpause=null,ne.onratechange=null,ne.onresize=null,ne.onvolumechange=null,ne};h.initSharedAudioContext=function(){l.initSharedAudioContext()};var g={NETWORK_EMPTY:0,NETWORK_IDLE:1,NETWORK_LOADING:2,NETWORK_NO_SOURCE:3,HAVE_NOTHING:0,HAVE_METADATA:1,HAVE_CURRENT_DATA:2,HAVE_FUTURE_DATA:3,HAVE_ENOUGH_DATA:4};if(i(h,g),h.instanceCount=0,h.styleManager=new a,h.supportsObjectFit="string"==typeof document.createElement("div").style.objectFit,h.supportsObjectFit&&navigator.userAgent.match(/iPhone|iPad|iPod Touch/)&&(h.supportsObjectFit=!1),h.supportsObjectFit)h.updatePositionOnResize=function(){};else{h.updatePositionOnResize=function(){function e(e,t,n){var i=e.offsetParent||e.parentNode,a=i.offsetWidth/i.offsetHeight,r=t/n;if(r>a){var o=i.offsetWidth/r,s=(i.offsetHeight-o)/2;e.style.width="100%",e.style.height=o+"px",e.style.marginLeft=0,e.style.marginRight=0,e.style.marginTop=s+"px",e.style.marginBottom=s+"px"}else{var l=i.offsetHeight*r,c=(i.offsetWidth-l)/2;e.style.width=l+"px",e.style.height="100%",e.style.marginLeft=c+"px",e.style.marginRight=c+"px",e.style.marginTop=0,e.style.marginBottom=0}}function t(e,t){var n=document.querySelectorAll(e),i=Array.prototype.slice.call(n);i.forEach(t)}t("ogvjs > canvas",function(t){e(t,t.width,t.height)}),t("ogvjs > img",function(t){e(t,t.naturalWidth,t.naturalHeight)})};var _=function(){setTimeout(h.updatePositionOnResize,0)};window.addEventListener("resize",h.updatePositionOnResize),window.addEventListener("orientationchange",h.updatePositionOnResize),document.addEventListener("fullscreenchange",_),document.addEventListener("mozfullscreenchange",_),document.addEventListener("webkitfullscreenchange",_),document.addEventListener("MSFullscreenChange",_)}e.exports=h},function(e,t,n){(function(t,i){!function(t,n){e.exports=n()}(this,function(){"use strict";function e(e){return"function"==typeof e||"object"==typeof e&&null!==e}function a(e){return"function"==typeof e}function r(e){Y=e}function o(e){X=e}function s(){return function(){return t.nextTick(p)}}function l(){return"undefined"!=typeof K?function(){K(p)}:u()}function c(){var e=0,t=new Q(p),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function d(){var e=new MessageChannel;return e.port1.onmessage=p,function(){return e.port2.postMessage(0)}}function u(){var e=setTimeout;return function(){return e(p,1)}}function p(){for(var e=0;e<G;e+=2){var t=ne[e],n=ne[e+1];t(n),ne[e]=void 0,ne[e+1]=void 0}G=0}function f(){try{var e=n(11);return K=e.runOnLoop||e.runOnContext,l()}catch(t){return u()}}function m(e,t){var n=arguments,i=this,a=new this.constructor(g);void 0===a[ae]&&O(a);var r=i._state;return r?!function(){var e=n[r-1];X(function(){return P(r,a,e,i._result)})}():E(i,a,e,t),a}function h(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(g);return S(n,e),n}function g(){}function _(){return new TypeError("You cannot resolve a promise with itself")}function v(){return new TypeError("A promises callback cannot return that same promise.")}function y(e){try{return e.then}catch(t){return le.error=t,le}}function b(e,t,n,i){try{e.call(t,n,i)}catch(a){return a}}function w(e,t,n){X(function(e){var i=!1,a=b(n,t,function(n){i||(i=!0,t!==n?S(e,n):C(e,n))},function(t){i||(i=!0,T(e,t))},"Settle: "+(e._label||" unknown promise"));!i&&a&&(i=!0,T(e,a))},e)}function k(e,t){t._state===oe?C(e,t._result):t._state===se?T(e,t._result):E(t,void 0,function(t){return S(e,t)},function(t){return T(e,t)})}function M(e,t,n){t.constructor===e.constructor&&n===m&&t.constructor.resolve===h?k(e,t):n===le?(T(e,le.error),le.error=null):void 0===n?C(e,t):a(n)?w(e,t,n):C(e,t)}function S(t,n){t===n?T(t,_()):e(n)?M(t,n,y(n)):C(t,n)}function A(e){e._onerror&&e._onerror(e._result),$(e)}function C(e,t){e._state===re&&(e._result=t,e._state=oe,0!==e._subscribers.length&&X($,e))}function T(e,t){e._state===re&&(e._state=se,e._result=t,X(A,e))}function E(e,t,n,i){var a=e._subscribers,r=a.length;e._onerror=null,a[r]=t,a[r+oe]=n,a[r+se]=i,0===r&&e._state&&X($,e)}function $(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var i=void 0,a=void 0,r=e._result,o=0;o<t.length;o+=3)i=t[o],a=t[o+n],i?P(n,i,a,r):a(r);e._subscribers.length=0}}function I(){this.error=null}function x(e,t){try{return e(t)}catch(n){return ce.error=n,ce}}function P(e,t,n,i){var r=a(n),o=void 0,s=void 0,l=void 0,c=void 0;if(r){if(o=x(n,i),o===ce?(c=!0,s=o.error,o.error=null):l=!0,t===o)return void T(t,v())}else o=i,l=!0;t._state!==re||(r&&l?S(t,o):c?T(t,s):e===oe?C(t,o):e===se&&T(t,o))}function D(e,t){try{t(function(t){S(e,t)},function(t){T(e,t)})}catch(n){T(e,n)}}function R(){return de++}function O(e){e[ae]=de++,e._state=void 0,e._result=void 0,e._subscribers=[]}function N(e,t){this._instanceConstructor=e,this.promise=new e(g),this.promise[ae]||O(this.promise),W(t)?(this._input=t,this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?C(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&C(this.promise,this._result))):T(this.promise,L())}function L(){return new Error("Array Methods must be provided an Array")}function F(e){return new N(this,e).promise}function U(e){var t=this;return new t(W(e)?function(n,i){for(var a=e.length,r=0;r<a;r++)t.resolve(e[r]).then(n,i)}:function(e,t){return t(new TypeError("You must pass an array to race."))})}function B(e){var t=this,n=new t(g);return T(n,e),n}function H(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function j(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function V(e){this[ae]=R(),this._result=this._state=void 0,this._subscribers=[],g!==e&&("function"!=typeof e&&H(),this instanceof V?D(this,e):j())}function q(){var e=void 0;if("undefined"!=typeof i)e=i;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=e.Promise;if(n){var a=null;try{a=Object.prototype.toString.call(n.resolve())}catch(t){}if("[object Promise]"===a&&!n.cast)return}e.Promise=V}var z=void 0;z=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var W=z,G=0,K=void 0,Y=void 0,X=function(e,t){ne[G]=e,ne[G+1]=t,G+=2,2===G&&(Y?Y(p):ie())},J="undefined"!=typeof window?window:void 0,Z=J||{},Q=Z.MutationObserver||Z.WebKitMutationObserver,ee="undefined"==typeof self&&"undefined"!=typeof t&&"[object process]"==={}.toString.call(t),te="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,ne=new Array(1e3),ie=void 0;ie=ee?s():Q?c():te?d():void 0===J?f():u();var ae=Math.random().toString(36).substring(16),re=void 0,oe=1,se=2,le=new I,ce=new I,de=0;return N.prototype._enumerate=function(){for(var e=this.length,t=this._input,n=0;this._state===re&&n<e;n++)this._eachEntry(t[n],n)},N.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,i=n.resolve;if(i===h){var a=y(e);if(a===m&&e._state!==re)this._settledAt(e._state,t,e._result);else if("function"!=typeof a)this._remaining--,this._result[t]=e;else if(n===V){var r=new n(g);M(r,e,a),this._willSettleAt(r,t)}else this._willSettleAt(new n(function(t){return t(e)}),t)}else this._willSettleAt(i(e),t)},N.prototype._settledAt=function(e,t,n){var i=this.promise;i._state===re&&(this._remaining--,e===se?T(i,n):this._result[t]=n),0===this._remaining&&C(i,this._result)},N.prototype._willSettleAt=function(e,t){var n=this;E(e,void 0,function(e){return n._settledAt(oe,t,e)},function(e){return n._settledAt(se,t,e)})},V.all=F,V.race=U,V.resolve=h,V.reject=B,V._setScheduler=r,V._setAsap=o,V._asap=X,V.prototype={constructor:V,then:m,"catch":function(e){return this.then(null,e)}},V.polyfill=q,V.Promise=V,V})}).call(t,n(10),function(){return this}())},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(d===setTimeout)return setTimeout(e,0);if((d===n||!d)&&setTimeout)return d=setTimeout,setTimeout(e,0);try{return d(e,0)}catch(t){try{return d.call(null,e,0)}catch(t){return d.call(this,e,0)}}}function r(e){if(u===clearTimeout)return clearTimeout(e);if((u===i||!u)&&clearTimeout)return u=clearTimeout,clearTimeout(e);try{return u(e)}catch(t){try{return u.call(null,e)}catch(t){return u.call(this,e)}}}function o(){h&&f&&(h=!1,f.length?m=f.concat(m):g=-1,m.length&&s())}function s(){if(!h){var e=a(o);h=!0;for(var t=m.length;t;){for(f=m,m=[];++g<t;)f&&f[g].run();g=-1,t=m.length}f=null,h=!1,r(e)}}function l(e,t){this.fun=e,this.array=t}function c(){}var d,u,p=e.exports={};!function(){try{d="function"==typeof setTimeout?setTimeout:n}catch(e){d=n}try{u="function"==typeof clearTimeout?clearTimeout:i}catch(e){u=i}}();var f,m=[],h=!1,g=-1;p.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];m.push(new l(e,t)),1!==m.length||h||a(s)},l.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=c,p.addListener=c,p.once=c,p.off=c,p.removeListener=c,p.removeAllListeners=c,p.emit=c,p.binding=function(e){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(e){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},function(e,t){},function(e,t,n){!function(){"use strict";var t=n(13),i=n(14),a=n(17),r={FrameSink:t,SoftwareFrameSink:i,WebGLFrameSink:a,attach:function(e,t){t=t||{};var n="webGL"in t?t.webGL:a.isAvailable();return n?new a(e,t):new i(e,t)}};e.exports=r}()},function(e,t){!function(){"use strict";function t(e,t){throw new Error("abstract")}t.prototype.drawFrame=function(e){throw new Error("abstract")},t.prototype.clear=function(){throw new Error("abstract")},e.exports=t}()},function(e,t,n){!function(){"use strict";function t(e){function t(e,t){o=r.createImageData(e,t);for(var n=o.data,i=e*t*4,a=0;a<i;a+=4)n[a+3]=255}function n(e,t){s=document.createElement("canvas"),s.width=e,s.height=t,l=s.getContext("2d")}var i=this,r=e.getContext("2d"),o=null,s=null,l=null;return i.drawFrame=function(i){var c=i.format;e.width===c.displayWidth&&e.height===c.displayHeight||(e.width=c.displayWidth,e.height=c.displayHeight),null!==o&&o.width==c.width&&o.height==c.height||t(c.width,c.height),a.convertYCbCr(i,o.data);var d,u=c.cropWidth!=c.displayWidth||c.cropHeight!=c.displayHeight;u?(s||n(c.cropWidth,c.cropHeight),d=l):d=r,d.putImageData(o,0,0,c.cropLeft,c.cropTop,c.cropWidth,c.cropHeight),u&&r.drawImage(s,0,0,c.displayWidth,c.displayHeight)},i.clear=function(){r.clearRect(0,0,e.width,e.height)},i}var i=n(13),a=n(15);t.prototype=Object.create(i.prototype),e.exports=t}()},function(e,t,n){!function(){"use strict";function t(e,t){var n=e.format.width,a=e.format.height,r=i(e.format.width/e.format.chromaWidth),o=i(e.format.height/e.format.chromaHeight),s=e.y.bytes,l=e.u.bytes,c=e.v.bytes,d=e.y.stride,u=e.u.stride,p=e.v.stride,f=4*n,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0;if(1==r&&1==o)for(b=0,w=f,x=0,$=0;$<a;$+=2){for(h=$*d,g=h+d,_=x*u,v=x*p,E=0;E<n;E+=2)k=l[_++],M=c[v++],A=409*M-57088,C=100*k+208*M-34816,T=516*k-70912,S=298*s[h++],t[b++]=S+A>>8,t[b++]=S-C>>8,t[b++]=S+T>>8,b++,S=298*s[h++],t[b++]=S+A>>8,t[b++]=S-C>>8,t[b++]=S+T>>8,b++,S=298*s[g++],t[w++]=S+A>>8,t[w++]=S-C>>8,t[w++]=S+T>>8,w++,S=298*s[g++],t[w++]=S+A>>8,t[w++]=S-C>>8,t[w++]=S+T>>8,w++;b+=f,w+=f,x++}else for(y=0,$=0;$<a;$++)for(I=0,x=$>>o,m=$*d,_=x*u,v=x*p,E=0;E<n;E++)I=E>>r,k=l[_+I],M=c[v+I],A=409*M-57088,C=100*k+208*M-34816,T=516*k-70912,S=298*s[m++],t[y++]=S+A>>8,t[y++]=S-C>>8,t[y++]=S+T>>8,y++}var i=n(16);e.exports={convertYCbCr:t}}()},function(e,t){!function(){"use strict";function t(e){for(var t=0,n=e>>1;0!=n;)n>>=1,t++;if(e!==1<<t)throw"chroma plane dimensions must be power of 2 ratio to luma plane dimensions; got "+e;return t}e.exports=t}()},function(e,t,n){!function(){"use strict";function t(e){function n(){if(d&&(h=c.getError(),0!==h))throw new Error("GL error "+h)}function i(e,t){var n=c.createShader(e);if(c.shaderSource(n,t),c.compileShader(n),!c.getShaderParameter(n,c.COMPILE_STATUS)){var i=c.getShaderInfoLog(n);throw c.deleteShader(n),new Error("GL shader compilation for "+e+" failed: "+i)}return n}function r(e,i,a,r,o,s){var l,d=t.stripe?r/4:r,u=t.stripe?c.RGBA:c.LUMINANCE,p=t.stripe?c.NEAREST:c.LINEAR;return _[e]?l=_[e]:(_[e]=l=c.createTexture(),n(),c.uniform1i(c.getUniformLocation(f,e),a),n()),c.activeTexture(i),n(),c.bindTexture(c.TEXTURE_2D,l),n(),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),n(),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),n(),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,p),n(),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,p),n(),c.texImage2D(c.TEXTURE_2D,0,u,d,o,0,u,c.UNSIGNED_BYTE,s),n(),l}function o(e,t){for(var n=e*t,i=new Uint32Array(n),a=0;a<n;a+=4)i[a]=255,i[a+1]=65280,i[a+2]=16711680,i[a+3]=4278190080;return new Uint8Array(i.buffer)}function s(e){if(u=i(c.VERTEX_SHADER,a.vertex),p=t.stripe?i(c.FRAGMENT_SHADER,a.fragmentStripe):i(c.FRAGMENT_SHADER,a.fragment),f=c.createProgram(),c.attachShader(f,u),n(),c.attachShader(f,p),n(),c.linkProgram(f),!c.getProgramParameter(f,c.LINK_STATUS)){var s=c.getProgramInfoLog(f);throw c.deleteProgram(f),new Error("GL program linking failed: "+s)}c.useProgram(f),n(),t.stripe&&(r("uStripeLuma",c.TEXTURE3,3,4*e.y.stride,e.format.height,o(e.y.stride,e.format.height)),n(),r("uStripeChroma",c.TEXTURE4,4,4*e.u.stride,e.format.chromaHeight,o(e.u.stride,e.format.chromaHeight)),n())}var l=this,c=e.getContext("webgl")||e.getContext("experimental-webgl"),d=!1;if(null===c)throw new Error("WebGL unavailable");var u,p,f,m,h,g=new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),_={};return l.drawFrame=function(t){function i(e,t){var i=a.cropLeft/t,r=(a.cropLeft+a.cropWidth)/t,o=(a.cropTop+a.cropHeight)/a.height,s=a.cropTop/a.height,l=new Float32Array([i,o,r,o,i,s,i,s,r,o,r,s]),d=c.createBuffer();c.bindBuffer(c.ARRAY_BUFFER,d),n(),c.bufferData(c.ARRAY_BUFFER,l,c.STATIC_DRAW),n();var u=c.getAttribLocation(f,e);n(),c.enableVertexAttribArray(u),n(),c.vertexAttribPointer(u,2,c.FLOAT,!1,0,0),n()}var a=t.format;e.width===a.displayWidth&&e.height===a.displayHeight||(e.width=a.displayWidth,e.height=a.displayHeight,l.clear()),f||s(t),m=c.createBuffer(),n(),c.bindBuffer(c.ARRAY_BUFFER,m),n(),c.bufferData(c.ARRAY_BUFFER,g,c.STATIC_DRAW),n();var o=c.getAttribLocation(f,"aPosition");n(),c.enableVertexAttribArray(o),n(),c.vertexAttribPointer(o,2,c.FLOAT,!1,0,0),n(),i("aLumaPosition",t.y.stride),i("aChromaPosition",t.u.stride*a.width/a.chromaWidth);r("uTextureY",c.TEXTURE0,0,t.y.stride,a.height,t.y.bytes),r("uTextureCb",c.TEXTURE1,1,t.u.stride,a.chromaHeight,t.u.bytes),r("uTextureCr",c.TEXTURE2,2,t.v.stride,a.chromaHeight,t.v.bytes);c.drawArrays(c.TRIANGLES,0,g.length/2),n()},l.clear=function(){c.viewport(0,0,e.width,e.height),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT)},l.clear(),l}var i=n(13),a=n(18);t.stripe=function(){return navigator.userAgent.indexOf("Windows")!==-1}(),t.isAvailable=function(){var e,n=document.createElement("canvas");n.width=1,n.height=1;var i={};try{e=n.getContext("webgl",i)||n.getContext("experimental-webgl",i)}catch(a){return!1}if(e){var r=e.TEXTURE0,o=4,s=4,l=e.createTexture(),c=new Uint8Array(o*s),d=t.stripe?o/4:o,u=t.stripe?e.RGBA:e.LUMINANCE,p=t.stripe?e.NEAREST:e.LINEAR;e.activeTexture(r),e.bindTexture(e.TEXTURE_2D,l),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,p),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,p),e.texImage2D(e.TEXTURE_2D,0,u,d,s,0,u,e.UNSIGNED_BYTE,c);var f=e.getError();return!f}return!1},t.prototype=Object.create(i.prototype),e.exports=t}()},function(e,t){e.exports={vertex:"attribute vec2 aPosition;\nattribute vec2 aLumaPosition;\nattribute vec2 aChromaPosition;\nvarying vec2 vLumaPosition;\nvarying vec2 vChromaPosition;\nvoid main() {\n gl_Position = vec4(aPosition, 0, 1);\n vLumaPosition = aLumaPosition;\n vChromaPosition = aChromaPosition;\n}\n",fragment:"// inspired by https://github.com/mbebenita/Broadway/blob/master/Player/canvas.js\n\nprecision mediump float;\nuniform sampler2D uTextureY;\nuniform sampler2D uTextureCb;\nuniform sampler2D uTextureCr;\nvarying vec2 vLumaPosition;\nvarying vec2 vChromaPosition;\nvoid main() {\n // Y, Cb, and Cr planes are uploaded as LUMINANCE textures.\n float fY = texture2D(uTextureY, vLumaPosition).x;\n float fCb = texture2D(uTextureCb, vChromaPosition).x;\n float fCr = texture2D(uTextureCr, vChromaPosition).x;\n\n // Premultipy the Y...\n float fYmul = fY * 1.1643828125;\n\n // And convert that to RGB!\n gl_FragColor = vec4(\n fYmul + 1.59602734375 * fCr - 0.87078515625,\n fYmul - 0.39176171875 * fCb - 0.81296875 * fCr + 0.52959375,\n fYmul + 2.017234375 * fCb - 1.081390625,\n 1\n );\n}\n",fragmentStripe:"// inspired by https://github.com/mbebenita/Broadway/blob/master/Player/canvas.js\n// extra 'stripe' texture fiddling to work around IE 11's poor performance on gl.LUMINANCE and gl.ALPHA textures\n\nprecision mediump float;\nuniform sampler2D uStripeLuma;\nuniform sampler2D uStripeChroma;\nuniform sampler2D uTextureY;\nuniform sampler2D uTextureCb;\nuniform sampler2D uTextureCr;\nvarying vec2 vLumaPosition;\nvarying vec2 vChromaPosition;\nvoid main() {\n // Y, Cb, and Cr planes are mapped into a pseudo-RGBA texture\n // so we can upload them without expanding the bytes on IE 11\n // which doesn\\'t allow LUMINANCE or ALPHA textures.\n // The stripe textures mark which channel to keep for each pixel.\n vec4 vStripeLuma = texture2D(uStripeLuma, vLumaPosition);\n vec4 vStripeChroma = texture2D(uStripeChroma, vChromaPosition);\n\n // Each texture extraction will contain the relevant value in one\n // channel only.\n vec4 vY = texture2D(uTextureY, vLumaPosition) * vStripeLuma;\n vec4 vCb = texture2D(uTextureCb, vChromaPosition) * vStripeChroma;\n vec4 vCr = texture2D(uTextureCr, vChromaPosition) * vStripeChroma;\n\n // Now assemble that into a YUV vector, and premultipy the Y...\n vec3 YUV = vec3(\n (vY.x + vY.y + vY.z + vY.w) * 1.1643828125,\n (vCb.x + vCb.y + vCb.z + vCb.w),\n (vCr.x + vCr.y + vCr.z + vCr.w)\n );\n // And convert that to RGB!\n gl_FragColor = vec4(\n YUV.x + 1.59602734375 * YUV.z - 0.87078515625,\n YUV.x - 0.39176171875 * YUV.y - 0.81296875 * YUV.z + 0.52959375,\n YUV.x + 2.017234375 * YUV.y - 1.081390625,\n 1\n );\n}\n"
}},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=(n(20),n(21)),o=n(24),s=function(){function e(t){var n=t.url,a=void 0===n?"":n,o=t.chunkSize,s=void 0===o?1048576:o,l=t.cacheSize,c=void 0===l?0:l;i(this,e),this.length=-1,this.loaded=!1,this.loading=!1,this.seekable=!1,this.buffering=!1,this.seeking=!1,Object.defineProperties(this,{offset:{get:function(){return this._cache.readOffset}},eof:{get:function(){return this.length===this._cache.readOffset}}}),this.url=a,this.headers={},this._cache=new r({cacheSize:c}),this._backend=null,this._cachever=0,this._chunkSize=s}return a(e,[{key:"load",value:function(){var e=this;return new Promise(function(t,n){if(e.loading)throw new Error("cannot load when loading");if(e.loaded)throw new Error("cannot load when loaded");e.loading=!0,e._openBackend().then(function(n){e.seekable=n.seekable,e.headers=n.headers,e.length=n.length,e.loaded=!0,e.loading=!1,t()})["catch"](function(t){"AbortError"!==t.name&&(e.loading=!1),n(t)})})}},{key:"_openBackend",value:function(){var e=this;return new Promise(function(t,n){if(e._backend)t(e._backend);else if(e.eof)n(new Error("cannot open at end of file"));else{var i=e._cache,a=e._chunkSize,r=i.bytesReadable(a),s=i.readOffset+r;if(i.seekWrite(s),e.length>=0&&s>=e.length)return void t(null);var l=i.bytesWritable(a);0===l?t(null):!function(){var i=e._backend=new o({url:e.url,offset:e._cache.writeOffset,length:l,cachever:e._cachever}),a=null,r=function(){i!==e._backend?(a(),n(new Error("invalid state"))):(i.on("buffer",function(t){i===e._backend&&e._cache.write(t)}),i.on("done",function(){i===e._backend&&(e.length===-1&&(e.length=e._backend.offset+e._backend.bytesRead),e._backend=null)}),t(i))},s=function(t){i!==e._backend?n(new Error("invalid state")):(e._backend=null,n(t))};a=function(){i.off("open",r),i.off("error",s)},i.on("open",r),i.on("error",s),i.on("cachever",function(){e._cachever++}),i.load()}()}})}},{key:"_readAhead",value:function(){var e=this;return new Promise(function(t,n){e._backend||e.eof?t():e._openBackend().then(function(){t()})["catch"](function(e){n(e)})})}},{key:"seek",value:function(e){var t=this;return new Promise(function(n,i){if(!t.loaded||t.buffering||t.seeking)throw new Error("invalid state");if(e!==(0|e)||e<0)throw new Error("invalid input");if(t.length>=0&&e>t.length)throw new Error("seek past end of file");if(!t.seekable)throw new Error("seek on non-seekable stream");t._backend&&t.abort(),t._cache.seekRead(e),t._cache.seekWrite(e),t._readAhead().then(n)["catch"](i)})}},{key:"read",value:function(e){var t=this;return this.buffer(e).then(function(e){return t.readSync(e)})}},{key:"readSync",value:function(e){var t=this.bytesAvailable(e),n=new Uint8Array(t),i=this.readBytes(n);if(i!==t)throw new Error("failed to read expected data");return n.buffer}},{key:"readBytes",value:function(e){if(!this.loaded||this.buffering||this.seeking)throw new Error("invalid state");if(!(e instanceof Uint8Array))throw new Error("invalid input");var t=this._cache.readBytes(e);return this._readAhead(),t}},{key:"buffer",value:function(e){var t=this;return new Promise(function(n,i){if(!t.loaded||t.buffering||t.seeking)throw new Error("invalid state");if(e!==(0|e)||e<0)throw new Error("invalid input");var a=t._clampToLength(t.offset+e),r=a-t.offset,o=t.bytesAvailable(r);o>=r?n(o):(t.buffering=!0,t._openBackend().then(function(n){return n?n.bufferToOffset(a).then(function(){return t.buffering=!1,t.buffer(e)}):Promise.resolve(o)}).then(function(e){t.buffering=!1,n(e)})["catch"](function(e){"AbortError"!==e.name&&(t.buffering=!1),i(e)}))})}},{key:"bytesAvailable",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;return this._cache.bytesReadable(e)}},{key:"abort",value:function(){this.loading&&(this.loading=!1),this.buffering&&(this.buffering=!1),this.seeking&&(this.seeking=!1),this._backend&&(this._backend.abort(),this._backend=null)}},{key:"getBufferedRanges",value:function(){return this._cache.ranges()}},{key:"_clampToLength",value:function(e){return this.length<0?e:Math.min(this.length,e)}}]),e}();e.exports=s},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a=function(){function e(){n(this,e),this._e={}}return i(e,[{key:"on",value:function(e,t){(this._e[e]||(this._e[e]=[])).push(t)}},{key:"off",value:function(e,t){var n=this._e[e]||[],i=n.indexOf(t);t>=0&&n.splice(i,1)}},{key:"emit",value:function(e,t){(this._e[e]||[]).slice().forEach(function(e){return e(t)})}}]),e}();e.exports=a},function(e,t,n){"use strict";e.exports=n(22)},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=n(23),o=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.cacheSize,a=void 0===n?0:n;i(this,e);var o=new r({eof:!0});this.head=o,this.tail=o,this.readOffset=0,this.readCursor=o,this.writeOffset=0,this.writeCursor=o,this.cacheSize=a}return a(e,[{key:"bytesReadable",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0,t=this.readOffset,n=this.readCursor,i=n.last(function(n){return!n.empty&&n.start<=t+e});return i?Math.min(e,i.end-t):0}},{key:"bytesWritable",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0,t=this.writeOffset,n=this.writeCursor;if(n.eof)return e;var i=n.last(function(n){return n.empty&&n.start<=t+e});return i?Math.min(e,i.end-t):0}},{key:"seekRead",value:function(e){var t=this.head.first(function(t){return t.contains(e)});if(!t)throw new Error("read seek out of range");this.readOffset=e,this.readCursor=t}},{key:"seekWrite",value:function(e){var t=this.head.first(function(t){return t.contains(e)});if(!t)throw new Error("write seek out of range");this.writeOffset=e,this.writeCursor=t}},{key:"readBytes",value:function(e){for(var t=e.byteLength,n=this.bytesReadable(t),i=this.readOffset,a=i+n,r=i,o=this.readCursor;o&&!o.empty&&!(o.start>=a);o=o.next){var s=Math.min(a,o.end),l=e.subarray(r-i,s-i);o.readBytes(l,r,s),r=s}return this.readOffset=r,this.readCursor=this.readCursor.first(function(e){return e.contains(r)}),n}},{key:"write",value:function(e){var t=this.bufferItem(e),n=this.writeCursor;if(!n.empty)throw new Error("write cursor not empty");if(!n.contains(t.end)&&n.end!==t.end)throw new Error("write cursor too small");n.start<t.start&&(this.split(n,t.start),n=this.writeCursor),(t.end<n.end||n.eof)&&(this.split(n,t.end),n=this.writeCursor),this.splice(n,n,t,t),this.writeOffset=t.end,this.writeCursor=t.next,this.gc()}},{key:"bufferItem",value:function(e){if(e instanceof ArrayBuffer)return new r({start:this.writeOffset,end:this.writeOffset+e.byteLength,buffer:e});if("string"==typeof e)return new r({start:this.writeOffset,end:this.writeOffset+e.length,string:e});throw new Error("invalid input to write")}},{key:"split",value:function(e,t){var n=e.split(t);this.splice(e,e,n[0],n[1])}},{key:"ranges",value:function t(){for(var t=[],e=this.head;e;e=e.next)if(!e.empty){var n=e;e=e.last(function(e){return!e.empty}),t.push([n.start,e.end])}return t}},{key:"gc",value:function(){for(var e=0,t=[],n=this.head;n;n=n.next)n.empty||(e+=n.length,(n.end<this.readOffset||n.start>this.readOffset+this.chunkSize)&&t.push(n));if(e>this.cacheSize){t.sort(function(e,t){return e.timestamp-t.timestamp});for(var i=0;i<t.length;i++){var a=t[i];if(e<=this.cacheSize)break;this.remove(a),e-=a.length}}}},{key:"remove",value:function(e){var t=new r({start:e.start,end:e.end});this.splice(e,e,t,t),e=t,e.prev&&e.prev.empty&&(e=this.consolidate(e.prev)),e.next&&e.next.empty&&!e.next.eof&&(e=this.consolidate(e)),0===e.start&&(this.head=e)}},{key:"consolidate",value:function(e){var t=e.last(function(e){return e.empty&&!e.eof}),n=new r({start:e.start,end:t.end});return this.splice(e,t,n,n),n}},{key:"splice",value:function(e,t,n,i){var a=this;if(e.start!==n.start)throw new Error("invalid splice head");if(!(t.end===i.end||t.eof&&i.eof))throw new Error("invalid splice tail");var r=e.prev,o=t.next;e.prev=null,t.next=null,r&&(r.next=n,n.prev=r),o&&(o.prev=i,i.next=o),e===this.head&&(this.head=n),t===this.tail&&(this.tail=i),this.readCursor=this.head.first(function(e){return e.contains(a.readOffset)}),this.writeCursor=this.head.first(function(e){return e.contains(a.writeOffset)})}},{key:"eof",get:function(){return this.readCursor.eof}}]),e}();e.exports=o},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=t.buffer,a=void 0===i?void 0:i,r=t.string,o=void 0===r?void 0:r,s=t.start,l=void 0===s?0:s,c=t.end,d=void 0===c?l+(a?a.byteLength:o?o.length:0):c,u=t.prev,p=void 0===u?null:u,f=t.next,m=void 0===f?null:f,h=t.eof,g=void 0!==h&&h,_=t.empty,v=void 0===_?!(a||o):_,y=t.timestamp,b=void 0===y?Date.now():y;n(this,e),this.start=l,this.end=d,this.prev=p,this.next=m,this.eof=g,this.empty=v,this.timestamp=b,this.buffer=a,this.string=o,Object.defineProperty(this,"length",{get:function(){return this.end-this.start}})}return i(e,[{key:"contains",value:function(e){return e>=this.start&&(e<this.end||this.eof)}},{key:"readBytes",value:function(e,t,n){var i=t-this.start,a=n-t;if(this.buffer){var r=new Uint8Array(this.buffer,i,a);e.set(r)}else{if(!this.string)throw new Error("invalid state");for(var o=this.string,s=0;s<a;s++)e[s]=o.charCodeAt(i+s)}this.timestamp=Date.now()}},{key:"split",value:function(t){if(!this.empty||!this.contains(t))throw new Error("invalid split");var n=new e({start:this.start,end:t}),i=new e({start:t,end:this.eof?t:this.end,eof:this.eof});return n.next=i,i.prev=n,[n,i]}},{key:"first",value:function(e){for(var t=this;t;t=t.next)if(e(t))return t;return null}},{key:"last",value:function t(e){for(var t=null,n=this;n&&e(n);n=n.next)t=n;return t}}]),e}();e.exports=a},function(e,t,n){"use strict";function i(){return r.supported()?r:s.supported()?s:o.supported()?o:null}function a(e){if(l||(l=i()),!l)throw new Error("No supported backend class");return new l(e)}var r=n(25),o=n(28),s=n(29),l=null;e.exports=a},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),s=function u(e,t,n){null===e&&(e=Function.prototype);var i=Object.getOwnPropertyDescriptor(e,t);if(void 0===i){var a=Object.getPrototypeOf(e);return null===a?void 0:u(a,t,n)}if("value"in i)return i.value;var r=i.get;if(void 0!==r)return r.call(n)},l=n(26),c="moz-chunked-arraybuffer",d=function(e){function t(){return i(this,t),a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return r(t,e),o(t,[{key:"initXHR",value:function(){s(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"initXHR",this).call(this),this.xhr.responseType=c}},{key:"onXHRProgress",value:function(){var e=this.xhr.response;this.bytesRead+=e.byteLength,this.emit("buffer",e)}}]),t}(l);d.supported=function(){try{var e=new XMLHttpRequest;return e.responseType=c,e.responseType===c}catch(t){return!1}},e.exports=d},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),s=function d(e,t,n){null===e&&(e=Function.prototype);var i=Object.getOwnPropertyDescriptor(e,t);if(void 0===i){var a=Object.getPrototypeOf(e);return null===a?void 0:d(a,t,n)}if("value"in i)return i.value;var r=i.get;if(void 0!==r)return r.call(n)},l=n(27),c=function(e){function t(){return i(this,t),a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return r(t,e),o(t,[{key:"bufferToOffset",value:function(e){var t=this;return new Promise(function(n,i){t.eof||t.offset>=e?n():!function(){var a=null;t._onAbort=function(e){a(),i(reason)};var r=function(){t.offset>=e&&!t.eof&&(a(),n())},o=function(){a(),n()},s=function(){a(),i(new Error("error streaming"))};a=function(){t.buffering=!1,t.off("buffer",r),t.off("done",o),t.off("error",s),t._onAbort=null},t.buffering=!0,t.on("buffer",r),t.on("done",o),t.on("error",s)}()})}},{key:"initXHR",value:function(){s(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"initXHR",this).call(this)}},{key:"onXHRStart",value:function(){var e=this;this.xhr.addEventListener("progress",function(){return e.onXHRProgress()}),this.xhr.addEventListener("error",function(){return e.onXHRError()}),this.xhr.addEventListener("load",function(){return e.onXHRLoad()}),this.emit("open")}},{key:"onXHRProgress",value:function(){throw new Error("abstract")}},{key:"onXHRError",value:function(){this.emit("error")}},{key:"onXHRLoad",value:function(){this.eof=!0,this.emit("done")}}]),t}(l);e.exports=c},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e){if(206==e.status)return c(e);var t=e.getResponseHeader("Content-Length");return null===t||""===t?-1:parseInt(t,10)}function s(e){var t=e.getResponseHeader("Content-Range");return t&&t.match(/^bytes (\d+)-(\d+)\/(\d+)/)}function l(e){var t=s(e);return t?parseInt(t[1],10):0}function c(e){var t=s(e);return t?parseInt(t[3],10):-1}function d(e){var t={},n=e.getAllResponseHeaders().split(/\n/);return n.forEach(function(e){var n=e.split(/:\s*/,2);n.length>1&&(t[n[0].toLowerCase()]=n[1])}),t}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),p=n(20),f=function(e){function t(e){var n=e.url,r=e.offset,o=e.length,s=e.cachever,l=void 0===s?0:s;i(this,t);var c=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return c.url=n,c.offset=r,c.length=o,c.cachever=l,c.loaded=!1,c.seekable=!1,c.headers={},c.eof=!1,c.bytesRead=0,c.xhr=new XMLHttpRequest,c}return r(t,e),u(t,[{key:"load",value:function(){var e=this;return new Promise(function(t,n){var i=null;e._onAbort=function(e){i(),n(e)};var a=function(){if(2==e.xhr.readyState){if(206==e.xhr.status){var a=l(e.xhr);if(e.offset!=a)return console.log("Expected start at "+e.offset+" but got "+a+"; working around Safari range caching bug: https://bugs.webkit.org/show_bug.cgi?id=82672"),e.cachever++,e.emit("cachever"),e.abort(),i(),void e.load().then(t)["catch"](n);e.seekable=!0}e.xhr.status>=200&&e.xhr.status<300?(e.length=o(e.xhr),e.headers=d(e.xhr),e.onXHRStart(),e.xhr.responseURL&&"data:"==e.xhr.responseURL.substr(0,5)&&(e.seekable=!0)):(i(),n(new Error("HTTP error "+e.xhr.status)))}},r=function(){i(),n(new Error("network error"))},s=function(){i(),t()};i=function(){e.xhr.removeEventListener("readystatechange",a),e.xhr.removeEventListener("error",r),e.off("open",s),e._onAbort=null},e.initXHR(),e.xhr.addEventListener("readystatechange",a),e.xhr.addEventListener("error",r),e.on("open",s),e.xhr.send()})}},{key:"bufferToOffset",value:function(e){return Promise.reject(new Error("abstract"))}},{key:"abort",value:function(){if(this.xhr.abort(),this._onAbort){var e=this._onAbort;this._onAbort=null;var t=new Error("Aborted");t.name="AbortError",e(t)}}},{key:"initXHR",value:function(){var e=this.url;this.cachever&&(e+="?buggy_cachever="+this.cachever),this.xhr.open("GET",e);var t=null;(this.offset||this.length)&&(t="bytes="+this.offset+"-"),this.length&&(t+=this.offset+this.length-1),null!==t&&this.xhr.setRequestHeader("Range",t)}},{key:"onXHRStart",value:function(){throw new Error("abstract")}}]),t}(p);e.exports=f},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),s=function u(e,t,n){null===e&&(e=Function.prototype);var i=Object.getOwnPropertyDescriptor(e,t);if(void 0===i){var a=Object.getPrototypeOf(e);return null===a?void 0:u(a,t,n)}if("value"in i)return i.value;var r=i.get;if(void 0!==r)return r.call(n)},l=n(27),c="ms-stream",d=function(e){function t(e){i(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.stream=null,n.streamReader=null,n}return r(t,e),o(t,[{key:"initXHR",value:function(){s(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"initXHR",this).call(this),this.xhr.responseType=c}},{key:"onXHRStart",value:function(){var e=this,t=function n(){3===e.xhr.readyState&&(e.stream=e.xhr.response,e.xhr.removeEventListener("readystatechange",n),e.emit("open"))};this.xhr.addEventListener("readystatechange",t)}},{key:"waitForStream",value:function(){var e=this;return new Promise(function(t,n){e.stream?t(e.stream):!function(){var i=null;e._onAbort=function(e){i(),n(e)};var a=function(){t(e.stream)};i=function(){e.off("open",a),e._onAbort=null},e.on("open",a)}()})}},{key:"bufferToOffset",value:function(e){var t=this;return this.waitForStream().then(function(n){return new Promise(function(i,a){if(t.streamReader)throw new Error("cannot trigger read when reading");if(t.offset>=e||t.eof)i();else{var r=e-t.offset;t.streamReader=new MSStreamReader,t.streamReader.onload=function(e){t.streamReader=null;var n=e.target.result;n.byteLength>0?(t.bytesRead+=n.byteLength,t.emit("buffer",n)):(t.eof=!0,t.emit("done")),i()},t.streamReader.onerror=function(){t.streamReader=null,t.stream=null,t.emit("error"),a(new Error("mystery error streaming"))},t._onAbort=function(e){t.streamReader.abort(),t.streamReader=null,t.stream=null,t.emit("error"),a(reason)},t.streamReader.readAsArrayBuffer(n,r)}})})}},{key:"abort",value:function(){this.streamReader&&(this.streamReader.abort(),this.streamReader=null),this.stream&&(this.stream.msClose(),this.stream=null),s(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"abort",this).call(this)}}]),t}(l);d.supported=function(){try{var e=new XMLHttpRequest;return e.open("GET","/robots.txt"),e.responseType=c,e.responseType===c}catch(t){return!1}},e.exports=d},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),s=function d(e,t,n){null===e&&(e=Function.prototype);var i=Object.getOwnPropertyDescriptor(e,t);if(void 0===i){var a=Object.getPrototypeOf(e);return null===a?void 0:d(a,t,n)}if("value"in i)return i.value;var r=i.get;if(void 0!==r)return r.call(n)},l=n(26),c=function(e){function t(){return i(this,t),a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return r(t,e),o(t,[{key:"initXHR",value:function(){s(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"initXHR",this).call(this),this.xhr.responseType="text",this.xhr.overrideMimeType("text/plain; charset=x-user-defined")}},{key:"onXHRProgress",value:function(){var e=this.xhr.responseText.slice(this.bytesRead);e.length>0&&(this.bytesRead+=e.length,this.emit("buffer",e))}},{key:"onXHRLoad",value:function(){this.onXHRProgress(),s(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"onXHRLoad",this).call(this)}}]),t}(l);c.supported=function(){try{var e=new XMLHttpRequest;return!!e.overrideMimeType}catch(t){return!1}},e.exports=c},function(e,t,n){!function(t,n){e.exports=n()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var a=n[i]={exports:{},id:i,loaded:!1};return e[i].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){!function(){function t(e){this._options=e||{},this._backend=null}var i=(n(1),n(2)),a=n(4);t.prototype.rate=0,t.prototype.targetRate=0,t.prototype.channels=0,t.prototype.bufferSize=0,Object.defineProperty(t.prototype,"bufferDuration",{get:function(){return this.targetRate?this.bufferSize/this.targetRate:0}}),Object.defineProperty(t.prototype,"bufferThreshold",{get:function(){return this._backend?this._backend.bufferThreshold/this.targetRate:0},set:function(e){if(!this._backend)throw"Invalid state: AudioFeeder cannot set bufferThreshold before init";this._backend.bufferThreshold=Math.round(e*this.targetRate)}}),Object.defineProperty(t.prototype,"playbackPosition",{get:function(){if(this._backend){var e=this.getPlaybackState();return e.playbackPosition}return 0}}),Object.defineProperty(t.prototype,"durationBuffered",{get:function(){if(this._backend){var e=this.getPlaybackState();return e.samplesQueued/this.targetRate}return 0}}),Object.defineProperty(t.prototype,"muted",{get:function(){if(this._backend)return this._backend.muted;throw"Invalid state: cannot get mute before init"},set:function(e){if(!this._backend)throw"Invalid state: cannot set mute before init";this._backend.muted=e}}),t.prototype.mute=function(){this.muted=!0},t.prototype.unmute=function(){this.muted=!1},Object.defineProperty(t.prototype,"volume",{get:function(){if(this._backend)return this._backend.volume;throw"Invalid state: cannot get volume before init"},set:function(e){if(!this._backend)throw"Invalid state: cannot set volume before init";this._backend.volume=e}}),t.prototype.init=function(e,t){if(this.channels=e,this.rate=t,i.isSupported())this._backend=new i(e,t,this._options);else{if(!a.isSupported())throw"No supported backend";this._backend=new a(e,t,this._options)}this.targetRate=this._backend.rate,this.bufferSize=this._backend.bufferSize,this._backend.onstarved=function(){this.onstarved&&this.onstarved()}.bind(this),this._backend.onbufferlow=function(){this.onbufferlow&&this.onbufferlow()}.bind(this)},t.prototype._resample=function(e){var t=this.rate,n=this.channels,i=this._backend.rate,a=this._backend.channels;if(t==i&&n==a)return e;for(var r=[],o=0;o<a;o++){var s=o;o>=n&&(s=0);for(var l=e[s],c=new Float32Array(Math.round(l.length*i/t)),d=0;d<c.length;d++)c[d]=l[d*t/i|0];r.push(c)}return r},t.prototype.bufferData=function(e){if(!this._backend)throw"Invalid state: AudioFeeder cannot bufferData before init";var t=this._resample(e);this._backend.appendBuffer(t)},t.prototype.getPlaybackState=function(){if(this._backend)return this._backend.getPlaybackState();throw"Invalid state: AudioFeeder cannot getPlaybackState before init"},t.prototype.waitUntilReady=function(e){if(!this._backend)throw"Invalid state: AudioFeeder cannot waitUntilReady before init";this._backend.waitUntilReady(e)},t.prototype.start=function(){if(!this._backend)throw"Invalid state: AudioFeeder cannot start before init";this._backend.start()},t.prototype.stop=function(){if(!this._backend)throw"Invalid state: AudioFeeder cannot stop before init";this._backend.stop()},t.prototype.flush=function(){if(!this._backend)throw"Invalid state: AudioFeeder cannot flush before init";this._backend.flush()},t.prototype.close=function(){this._backend&&(this._backend.close(),this._backend=null)},t.prototype.onstarved=null,t.prototype.onbufferlow=null,t.isSupported=function(){return!!Float32Array&&(i.isSupported()||a.isSupported())},t.initSharedAudioContext=function(){return i.isSupported()?i.initSharedAudioContext():null},e.exports=t}()},function(e,t){function n(e,t){if(e<1||e!==Math.round(e))throw"Invalid channel count for BufferQueue";this.channels=e,this.bufferSize=t,this.flush()}n.prototype.flush=function(){this._buffers=[],this._pendingBuffer=this.createBuffer(this.bufferSize),this._pendingPos=0},n.prototype.sampleCount=function(){var e=0;return this._buffers.forEach(function(t){e+=t[0].length}),e},n.prototype.createBuffer=function(e){for(var t=[],n=0;n<this.channels;n++)t[n]=new Float32Array(e);return t},n.prototype.validate=function(e){if(e.length!==this.channels)return!1;for(var t,n=0;n<e.length;n++){var i=e[n];if(!(i instanceof Float32Array))return!1;if(0==n)t=i.length;else if(i.length!==t)return!1}return!0},n.prototype.appendBuffer=function(e){if(!this.validate(e))throw"Invalid audio buffer passed to BufferQueue.appendBuffer";for(var t=e[0],n=t.length,i=0;i<n;i++){for(var a=0;a<this.channels;a++)this._pendingBuffer[a][this._pendingPos]=e[a][i];++this._pendingPos==this.bufferSize&&(this._buffers.push(this._pendingBuffer),this._pendingPos=0,this._pendingBuffer=this.createBuffer(this.bufferSize))}},n.prototype.prependBuffer=function(e){if(!this.validate(e))throw"Invalid audio buffer passed to BufferQueue.prependBuffer";var t=this._buffers.slice(0);t.push(this.trimBuffer(this._pendingBuffer,0,this._pendingPos)),this.flush(),this.appendBuffer(e);for(var n=0;n<t.length;n++)this.appendBuffer(t[n])},n.prototype.nextBuffer=function(){if(this._buffers.length)return this._buffers.shift();var e=this.trimBuffer(this._pendingBuffer,0,this._pendingPos);return this._pendingBuffer=this.createBuffer(this.bufferSize),this._pendingPos=0,e},n.prototype.trimBuffer=function(e,t,n){var i=e[0].length,a=t+Math.min(n,i);if(0==t&&a>=i)return e;for(var r=[],o=0;o<this.channels;o++)r[o]=e[o].subarray(t,a);return r},e.exports=n},function(e,t,n){!function(){function t(e,n,i){var r=i.audioContext||t.initSharedAudioContext();if(this._context=r,this.output=i.output||r.destination,this.rate=r.sampleRate,this.channels=Math.min(e,2),i.bufferSize&&(this.bufferSize=0|i.bufferSize),this.bufferThreshold=2*this.bufferSize,this._bufferQueue=new a(this.channels,this.bufferSize),this._playbackTimeAtBufferTail=r.currentTime,this._queuedTime=0,this._delayedTime=0,this._dropped=0,this._liveBuffer=this._bufferQueue.createBuffer(this.bufferSize),r.createScriptProcessor)this._node=r.createScriptProcessor(this.bufferSize,0,this.channels);else{if(!r.createJavaScriptNode)throw new Error("Bad version of web audio API?");this._node=r.createJavaScriptNode(this.bufferSize,0,this.channels)}}var i=window.AudioContext||window.webkitAudioContext,a=n(1),r=n(3);t.prototype.bufferSize=4096,t.prototype.bufferThreshold=8192,t.prototype._volume=1,Object.defineProperty(t.prototype,"volume",{get:function(){return this._volume},set:function(e){this._volume=+e}}),t.prototype._muted=!1,Object.defineProperty(t.prototype,"muted",{get:function(){return this._muted},set:function(e){this._muted=!!e}}),t.prototype._audioProcess=function(e){var t,n,i,a,o;o="number"==typeof e.playbackTime?e.playbackTime:this._context.currentTime+this.bufferSize/this.rate;var s=this._playbackTimeAtBufferTail;if(s<o&&(this._delayedTime+=o-s),this._bufferQueue.sampleCount()<this.bufferSize&&this.onstarved&&this.onstarved(),this._bufferQueue.sampleCount()<this.bufferSize){for(t=0;t<this.channels;t++)for(i=e.outputBuffer.getChannelData(t),a=0;a<this.bufferSize;a++)i[a]=0;return void this._dropped++}var l=this.muted?0:this.volume,c=this._bufferQueue.nextBuffer();if(c[0].length<this.bufferSize)throw"Audio buffer not expected length.";for(t=0;t<this.channels;t++)for(n=c[t],this._liveBuffer[t].set(c[t]),i=e.outputBuffer.getChannelData(t),a=0;a<n.length;a++)i[a]=n[a]*l;this._queuedTime+=this.bufferSize/this.rate,this._playbackTimeAtBufferTail=o+this.bufferSize/this.rate,this._bufferQueue.sampleCount()<Math.max(this.bufferSize,this.bufferThreshold)&&this.onbufferlow&&r(this.onbufferlow.bind(this))},t.prototype._samplesQueued=function(){var e=this._bufferQueue.sampleCount(),t=Math.floor(this._timeAwaitingPlayback()*this.rate);return e+t},t.prototype._timeAwaitingPlayback=function(){return Math.max(0,this._playbackTimeAtBufferTail-this._context.currentTime)},t.prototype.getPlaybackState=function(){return{playbackPosition:this._queuedTime-this._timeAwaitingPlayback(),samplesQueued:this._samplesQueued(),dropped:this._dropped,delayed:this._delayedTime}},t.prototype.waitUntilReady=function(e){e()},t.prototype.appendBuffer=function(e){this._bufferQueue.appendBuffer(e)},t.prototype.start=function(){this._node.onaudioprocess=this._audioProcess.bind(this),this._node.connect(this.output),this._playbackTimeAtBufferTail=this._context.currentTime},t.prototype.stop=function(){if(this._node){var e=this._timeAwaitingPlayback();if(e>0){var t=Math.round(e*this.rate),n=this._liveBuffer?this._liveBuffer[0].length:0;
t>n?(this._bufferQueue.prependBuffer(this._liveBuffer),this._bufferQueue.prependBuffer(this._bufferQueue.createBuffer(t-n))):this._bufferQueue.prependBuffer(this._bufferQueue.trimBuffer(this._liveBuffer,n-t,t)),this._playbackTimeAtBufferTail-=e}this._node.onaudioprocess=null,this._node.disconnect()}},t.prototype.flush=function(){this._bufferQueue.flush()},t.prototype.close=function(){this.stop(),this._context=null},t.prototype.onstarved=null,t.prototype.onbufferlow=null,t.isSupported=function(){return!!i},t.sharedAudioContext=null,t.initSharedAudioContext=function(){if(!t.sharedAudioContext&&t.isSupported()){var e,n=new i;if(n.createScriptProcessor)e=n.createScriptProcessor(1024,0,2);else{if(!n.createJavaScriptNode)throw new Error("Bad version of web audio API?");e=n.createJavaScriptNode(1024,0,2)}e.connect(n.destination),e.disconnect(),t.sharedAudioContext=n}return t.sharedAudioContext},e.exports=t}()},function(e,t){e.exports=function(){if("undefined"!=typeof window.setImmediate)return window.setImmediate;if(window&&window.postMessage){var e=[];return window.addEventListener("message",function(t){if(t.source===window){var n=t.data;if("object"==typeof n&&n.nextTickBrowserPingMessage){var i=e.pop();i&&i()}}}),function(t){e.push(t),window.postMessage({nextTickBrowserPingMessage:!0},document.location.toString())}}return function(e){setTimeout(e,0)}}()},function(e,t,n){!function(){function t(e){for(var t=new Uint8Array(e),n="",i=t.length,a=0;a<i;a++)n+=l[t[a]];return n}function i(e){return this instanceof arguments.callee?void("function"==typeof this.init&&this.init.apply(this,e&&e.callee?e:arguments)):new arguments.callee(arguments)}var a=n(5),r=n(3),o=function(e,t,n){n=n||{};var o={};"string"==typeof n.base&&(o.swf=n.base+"/"+a),n.bufferSize&&(this.bufferSize=0|n.bufferSize),this._flashaudio=new i(o),this._flashBuffer="",this._flushTimeout=null,this._flushInterval=40,this._cachedFlashState=null,this._cachedFlashTime=0,this._cachedFlashInterval=40,this._waitUntilReadyQueue=[],this.onready=function(){for(this._flashaudio.flashElement.setBufferSize(this.bufferSize),this._flashaudio.flashElement.setBufferThreshold(this.bufferThreshold);this._waitUntilReadyQueue.length;){var e=this._waitUntilReadyQueue.shift();e.apply(this)}},this.onlog=function(e){console.log("AudioFeeder FlashBackend: "+e)},this.bufferThreshold=2*this.bufferSize;var s={ready:"sync",log:"sync",starved:"sync",bufferlow:"async"};this._callbackName="AudioFeederFlashBackendCallback"+this._flashaudio.id;window[this._callbackName]=function(e){var t=s[e],n=this["on"+e];t&&n&&("async"===t?r(n.bind(this)):(n.apply(this,Array.prototype.slice.call(arguments,1)),this._flushFlashBuffer()))}.bind(this)};o.prototype.rate=44100,o.prototype.channels=2,o.prototype.bufferSize=4096,o.prototype._bufferThreshold=8192,Object.defineProperty(o.prototype,"bufferThreshold",{get:function(){return this._bufferThreshold},set:function(e){this._bufferThreshold=0|e,this.waitUntilReady(function(){this._flashaudio.flashElement.setBufferThreshold(this._bufferThreshold)}.bind(this))}}),o.prototype._volume=1,Object.defineProperty(o.prototype,"volume",{get:function(){return this._volume},set:function(e){this._volume=+e,this.waitUntilReady(this._flashVolumeUpdate.bind(this))}}),o.prototype._muted=!1,Object.defineProperty(o.prototype,"muted",{get:function(){return this._muted},set:function(e){this._muted=!!e,this.waitUntilReady(this._flashVolumeUpdate.bind(this))}}),o.prototype._paused=!0,o.prototype._flashVolumeUpdate=function(){this._flashaudio&&this._flashaudio.flashElement&&this._flashaudio.flashElement.setVolume&&this._flashaudio.flashElement.setVolume(this.muted?0:this.volume)},o.prototype._resampleFlash=function(e){for(var t=1,n=e[0].length,i=new Int16Array(2*n),a=e[0],r=this.channels>1?e[1]:a,o=this.muted?0:this.volume,s=16384*o,l=0;l<n;l++){var c=l*t|0,d=2*l;i[d]=a[c]*s,i[d+1]=r[c]*s}return i};for(var s=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],l=[],c=0;c<256;c++)l[c]=s[15&c]+s[(240&c)>>4];o.prototype._flushFlashBuffer=function(){var e=this._flashBuffer,t=this._flashaudio.flashElement;this._cachedFlashState&&(this._cachedFlashState.samplesQueued+=e.length/8),this._flashBuffer="",this._flushTimeout=null,e.length>0&&this.waitUntilReady(function(){t.write(e)})},o.prototype.appendBuffer=function(e){var n=this._resampleFlash(e);if(n.length>0){var i=t(n.buffer);this._flashBuffer+=i,this._flushTimeout||(this._flushTimeout=setTimeout(this._flushFlashBuffer.bind(this),this._flushInterval))}},o.prototype.getPlaybackState=function(){if(this._flashaudio&&this._flashaudio.flashElement&&this._flashaudio.flashElement.write){var e,t=Date.now(),n=this._paused?0:t-this._cachedFlashTime;if(this._cachedFlashState&&n<this._cachedFlashInterval){var i=this._cachedFlashState;e={playbackPosition:i.playbackPosition+n/1e3,samplesQueued:i.samplesQueued-Math.max(0,Math.round(n*this.rate/1e3)),dropped:i.dropped,delayed:i.delayed}}else e=this._flashaudio.flashElement.getPlaybackState(),this._cachedFlashState=e,this._cachedFlashTime=t;return e.samplesQueued+=this._flashBuffer.length/8,e}return{playbackPosition:0,samplesQueued:0,dropped:0,delayed:0}},o.prototype.waitUntilReady=function(e){this._flashaudio&&this._flashaudio.flashElement.write?e.apply(this):this._waitUntilReadyQueue.push(e)},o.prototype.start=function(){this._flashaudio.flashElement.start(),this._paused=!1,this._cachedFlashState=null},o.prototype.stop=function(){this._flashaudio.flashElement.stop(),this._paused=!0,this._cachedFlashState=null},o.prototype.flush=function(){this._flashaudio.flashElement.flush(),this._cachedFlashState=null},o.prototype.close=function(){this.stop();var e=this._flashaudio.flashWrapper;e.parentNode.removeChild(e),this._flashaudio=null,delete window[this._callbackName]},o.prototype.onstarved=null,o.prototype.onbufferlow=null,o.isSupported=function(){if(navigator.userAgent.indexOf("Trident")!==-1)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash");return!0}catch(e){return!1}return!1},i.nextId=1,i.prototype={nextId:null,swf:a,flashWrapper:null,flashElement:null,init:function(e){var t=this;t.id=i.nextId++,e&&"undefined"!=typeof e.swf&&(t.swf=e.swf),t.flashWrapper=document.createElement("div"),t.flashWrapper.id="dynamicaudio-flashwrapper-"+t.id;var n=t.flashWrapper.style;n.position="fixed",n.width="11px",n.height="11px",n.bottom=n.left="0px",n.overflow="hidden",t.flashElement=document.createElement("div"),t.flashElement.id="dynamicaudio-flashelement-"+t.id,t.flashWrapper.appendChild(t.flashElement),document.body.appendChild(t.flashWrapper);var a=t.flashElement.id,r='<param name="FlashVars" value="objectId='+t.id+'">';t.flashWrapper.innerHTML="<object id='"+a+"' width='10' height='10' type='application/x-shockwave-flash' data='"+t.swf+"' style='visibility: visible;'><param name='allowscriptaccess' value='always'>"+r+"</object>",t.flashElement=document.getElementById(a)}},e.exports=o}()},function(e,t,n){e.exports=n.p+"dynamicaudio.swf?version=0f98a83acdc72cf30968c16a018e1cf1"}])})},function(e,t,n){e.exports=n.p+"dynamicaudio.swf?version=0f98a83acdc72cf30968c16a018e1cf1"},function(e,t){function n(e){function t(){return o++,a=Math.floor((n+i)/2),e.process(n,i,a)}var n=e.start,i=e.end,a=0,r=this,o=0;r.start=function(){return t(),r},r.left=function(){return i=a,t()},r.right=function(){return n=a,t()}}e.exports=n},function(e,t,n){var i=n(3),a=function(e){function t(e){var t=d;return function(n){d<=t&&e(n)}}function n(t){if(s.audioCodec){var n=p[s.audioCodec];o=!0,i.loadClass(n,function(e){var n={};s.audioFormat&&(n.audioFormat=s.audioFormat),c=new e(n),c.init(function(){h=c.loadedMetadata,o=!1,t()})},{worker:e.worker})}else t()}function a(t){if(s.videoCodec){var n=f[s.videoCodec];o=!0,i.loadClass(n,function(n){var i={};s.videoFormat&&(i.videoFormat=s.videoFormat),e.memoryLimit&&(i.memoryLimit=e.memoryLimit),l=new n(i),l.init(function(){g=l.loadedMetadata,o=!1,t()})},{worker:e.worker&&!e.threading})}else t()}e=e||{};var r=this,o=("?version="+encodeURIComponent("1.4.2-20170425024925-504d7197"),"string"==typeof e.base?e.base+"/":"","string"==typeof e.type?e.type:"video/ogg",!1),s=null,l=null,c=null,d=0,u=!1;Object.defineProperty(r,"loadedMetadata",{get:function(){return u}}),Object.defineProperty(r,"processing",{get:function(){return o}}),Object.defineProperty(r,"duration",{get:function(){return r.loadedMetadata?s.duration:NaN}}),Object.defineProperty(r,"hasAudio",{get:function(){return r.loadedMetadata&&!!c}}),Object.defineProperty(r,"audioReady",{get:function(){return r.hasAudio&&s.audioReady}}),Object.defineProperty(r,"audioTimestamp",{get:function(){return s.audioTimestamp}}),Object.defineProperty(r,"audioFormat",{get:function(){return r.hasAudio?c.audioFormat:null}}),Object.defineProperty(r,"audioBuffer",{get:function(){return r.hasAudio?c.audioBuffer:null}}),Object.defineProperty(r,"hasVideo",{get:function(){return r.loadedMetadata&&!!l}}),Object.defineProperty(r,"frameReady",{get:function(){return r.hasVideo&&s.frameReady}}),Object.defineProperty(r,"frameTimestamp",{get:function(){return s.frameTimestamp}}),Object.defineProperty(r,"keyframeTimestamp",{get:function(){return s.keyframeTimestamp}}),Object.defineProperty(r,"nextKeyframeTimestamp",{get:function(){return s.nextKeyframeTimestamp}}),Object.defineProperty(r,"videoFormat",{get:function(){return r.hasVideo?l.videoFormat:null}}),Object.defineProperty(r,"frameBuffer",{get:function(){return r.hasVideo?l.frameBuffer:null}}),Object.defineProperty(r,"seekable",{get:function(){return s.seekable}}),r.init=function(t){var n;n="video/webm"===e.type?e.wasm?"OGVDemuxerWebMW":"OGVDemuxerWebM":e.wasm?"OGVDemuxerOggW":"OGVDemuxerOgg",o=!0,i.loadClass(n,function(e){s=new e,s.onseek=function(e){r.onseek&&r.onseek(e)},s.init(function(){o=!1,t()})})},r.close=function(){s&&(s.close(),s=null),l&&(l.close(),l=null),c&&(c.close(),c=null)},r.receiveInput=function(e,t){s.receiveInput(e,t)};var p={vorbis:e.wasm?"OGVDecoderAudioVorbisW":"OGVDecoderAudioVorbis",opus:e.wasm?"OGVDecoderAudioOpusW":"OGVDecoderAudioOpus"},f={theora:e.wasm?"OGVDecoderVideoTheoraW":"OGVDecoderVideoTheora",vp8:e.wasm?"OGVDecoderVideoVP8W":e.threading?"OGVDecoderVideoVP8MT":"OGVDecoderVideoVP8",vp9:e.wasm?"OGVDecoderVideoVP9W":e.threading?"OGVDecoderVideoVP9MT":"OGVDecoderVideoVP9"},m=!1,h=!1,g=!1,_=!1;return r.process=function(e){function t(t){o=!1;var n=(window.performance?performance.now():Date.now())-f;n>8&&console.log("slow demux in "+n+" ms; "+(s.videoPackets.length-d)+" +video packets, "+(s.audioPackets.length-p)+" +audio packets"),e(t)}function i(){s.process(t)}if(o)throw new Error("reentrancy fail on OGVWrapperCodec.process");o=!0;var d=s.videoPackets.length,p=s.audioPackets.length,f=window.performance?performance.now():Date.now();s.loadedMetadata&&!m?n(function(){a(function(){m=!0,h=!c,g=!l,_=h&&g,t(!0)})}):m&&!h?c.loadedMetadata?(h=!0,_=h&&g,t(!0)):s.audioReady?s.dequeueAudioPacket(function(e){c.processHeader(e,function(e){t(!0)})}):i():h&&!g?l.loadedMetadata?(g=!0,_=h&&g,t(!0)):s.frameReady?(o=!0,s.dequeueVideoPacket(function(e){l.processHeader(e,function(){t(!0)})})):i():g&&!r.loadedMetadata&&_?(u=!0,t(!0)):!r.loadedMetadata||r.hasAudio&&!s.audioReady||r.hasVideo&&!s.frameReady?i():t(!0)},r.decodeFrame=function(e){var n=t(e),i=r.frameTimestamp,a=r.keyframeTimestamp;s.dequeueVideoPacket(function(e){l.processFrame(e,function(e){l.frameBuffer&&(l.frameBuffer.timestamp=i,l.frameBuffer.keyframeTimestamp=a),n(e)})})},r.decodeAudio=function(e){var n=t(e);s.dequeueAudioPacket(function(e){c.processAudio(e,n)})},r.discardFrame=function(e){s.dequeueVideoPacket(function(t){e()})},r.discardAudio=function(e){s.dequeueAudioPacket(function(t){e()})},r.flush=function(e){d++,s.flush(e)},r.getKeypointOffset=function(e,t){s.getKeypointOffset(e,t)},r.seekToKeypoint=function(e,n){s.seekToKeypoint(e,t(n))},r.onseek=null,Object.defineProperty(r,"demuxerCpuTime",{get:function(){return s?s.cpuTime:0}}),Object.defineProperty(r,"audioCpuTime",{get:function(){return c?c.cpuTime:0}}),Object.defineProperty(r,"videoCpuTime",{get:function(){return l?l.cpuTime:0}}),r};e.exports=a}])});var OGVDemuxerOgg;!function(){var scriptSrc;"undefined"!=typeof document&&document.currentScript&&(scriptSrc=document.currentScript.src),OGVDemuxerOgg=function(OGVDemuxerOgg){function globalEval(e){eval.call(null,e)}function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,n,i){switch(n=n||"i8","*"===n.charAt(n.length-1)&&(n="i32"),n){case"i1":HEAP8[e>>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+n)}}function getValue(e,t,n){switch(t=t||"i8","*"===t.charAt(t.length-1)&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}function allocate(e,t,n,i){var a,r;"number"==typeof e?(a=!0,r=e):(a=!1,r=e.length);var o,s="string"==typeof t?t:null;if(o=n==ALLOC_NONE?i:["function"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===n?ALLOC_STATIC:n](Math.max(r,s?1:t.length)),a){var l,i=o;for(assert(0==(3&o)),l=o+(r&-4);i<l;i+=4)HEAP32[i>>2]=0;for(l=o+r;i<l;)HEAP8[i++>>0]=0;return o}if("i8"===s)return e.subarray||e.slice?HEAPU8.set(e,o):HEAPU8.set(new Uint8Array(e),o),o;for(var c,d,u,p=0;p<r;){var f=e[p];"function"==typeof f&&(f=Runtime.getFunctionIndex(f)),c=s||t[p],0!==c?("i64"==c&&(c="i32"),setValue(o+p,f,c),u!==c&&(d=Runtime.getNativeTypeSize(c),u=c),p+=d):p++}return o}function getMemory(e){return staticSealed?runtimeInitialized?_malloc(e):Runtime.dynamicAlloc(e):Runtime.staticAlloc(e)}function Pointer_stringify(e,t){if(0===t||!e)return"";for(var n,i=0,a=0;;){if(n=HEAPU8[e+a>>0],i|=n,0==n&&!t)break;if(a++,t&&a==t)break}t||(t=a);var r="";if(i<128){for(var o,s=1024;t>0;)o=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,s))),r=r?r+o:o,e+=s,t-=s;return r}return Module.UTF8ToString(e)}function AsciiToString(e){for(var t="";;){var n=HEAP8[e++>>0];if(!n)return t;t+=String.fromCharCode(n)}}function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}function UTF8ArrayToString(e,t){for(var n=t;e[n];)++n;if(n-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,n));for(var i,a,r,o,s,l,c="";;){if(i=e[t++],!i)return c;if(128&i)if(a=63&e[t++],192!=(224&i))if(r=63&e[t++],224==(240&i)?i=(15&i)<<12|a<<6|r:(o=63&e[t++],240==(248&i)?i=(7&i)<<18|a<<12|r<<6|o:(s=63&e[t++],248==(252&i)?i=(3&i)<<24|a<<18|r<<12|o<<6|s:(l=63&e[t++],i=(1&i)<<30|a<<24|r<<18|o<<12|s<<6|l))),i<65536)c+=String.fromCharCode(i);else{var d=i-65536;c+=String.fromCharCode(55296|d>>10,56320|1023&d)}else c+=String.fromCharCode((31&i)<<6|a);else c+=String.fromCharCode(i)}}function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}function stringToUTF8Array(e,t,n,i){if(!(i>0))return 0;for(var a=n,r=n+i-1,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o)),s<=127){if(n>=r)break;t[n++]=s}else if(s<=2047){if(n+1>=r)break;t[n++]=192|s>>6,t[n++]=128|63&s}else if(s<=65535){if(n+2>=r)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|63&s}else if(s<=2097151){if(n+3>=r)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}else if(s<=67108863){if(n+4>=r)break;t[n++]=248|s>>24,t[n++]=128|s>>18&63,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}else{if(n+5>=r)break;t[n++]=252|s>>30,t[n++]=128|s>>24&63,t[n++]=128|s>>18&63,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}}return t[n]=0,n-a}function stringToUTF8(e,t,n){return stringToUTF8Array(e,HEAPU8,t,n)}function lengthBytesUTF8(e){for(var t=0,n=0;n<e.length;++n){var i=e.charCodeAt(n);i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++n)),i<=127?++t:t+=i<=2047?2:i<=65535?3:i<=2097151?4:i<=67108863?5:6}return t}function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var n=e.substr(1),i=lengthBytesUTF8(n)+1,a=_malloc(i);stringToUTF8(n,a,i);var r=_malloc(4),o=t(a,0,0,r);if(0===getValue(r,"i32")&&o)return Pointer_stringify(o)}catch(s){}finally{a&&_free(a),r&&_free(r),o&&_free(o)}return e}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){var t=/__Z[\w\d_]+/g;return e.replace(t,function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}function getTotalMemory(){return TOTAL_MEMORY}function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?Module.dynCall_v(n):Module.dynCall_vi(n,t.arg):n(void 0===t.arg?null:t.arg)}else t()}}function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,n){var i=n>0?n:lengthBytesUTF8(e)+1,a=new Array(i),r=stringToUTF8Array(e,a,0,a.length);return t&&(a.length=r),a}function intArrayToString(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];i>255&&(i&=255),t.push(String.fromCharCode(i))}return t.join("")}function writeStringToMemory(e,t,n){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var i,a;n&&(a=t+lengthBytesUTF8(e),i=HEAP8[a]),stringToUTF8(e,t,1/0),n&&(HEAP8[a]=i)}function writeArrayToMemory(e,t){HEAP8.set(e,t)}function writeAsciiToMemory(e,t,n){for(var i=0;i<e.length;++i)HEAP8[t++>>0]=e.charCodeAt(i);n||(HEAP8[t>>0]=0)}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}function _ogvjs_callback_loaded_metadata(e,t){e&&(Module.videoCodec=Module.Pointer_stringify(e)),t&&(Module.audioCodec=Module.Pointer_stringify(t));var n=Module._ogv_demuxer_media_duration();n>=0?Module.duration=n:Module.duration=NaN,Module.loadedMetadata=!0}function _abort(){Module.abort()}function ___syscall3(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.getStreamFromFD(),i=SYSCALLS.get(),a=SYSCALLS.get();return FS.read(n,HEAP8,i,a)}catch(r){return"undefined"!=typeof FS&&r instanceof FS.ErrnoError||abort(r),-r.errno}}function ___lock(){}function ___unlock(){}function ___syscall6(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.getStreamFromFD();return FS.close(n),0}catch(i){return"undefined"!=typeof FS&&i instanceof FS.ErrnoError||abort(i),-i.errno}}function ___setErrNo(e){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=e),e}function _ogvjs_callback_audio_packet(e,t,n){Module.audioPackets.push({data:Module.HEAPU8.buffer.slice?Module.HEAPU8.buffer.slice(e,e+t):new Uint8Array(new Uint8Array(Module.HEAPU8.buffer,e,t)).buffer,timestamp:n})}function _emscripten_memcpy_big(e,t,n){return HEAPU8.set(HEAPU8.subarray(t,t+n),e),e}function _ogvjs_callback_video_packet(e,t,n,i,a){Module.videoPackets.push({data:Module.HEAPU8.buffer.slice?Module.HEAPU8.buffer.slice(e,e+t):new Uint8Array(new Uint8Array(Module.HEAPU8.buffer,e,t)).buffer,timestamp:n,keyframeTimestamp:i,isKeyframe:!!a})}function ___syscall140(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.getStreamFromFD(),i=SYSCALLS.get(),a=SYSCALLS.get(),r=SYSCALLS.get(),o=SYSCALLS.get(),s=a;return assert(0===i),FS.llseek(n,s,o),HEAP32[r>>2]=n.position,n.getdents&&0===s&&0===o&&(n.getdents=null),0}catch(l){return"undefined"!=typeof FS&&l instanceof FS.ErrnoError||abort(l),-l.errno}}function ___syscall146(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.get(),i=SYSCALLS.get(),a=SYSCALLS.get(),r=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(e,t){var n=___syscall146.buffers[e];assert(n),0===t||10===t?((1===e?Module.print:Module.printErr)(UTF8ArrayToString(n,0)),n.length=0):n.push(t)});for(var o=0;o<a;o++){for(var s=HEAP32[i+8*o>>2],l=HEAP32[i+(8*o+4)>>2],c=0;c<l;c++)___syscall146.printChar(n,HEAPU8[s+c]);r+=l}return r}catch(d){return"undefined"!=typeof FS&&d instanceof FS.ErrnoError||abort(d),-d.errno}}function ___syscall54(e,t){SYSCALLS.varargs=t;try{return 0}catch(n){return"undefined"!=typeof FS&&n instanceof FS.ErrnoError||abort(n),-n.errno}}function invoke_iiii(e,t,n,i){try{return Module.dynCall_iiii(e,t,n,i)}catch(a){if("number"!=typeof a&&"longjmp"!==a)throw a;Module.setThrew(1,0)}}function invoke_vi(e,t){try{Module.dynCall_vi(e,t)}catch(n){if("number"!=typeof n&&"longjmp"!==n)throw n;Module.setThrew(1,0)}}function invoke_ii(e,t){try{return Module.dynCall_ii(e,t)}catch(n){if("number"!=typeof n&&"longjmp"!==n)throw n;Module.setThrew(1,0)}}function invoke_iiiii(e,t,n,i,a){try{return Module.dynCall_iiiii(e,t,n,i,a)}catch(r){if("number"!=typeof r&&"longjmp"!==r)throw r;Module.setThrew(1,0)}}function invoke_iii(e,t,n){try{return Module.dynCall_iii(e,t,n)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;Module.setThrew(1,0)}}function invoke_iiiiii(e,t,n,i,a,r){try{return Module.dynCall_iiiiii(e,t,n,i,a,r)}catch(o){if("number"!=typeof o&&"longjmp"!==o)throw o;Module.setThrew(1,0)}}function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),t()},1)):t()))}function exit(e,t){t&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE&&process.exit(e),Module.quit(e,new ExitStatus(e)))}function abort(e){void 0!==e?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var t="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.",n="abort("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(t){n=t(n,e)}),n}function reallocInputBuffer(e){return inputBuffer&&inputBufferSize>=e?inputBuffer:(inputBuffer&&Module._free(inputBuffer),inputBufferSize=e,inputBuffer=Module._malloc(inputBufferSize))}function time(e){var t,n=getTimestamp();t=e();var i=getTimestamp()-n;return Module.cpuTime+=i,t}OGVDemuxerOgg=OGVDemuxerOgg||{},OGVDemuxerOgg.currentScriptUrl||(OGVDemuxerOgg.currentScriptUrl=scriptSrc);var Module=OGVDemuxerOgg,options=Module;Module={print:function(e){console.log(e)}},"undefined"!=typeof OGVLoader&&(Module.pthreadMainPrefixURL=OGVLoader.base+"/"),options.memoryLimit&&!options.wasmBinary&&(Module.TOTAL_MEMORY=options.memoryLimit);for(option in options)options.hasOwnProperty(option)&&(Module[option]=options[option]);var Math_imul_orig=Math.imul,OGVDemuxerOgg=Module,Module;Module||(Module=("undefined"!=typeof OGVDemuxerOgg?OGVDemuxerOgg:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else if("SHELL"===Module.ENVIRONMENT)ENVIRONMENT_IS_SHELL=!0;else{if("PTHREAD"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_WORKER=!0,ENVIRONMENT_IS_PTHREAD=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,t){nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require("path")),e=nodePath.normalize(e);var n=nodeFS.readFileSync(e);return t?n:n.toString()},Module.readBinary=function(e){var t=Module.read(e,!0);return t.buffer||(t=new Uint8Array(t)),assert(t.buffer),t},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:"undefined"!=typeof arguments&&(Module.arguments=arguments),"function"==typeof quit&&(Module.quit=function(e,t){quit(e)});else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),t.response}),Module.readAsync=function(e,t,n){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=function(){200==i.status||0==i.status&&i.response?t(i.response):n()},i.onerror=n,i.send(null)},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return"double"===t||"i64"===t?7&e&&(assert(4===(7&e)),e+=4):assert(0===(3&e)),e},getAlignSize:function(e,t,n){return n||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,n){return n&&n.length?Module["dynCall_"+e].apply(null,[t].concat(n)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t<Runtime.functionPointers.length;t++)if(!Runtime.functionPointers[t])return Runtime.functionPointers[t]=e,2*(1+t);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,t){assert(t),Runtime.funcWrappers[t]||(Runtime.funcWrappers[t]={});var n=Runtime.funcWrappers[t];return n[e]||(1===t.length?n[e]=function(){return Runtime.dynCall(t,e)}:2===t.length?n[e]=function(n){return Runtime.dynCall(t,e,[n])}:n[e]=function(){return Runtime.dynCall(t,e,Array.prototype.slice.call(arguments))}),n[e]},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var t=STACKTOP;return STACKTOP=STACKTOP+e|0,STACKTOP=STACKTOP+15&-16,t},staticAlloc:function(e){var t=STATICTOP;
return STATICTOP=STATICTOP+e|0,STATICTOP=STATICTOP+15&-16,t},dynamicAlloc:function(e){var t=HEAP32[DYNAMICTOP_PTR>>2],n=(t+e+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=n,n>=TOTAL_MEMORY){var i=enlargeMemory();if(!i)return HEAP32[DYNAMICTOP_PTR>>2]=t,0}return t},alignMemory:function(e,t){var n=e=Math.ceil(e/(t?t:16))*(t?t:16);return n},makeBigInt:function(e,t,n){var i=n?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t);return i},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0,cwrap,ccall;!function(){function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}function ensureJSsource(){if(!JSsource){JSsource={};for(var e in JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}}var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(null!==e&&void 0!==e&&0!==e){var n=(e.length<<2)+1;t=Runtime.stackAlloc(n),stringToUTF8(e,t,n)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,n,i,a){var r=getCFunc(e),o=[],s=0;if(i)for(var l=0;l<i.length;l++){var c=toC[n[l]];c?(0===s&&(s=Runtime.stackSave()),o[l]=c(i[l])):o[l]=i[l]}var d=r.apply(null,o);if("string"===t&&(d=Pointer_stringify(d)),0!==s){if(a&&a.async)return void EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(s)});Runtime.stackRestore(s)}return d};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,JSsource=null;cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(e){return"number"===e}),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(e,t){return"$"+t}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}}(),Module.ccall=ccall,Module.cwrap=cwrap,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||16777216;if(TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),buffer=Module.buffer?Module.buffer:new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews(),HEAP32[0]=1668509029,HEAP16[1]=25459,115!==HEAPU8[2]||99!==HEAPU8[3])throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=addOnPreRun,Module.addOnInit=addOnInit,Module.addOnPreMain=addOnPreMain,Module.addOnExit=addOnExit,Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&Math.imul(4294967295,5)===-5||(Math.imul=function(e,t){var n=e>>>16,i=65535&e,a=t>>>16,r=65535&t;return i*r+(n*r+i*a<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var t=0;t<32;t++)if(e&1<<31-t)return t;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+7216,__ATINIT__.push(),allocate([0,0,0,0,183,29,193,4,110,59,130,9,217,38,67,13,220,118,4,19,107,107,197,23,178,77,134,26,5,80,71,30,184,237,8,38,15,240,201,34,214,214,138,47,97,203,75,43,100,155,12,53,211,134,205,49,10,160,142,60,189,189,79,56,112,219,17,76,199,198,208,72,30,224,147,69,169,253,82,65,172,173,21,95,27,176,212,91,194,150,151,86,117,139,86,82,200,54,25,106,127,43,216,110,166,13,155,99,17,16,90,103,20,64,29,121,163,93,220,125,122,123,159,112,205,102,94,116,224,182,35,152,87,171,226,156,142,141,161,145,57,144,96,149,60,192,39,139,139,221,230,143,82,251,165,130,229,230,100,134,88,91,43,190,239,70,234,186,54,96,169,183,129,125,104,179,132,45,47,173,51,48,238,169,234,22,173,164,93,11,108,160,144,109,50,212,39,112,243,208,254,86,176,221,73,75,113,217,76,27,54,199,251,6,247,195,34,32,180,206,149,61,117,202,40,128,58,242,159,157,251,246,70,187,184,251,241,166,121,255,244,246,62,225,67,235,255,229,154,205,188,232,45,208,125,236,119,112,134,52,192,109,71,48,25,75,4,61,174,86,197,57,171,6,130,39,28,27,67,35,197,61,0,46,114,32,193,42,207,157,142,18,120,128,79,22,161,166,12,27,22,187,205,31,19,235,138,1,164,246,75,5,125,208,8,8,202,205,201,12,7,171,151,120,176,182,86,124,105,144,21,113,222,141,212,117,219,221,147,107,108,192,82,111,181,230,17,98,2,251,208,102,191,70,159,94,8,91,94,90,209,125,29,87,102,96,220,83,99,48,155,77,212,45,90,73,13,11,25,68,186,22,216,64,151,198,165,172,32,219,100,168,249,253,39,165,78,224,230,161,75,176,161,191,252,173,96,187,37,139,35,182,146,150,226,178,47,43,173,138,152,54,108,142,65,16,47,131,246,13,238,135,243,93,169,153,68,64,104,157,157,102,43,144,42,123,234,148,231,29,180,224,80,0,117,228,137,38,54,233,62,59,247,237,59,107,176,243,140,118,113,247,85,80,50,250,226,77,243,254,95,240,188,198,232,237,125,194,49,203,62,207,134,214,255,203,131,134,184,213,52,155,121,209,237,189,58,220,90,160,251,216,238,224,12,105,89,253,205,109,128,219,142,96,55,198,79,100,50,150,8,122,133,139,201,126,92,173,138,115,235,176,75,119,86,13,4,79,225,16,197,75,56,54,134,70,143,43,71,66,138,123,0,92,61,102,193,88,228,64,130,85,83,93,67,81,158,59,29,37,41,38,220,33,240,0,159,44,71,29,94,40,66,77,25,54,245,80,216,50,44,118,155,63,155,107,90,59,38,214,21,3,145,203,212,7,72,237,151,10,255,240,86,14,250,160,17,16,77,189,208,20,148,155,147,25,35,134,82,29,14,86,47,241,185,75,238,245,96,109,173,248,215,112,108,252,210,32,43,226,101,61,234,230,188,27,169,235,11,6,104,239,182,187,39,215,1,166,230,211,216,128,165,222,111,157,100,218,106,205,35,196,221,208,226,192,4,246,161,205,179,235,96,201,126,141,62,189,201,144,255,185,16,182,188,180,167,171,125,176,162,251,58,174,21,230,251,170,204,192,184,167,123,221,121,163,198,96,54,155,113,125,247,159,168,91,180,146,31,70,117,150,26,22,50,136,173,11,243,140,116,45,176,129,195,48,113,133,153,144,138,93,46,141,75,89,247,171,8,84,64,182,201,80,69,230,142,78,242,251,79,74,43,221,12,71,156,192,205,67,33,125,130,123,150,96,67,127,79,70,0,114,248,91,193,118,253,11,134,104,74,22,71,108,147,48,4,97,36,45,197,101,233,75,155,17,94,86,90,21,135,112,25,24,48,109,216,28,53,61,159,2,130,32,94,6,91,6,29,11,236,27,220,15,81,166,147,55,230,187,82,51,63,157,17,62,136,128,208,58,141,208,151,36,58,205,86,32,227,235,21,45,84,246,212,41,121,38,169,197,206,59,104,193,23,29,43,204,160,0,234,200,165,80,173,214,18,77,108,210,203,107,47,223,124,118,238,219,193,203,161,227,118,214,96,231,175,240,35,234,24,237,226,238,29,189,165,240,170,160,100,244,115,134,39,249,196,155,230,253,9,253,184,137,190,224,121,141,103,198,58,128,208,219,251,132,213,139,188,154,98,150,125,158,187,176,62,147,12,173,255,151,177,16,176,175,6,13,113,171,223,43,50,166,104,54,243,162,109,102,180,188,218,123,117,184,3,93,54,181,180,64,247,177,229,9,0,0,7,0,0,0,237,9,0,0,1,0,0,0,1,0,0,0,2,0,0,0,244,9,0,0,7,0,0,0,252,9,0,0,3,0,0,0,2,0,0,0,4,0,0,0,3,10,0,0,5,0,0,0,3,10,0,0,5,0,0,0,3,0,0,0,0,0,0,0,9,10,0,0,8,0,0,0,18,10,0,0,6,0,0,0,0,0,0,0,0,0,0,0,22,10,0,0,8,0,0,0,31,10,0,0,7,0,0,0,0,0,0,0,0,0,0,0,36,10,0,0,7,0,0,0,36,10,0,0,8,0,0,0,0,0,0,0,0,0,0,0,44,10,0,0,7,0,0,0,52,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,61,10,0,0,4,0,0,0,66,10,0,0,10,0,0,0,4,0,0,0,0,0,0,0,72,10,0,0,5,0,0,0,78,10,0,0,11,0,0,0,4,0,0,0,0,0,0,0,83,10,0,0,7,0,0,0,83,10,0,0,12,0,0,0,0,0,0,0,0,0,0,0,91,10,0,0,8,0,0,0,100,10,0,0,13,0,0,0,5,0,0,0,0,0,0,0,105,10,0,0,8,0,0,0,114,10,0,0,14,0,0,0,0,0,0,0,0,0,0,0,119,10,0,0,5,0,0,0,125,10,0,0,15,0,0,0,0,0,0,0,0,0,0,0,131,10,0,0,8,0,0,0,140,10,0,0,16,0,0,0,6,0,0,0,17,0,0,0,145,10,0,0,5,0,0,0,151,10,0,0,18,0,0,0,7,0,0,0,0,0,0,0,36,24,0,0,0,0,0,0,155,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,1,0,0,192,3,0,0,128,7,0,0,64,11,0,0,224,1,0,0,192,3,0,0,128,7,0,0,64,11,0,0,224,1,0,0,192,3,0,0,128,7,0,0,64,11,0,0,224,1,0,0,192,3,0,0,224,1,0,0,192,3,0,0,120,0,0,0,240,0,0,0,224,1,0,0,192,3,0,0,120,0,0,0,240,0,0,0,224,1,0,0,192,3,0,0,120,0,0,0,240,0,0,0,224,1,0,0,192,3,0,0,120,0,0,0,240,0,0,0,224,1,0,0,192,3,0,0,128,2,0,0,204,1,0,0,24,0,0,0,1,0,0,0,176,0,0,0,120,0,0,0,96,1,0,0,240,0,0,0,96,1,0,0,32,1,0,0,192,2,0,0,224,1,0,0,192,2,0,0,64,2,0,0,208,2,0,0,224,1,0,0,208,2,0,0,64,2,0,0,0,5,0,0,208,2,0,0,0,5,0,0,208,2,0,0,128,7,0,0,56,4,0,0,128,7,0,0,56,4,0,0,128,7,0,0,56,4,0,0,128,7,0,0,56,4,0,0,0,8,0,0,56,4,0,0,0,16,0,0,112,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,10,0,0,0,9,0,0,0,10,0,0,0,9,0,0,0,10,0,0,0,4,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,4,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,1,0,0,0,1,0,0,0,192,93,0,0,233,3,0,0,24,0,0,0,1,0,0,0,25,0,0,0,1,0,0,0,48,117,0,0,233,3,0,0,30,0,0,0,1,0,0,0,50,0,0,0,1,0,0,0,96,234,0,0,233,3,0,0,60,0,0,0,1,0,0,0,152,58,0,0,233,3,0,0,25,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,7,0,0,0,15,0,0,0,31,0,0,0,63,0,0,0,127,0,0,0,255,0,0,0,255,1,0,0,255,3,0,0,255,7,0,0,255,15,0,0,255,31,0,0,255,63,0,0,255,127,0,0,255,255,0,0,255,255,1,0,255,255,3,0,255,255,7,0,255,255,15,0,255,255,31,0,255,255,63,0,255,255,127,0,255,255,255,0,255,255,255,1,255,255,255,3,255,255,255,7,255,255,255,15,255,255,255,31,255,255,255,63,255,255,255,127,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,45,24,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,9,0,0,79,103,103,83,0,128,116,104,101,111,114,97,0,84,104,101,111,114,97,0,1,118,111,114,98,105,115,0,86,111,114,98,105,115,0,83,112,101,101,120,0,80,67,77,32,32,32,32,32,0,80,67,77,0,67,77,77,76,0,0,0,0,0,67,77,77,76,0,65,110,110,111,100,101,120,0,102,105,115,104,101,97,100,0,83,107,101,108,101,116,111,110,0,102,76,97,67,0,70,108,97,99,48,0,127,70,76,65,67,0,70,108,97,99,0,65,110,120,68,97,116,97,0,67,69,76,84,32,32,32,32,0,67,69,76,84,0,128,107,97,116,101,0,0,0,0,75,97,116,101,0,66,66,67,68,0,0,68,105,114,97,99,0,79,112,117,115,72,101,97,100,0,79,112,117,115,0,79,86,80,56,48,0,86,80,56,0,85,110,107,110,111,119,110,0,86,80,56,48,0,3,118,111,114,98,105,115,0,129,116,104,101,111,114,97,0,129,107,97,116,101,0,0,0,0,79,112,117,115,84,97,103,115,0,79,86,80,56,48,2,32,0,102,105,115,98,111,110,101,0,0,102,105,115,104,101,97,100,0,0,105,110,100,101,120,0,0,66,117,102,102,101,114,32,115,101,101,107,32,102,97,105,108,117,114,101,32,105,110,32,111,103,103,32,100,101,109,117,120,101,114,59,32,37,108,108,100,32,40,37,108,100,32,37,100,41,10,0,116,104,101,111,114,97,0,118,111,114,98,105,115,0,111,112,117,115,0,73,110,118,97,108,105,100,32,111,103,103,32,115,107,101,108,101,116,111,110,32,116,114,97,99,107,32,100,97,116,97,63,32,37,100,10,0,73,110,118,97,108,105,100,32,115,116,97,116,101,32,105,110,32,79,103,103,32,114,101,97,100,80,97,99,107,101,116,67,97,108,108,98,97,99,107,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,115,107,101,108,101,116,111,110,32,112,97,99,107,101,116,58,32,37,100,10,0,69,114,114,111,114,32,37,100,32,102,114,111,109,32,111,103,103,122,95,114,101,97,100,10,0,70,97,105,108,101,100,32,116,111,32,39,115,101,101,107,39,32,111,103,103,122,32,37,100,10,0,116,114,121,105,110,103,32,116,111,32,115,101,101,107,32,116,111,32,37,108,108,100,10,0,102,97,105,108,101,100,32,98,113,95,114,101,97,100,32,108,101,110,32,37,100,32,97,116,32,112,111,115,32,37,108,108,100,10,0,102,97,105,108,101,100,32,97,32,98,113,95,114,101,97,100,32,108,101,110,32,37,100,32,97,116,32,112,111,115,32,37,108,108,100,10,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16,Module._bitshift64Ashr=_bitshift64Ashr,Module._i64Subtract=_i64Subtract,Module._i64Add=_i64Add,Module._memset=_memset,Module._bitshift64Lshr=_bitshift64Lshr,Module._bitshift64Shl=_bitshift64Shl;var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);Module._llvm_cttz_i32=_llvm_cttz_i32,Module.___udivmoddi4=___udivmoddi4,Module.___divdi3=___divdi3;var SYSCALLS={varargs:0,get:function(e){SYSCALLS.varargs+=4;var t=HEAP32[SYSCALLS.varargs-4>>2];return t},getStr:function(){var e=Pointer_stringify(SYSCALLS.get());return e},get64:function(){var e=SYSCALLS.get(),t=SYSCALLS.get();return assert(e>=0?0===t:t===-1),e},getZero:function(){assert(0===SYSCALLS.get())}};Module.___udivdi3=___udivdi3,Module.___muldsi3=___muldsi3,Module.___muldi3=___muldi3,Module._sbrk=_sbrk,Module._memcpy=_memcpy,Module._memmove=_memmove,Module.___uremdi3=___uremdi3,Module._llvm_bswap_i32=_llvm_bswap_i32,__ATEXIT__.push(function(){var e=Module._fflush;e&&e(0);var t=___syscall146.printChar;if(t){var n=___syscall146.buffers;n[1].length&&t(1,10),n[2].length&&t(2,10)}}),DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0,Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort:abort,assert:assert,enlargeMemory:enlargeMemory,getTotalMemory:getTotalMemory,abortOnCannotGrowMemory:abortOnCannotGrowMemory,invoke_iiii:invoke_iiii,invoke_vi:invoke_vi,invoke_ii:invoke_ii,invoke_iiiii:invoke_iiiii,invoke_iii:invoke_iii,invoke_iiiiii:invoke_iiiiii,_ogvjs_callback_loaded_metadata:_ogvjs_callback_loaded_metadata,___syscall3:___syscall3,___lock:___lock,___syscall6:___syscall6,___setErrNo:___setErrNo,_abort:_abort,___unlock:___unlock,_emscripten_memcpy_big:_emscripten_memcpy_big,___syscall54:___syscall54,_ogvjs_callback_audio_packet:_ogvjs_callback_audio_packet,___syscall140:___syscall140,___syscall146:___syscall146,_ogvjs_callback_video_packet:_ogvjs_callback_video_packet,DYNAMICTOP_PTR:DYNAMICTOP_PTR,tempDoublePtr:tempDoublePtr,ABORT:ABORT,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX,cttz_i8:cttz_i8};var asm=function(e,t,n){"use asm";var i=new e.Int8Array(n);var a=new e.Int16Array(n);var r=new e.Int32Array(n);var o=new e.Uint8Array(n);var s=new e.Uint16Array(n);var l=new e.Uint32Array(n);var c=new e.Float32Array(n);var d=new e.Float64Array(n);var u=t.DYNAMICTOP_PTR|0;var p=t.tempDoublePtr|0;var f=t.ABORT|0;var m=t.STACKTOP|0;var h=t.STACK_MAX|0;var g=t.cttz_i8|0;var _=0;var v=0;var y=0;var b=0;var w=e.NaN,k=e.Infinity;var M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0;var P=0;var D=e.Math.floor;var R=e.Math.abs;var O=e.Math.sqrt;var N=e.Math.pow;var L=e.Math.cos;var F=e.Math.sin;var U=e.Math.tan;var B=e.Math.acos;var H=e.Math.asin;var j=e.Math.atan;var V=e.Math.atan2;var q=e.Math.exp;var z=e.Math.log;var W=e.Math.ceil;var G=e.Math.imul;var K=e.Math.min;var Y=e.Math.max;var X=e.Math.clz32;var J=t.abort;var Z=t.assert;var Q=t.enlargeMemory;var ee=t.getTotalMemory;var te=t.abortOnCannotGrowMemory;var ne=t.invoke_iiii;var ie=t.invoke_vi;var ae=t.invoke_ii;var re=t.invoke_iiiii;var oe=t.invoke_iii;var se=t.invoke_iiiiii;var le=t._ogvjs_callback_loaded_metadata;var ce=t.___syscall3;var de=t.___lock;var ue=t.___syscall6;var pe=t.___setErrNo;var fe=t._abort;var me=t.___unlock;var he=t._emscripten_memcpy_big;var ge=t.___syscall54;var _e=t._ogvjs_callback_audio_packet;var ve=t.___syscall140;var ye=t.___syscall146;var be=t._ogvjs_callback_video_packet;var we=0;function ke(e){e=e|0;var t=0;t=m;m=m+e|0;m=m+15&-16;return t|0}function Me(){return m|0}function Se(e){e=e|0;m=e}function Ae(e,t){e=e|0;t=t|0;m=e;h=t}function Ce(e,t){e=e|0;t=t|0;if(!_){_=e;v=t}}function Te(e){e=e|0;P=e}function Ee(){return P|0}function $e(e){e=e|0;return i[(r[e>>2]|0)+5>>0]&1|0}function Ie(e){e=e|0;return i[(r[e>>2]|0)+5>>0]&2|0}function xe(e){e=e|0;var t=0,n=0;t=r[e>>2]|0;e=Lr(o[t+13>>0]|0|0,0,8)|0;n=Lr(e|(o[t+12>>0]|0)|0,P|0,8)|0;e=Lr(n|(o[t+11>>0]|0)|0,P|0,8)|0;n=Lr(e|(o[t+10>>0]|0)|0,P|0,8)|0;e=Lr(n|(o[t+9>>0]|0)|0,P|0,8)|0;n=Lr(e|(o[t+8>>0]|0)|0,P|0,8)|0;e=Lr(n|(o[t+7>>0]|0)|0,P|0,8)|0;return e|(o[t+6>>0]|0)|0}function Pe(e){e=e|0;var t=0;t=r[e>>2]|0;return(o[t+15>>0]|0)<<8|(o[t+14>>0]|0)|(o[t+16>>0]|0)<<16|(o[t+17>>0]|0)<<24|0}function De(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;if(!e){n=-1;return n|0}Or(e+8|0,0,352)|0;r[e+4>>2]=16384;r[e+24>>2]=1024;i=Ar(16384)|0;r[e>>2]=i;a=Ar(4096)|0;o=e+16|0;r[o>>2]=a;s=Ar(8192)|0;l=e+20|0;r[l>>2]=s;do if(!i){c=a;d=a}else{if((s|0)==0|(a|0)==0){Cr(i);u=r[o>>2]|0;c=u;d=u;break}r[e+336>>2]=t;n=0;return n|0}while(0);if(c|0)Cr(d);d=r[l>>2]|0;if(d|0)Cr(d);Or(e|0,0,360)|0;n=-1;return n|0}function Re(e){e=e|0;var t=0;if(!e)return 0;t=r[e>>2]|0;if(t|0)Cr(t);t=r[e+16>>2]|0;if(t|0)Cr(t);t=r[e+20>>2]|0;if(t|0)Cr(t);Or(e|0,0,360)|0;return 0}function Oe(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=e+24|0;i=r[n>>2]|0;if((i-t|0)>(r[e+28>>2]|0)){a=0;return a|0}if((i|0)>(2147483647-t|0)){o=r[e>>2]|0;if(o|0)Cr(o);o=r[e+16>>2]|0;if(o|0)Cr(o);o=r[e+20>>2]|0;if(o|0)Cr(o);Or(e|0,0,360)|0;a=-1;return a|0}o=i+t|0;t=(o|0)<2147483615?o+32|0:o;o=e+16|0;i=Er(r[o>>2]|0,t<<2)|0;if(!i){s=r[e>>2]|0;if(s|0)Cr(s);s=r[o>>2]|0;if(s|0)Cr(s);s=r[e+20>>2]|0;if(s|0)Cr(s);Or(e|0,0,360)|0;a=-1;return a|0}r[o>>2]=i;i=e+20|0;s=Er(r[i>>2]|0,t<<3)|0;if(s|0){r[i>>2]=s;r[n>>2]=t;a=0;return a|0}t=r[e>>2]|0;if(t|0)Cr(t);t=r[o>>2]|0;if(t|0)Cr(t);t=r[i>>2]|0;if(t|0)Cr(t);Or(e|0,0,360)|0;a=-1;return a|0}function Ne(e){e=e|0;if(!e)return 0;r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;r[e+16>>2]=0;r[e+20>>2]=0;r[e+24>>2]=0;return 0}function Le(e){e=e|0;var t=0;if(!e)return 0;t=r[e>>2]|0;if(t|0)Cr(t);r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;r[e+16>>2]=0;r[e+20>>2]=0;r[e+24>>2]=0;return 0}function Fe(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0;n=e+4|0;i=r[n>>2]|0;if((i|0)<=-1){a=0;return a|0}o=e+12|0;s=r[o>>2]|0;l=e+8|0;if(!s)c=i;else{d=(r[l>>2]|0)-s|0;r[l>>2]=d;if((d|0)>0){u=r[e>>2]|0;Wr(u|0,u+s|0,d|0)|0;p=r[n>>2]|0}else p=i;r[o>>2]=0;c=p}p=r[l>>2]|0;do if((c-p|0)<(t|0)){o=t+4096+p|0;i=r[e>>2]|0;if(!i)f=Ar(o)|0;else f=Er(i,o)|0;if(f|0){r[e>>2]=f;r[n>>2]=o;m=f;h=r[l>>2]|0;break}o=r[e>>2]|0;if(o|0)Cr(o);r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;r[e+16>>2]=0;r[e+20>>2]=0;r[e+24>>2]=0;a=0;return a|0}else{m=r[e>>2]|0;h=p}while(0);a=m+h|0;return a|0}function Ue(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=r[e+4>>2]|0;if((n|0)<=-1){i=-1;return i|0}a=e+8|0;e=(r[a>>2]|0)+t|0;if((e|0)>(n|0)){i=-1;return i|0}r[a>>2]=e;i=0;return i|0}function Be(e,t){e=e|0;t=t|0;var n=0,a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0;n=m;m=m+16|0;a=n;s=r[e>>2]|0;l=e+12|0;c=r[l>>2]|0;d=s+c|0;u=e+8|0;p=(r[u>>2]|0)-c|0;if((r[e+4>>2]|0)<=-1){f=0;m=n;return f|0}c=e+20|0;h=r[c>>2]|0;do if(!h){if((p|0)<27){f=0;m=n;return f|0}if(Ta(d,2528,4)|0){g=s;_=e+24|0;break}v=d+26|0;y=i[v>>0]|0;b=(y&255)+27|0;if((p|0)<(b|0)){f=0;m=n;return f|0}if(y<<24>>24){y=e+24|0;w=r[y>>2]|0;k=0;do{w=w+(o[d+(k+27)>>0]|0)|0;r[y>>2]=w;k=k+1|0}while((k|0)<(o[v>>0]|0|0))}r[c>>2]=b;M=b;S=11}else{M=h;S=11}while(0);do if((S|0)==11){h=e+24|0;if((M+(r[h>>2]|0)|0)>(p|0)){f=0;m=n;return f|0}s=d+22|0;v=o[s>>0]|o[s+1>>0]<<8|o[s+2>>0]<<16|o[s+3>>0]<<24;r[a>>2]=v;i[s>>0]=0;i[s+1>>0]=0;i[s+2>>0]=0;i[s+3>>0]=0;k=r[c>>2]|0;w=d+k|0;y=r[h>>2]|0;A=d+23|0;C=d+24|0;T=d+25|0;i[s>>0]=0;i[s+1>>0]=0;i[s+2>>0]=0;i[s+3>>0]=0;if((k|0)>0){E=0;$=0;while(1){I=r[8+(((o[d+$>>0]|0)^E>>>24)<<2)>>2]^E<<8;$=$+1|0;if(($|0)==(k|0)){x=I;break}else E=I}}else x=0;E=x>>>24;if((y|0)>0){k=x;$=0;b=E;while(1){I=r[8+(((o[w+$>>0]|0)^b)<<2)>>2]^k<<8;$=$+1|0;P=I>>>24;if(($|0)==(y|0)){D=I;R=P;break}else{k=I;b=P}}}else{D=x;R=E}i[s>>0]=D;i[A>>0]=D>>>8;i[C>>0]=D>>>16;i[T>>0]=R;if(Ta(a,s,4)|0){i[s>>0]=v;i[s+1>>0]=v>>8;i[s+2>>0]=v>>16;i[s+3>>0]=v>>24;g=r[e>>2]|0;_=h;break}b=r[l>>2]|0;k=(r[e>>2]|0)+b|0;y=r[c>>2]|0;$=r[h>>2]|0;if(t|0){r[t>>2]=k;
r[t+4>>2]=y;r[t+8>>2]=k+y;r[t+12>>2]=$}r[e+16>>2]=0;k=$+y|0;r[l>>2]=k+b;r[c>>2]=0;r[h>>2]=0;f=k;m=n;return f|0}while(0);r[c>>2]=0;r[_>>2]=0;_=Ua(d+1|0,79,p+-1|0)|0;if(!_)O=g+(r[u>>2]|0)|0;else O=_;_=O;r[l>>2]=_-g;f=d-_|0;m=n;return f|0}function He(e,t){e=e|0;t=t|0;var n=0,a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,D=0,R=0;n=r[t>>2]|0;a=r[t+8>>2]|0;s=r[t+12>>2]|0;t=i[n+4>>0]|0;l=i[n+5>>0]|0;c=l&1;d=l&2;u=l&4;l=Lr(o[n+13>>0]|0|0,0,8)|0;p=Lr(l|(o[n+12>>0]|0)|0,P|0,8)|0;l=Lr(p|(o[n+11>>0]|0)|0,P|0,8)|0;p=Lr(l|(o[n+10>>0]|0)|0,P|0,8)|0;l=Lr(p|(o[n+9>>0]|0)|0,P|0,8)|0;p=Lr(l|(o[n+8>>0]|0)|0,P|0,8)|0;l=Lr(p|(o[n+7>>0]|0)|0,P|0,8)|0;p=P;f=l|(o[n+6>>0]|0);l=(o[n+15>>0]|0)<<8|(o[n+14>>0]|0)|(o[n+16>>0]|0)<<16|(o[n+17>>0]|0)<<24;m=(o[n+19>>0]|0)<<8|(o[n+18>>0]|0)|(o[n+20>>0]|0)<<16|(o[n+21>>0]|0)<<24;h=i[n+26>>0]|0;g=h&255;if(!e){_=-1;return _|0}v=r[e>>2]|0;if(!v){_=-1;return _|0}y=e+36|0;b=r[y>>2]|0;w=e+12|0;k=r[w>>2]|0;if(k|0){M=e+8|0;S=(r[M>>2]|0)-k|0;r[M>>2]=S;if(S|0)Wr(v|0,v+k|0,S|0)|0;r[w>>2]=0}if(b|0){w=e+28|0;S=r[w>>2]|0;k=S-b|0;if(!k)A=S;else{S=r[e+16>>2]|0;Wr(S|0,S+(b<<2)|0,k<<2|0)|0;k=r[e+20>>2]|0;Wr(k|0,k+(b<<3)|0,(r[w>>2]|0)-b<<3|0)|0;A=r[w>>2]|0}r[w>>2]=A-b;A=e+32|0;r[A>>2]=(r[A>>2]|0)-b;r[y>>2]=0}if(t<<24>>24?1:(l|0)!=(r[e+336>>2]|0)){_=-1;return _|0}if(Oe(e,g+1|0)|0){_=-1;return _|0}l=e+340|0;t=r[l>>2]|0;if((m|0)!=(t|0)){y=e+32|0;b=r[y>>2]|0;A=e+28|0;w=r[A>>2]|0;if((b|0)<(w|0)){k=r[e+16>>2]|0;S=e+8|0;v=b;M=r[S>>2]|0;do{M=M-(r[k+(v<<2)>>2]&255)|0;v=v+1|0}while((v|0)<(w|0));r[S>>2]=M}r[A>>2]=b;if((t|0)!=-1){t=r[e+16>>2]|0;M=b+1|0;r[A>>2]=M;r[t+(b<<2)>>2]=1024;r[y>>2]=M}}e:do if(c<<24>>24){M=r[e+28>>2]|0;if((M|0)>=1?(r[(r[e+16>>2]|0)+(M+-1<<2)>>2]|0)!=1024:0){C=a;T=s;E=d;$=0;break}if(!(h<<24>>24)){C=a;T=s;E=0;$=0}else{M=a;y=s;b=0;while(1){t=i[n+(b+27)>>0]|0;A=t&255;S=M+A|0;w=y-A|0;A=t<<24>>24==-1;t=((A^1)&1)+b|0;if(!A){C=S;T=w;E=0;$=t;break e}A=t+1|0;if((A|0)<(g|0)){M=S;y=w;b=A}else{C=S;T=w;E=0;$=A;break}}}}else{C=a;T=s;E=d;$=0}while(0);if(T|0){d=e+4|0;s=r[d>>2]|0;a=e+8|0;h=r[a>>2]|0;do if((s-T|0)>(h|0)){I=r[e>>2]|0;x=h}else{if((s|0)>(2147483647-T|0)){c=r[e>>2]|0;if(c|0)Cr(c);c=r[e+16>>2]|0;if(c|0)Cr(c);c=r[e+20>>2]|0;if(c|0)Cr(c);Or(e|0,0,360)|0;_=-1;return _|0}c=s+T|0;b=(c|0)<2147482623?c+1024|0:c;c=Er(r[e>>2]|0,b)|0;if(c|0){r[d>>2]=b;r[e>>2]=c;I=c;x=r[a>>2]|0;break}c=r[e>>2]|0;if(c|0)Cr(c);c=r[e+16>>2]|0;if(c|0)Cr(c);c=r[e+20>>2]|0;if(c|0)Cr(c);Or(e|0,0,360)|0;_=-1;return _|0}while(0);zr(I+x|0,C|0,T|0)|0;r[a>>2]=(r[a>>2]|0)+T}T=e+16|0;a=e+28|0;C=e+20|0;x=e+32|0;I=E;E=-1;d=$;e:while(1){$=I;s=d;while(1){if((s|0)>=(g|0))break e;h=i[n+(s+27)>>0]|0;c=h&255;D=r[a>>2]|0;b=(r[T>>2]|0)+(D<<2)|0;r[b>>2]=c;y=(r[C>>2]|0)+(D<<3)|0;r[y>>2]=-1;r[y+4>>2]=-1;if($|0)r[b>>2]=c|256;R=D+1|0;r[a>>2]=R;s=s+1|0;if(h<<24>>24!=-1)break;else $=0}r[x>>2]=R;I=0;E=D;d=s}if((E|0)!=-1){d=(r[C>>2]|0)+(E<<3)|0;r[d>>2]=f;r[d+4>>2]=p}if(u<<24>>24?(r[e+328>>2]=1,e=r[a>>2]|0,(e|0)>0):0){a=(r[T>>2]|0)+(e+-1<<2)|0;r[a>>2]=r[a>>2]|512}r[l>>2]=m+1;_=0;return _|0}function je(e){e=e|0;var t=0,n=0;if((r[e+4>>2]|0)<=-1){t=-1;return t|0}n=e+8|0;r[n>>2]=0;r[n+4>>2]=0;r[n+8>>2]=0;r[n+12>>2]=0;r[n+16>>2]=0;t=0;return t|0}function Ve(e){e=e|0;var t=0,n=0;if(!e){t=-1;return t|0}if(!(r[e>>2]|0)){t=-1;return t|0}r[e+8>>2]=0;r[e+12>>2]=0;r[e+28>>2]=0;r[e+32>>2]=0;r[e+36>>2]=0;r[e+324>>2]=0;r[e+328>>2]=0;r[e+332>>2]=0;r[e+340>>2]=-1;n=e+344|0;r[n>>2]=0;r[n+4>>2]=0;r[n+8>>2]=0;r[n+12>>2]=0;t=0;return t|0}function qe(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0;if(!e){n=0;return n|0}i=r[e>>2]|0;if(!i){n=0;return n|0}a=e+36|0;o=r[a>>2]|0;if((r[e+32>>2]|0)<=(o|0)){n=0;return n|0}s=r[e+16>>2]|0;l=r[s+(o<<2)>>2]|0;if(l&1024|0){r[a>>2]=o+1;c=e+344|0;d=c;u=Rr(r[d>>2]|0,r[d+4>>2]|0,1,0)|0;d=c;r[d>>2]=u;r[d+4>>2]=P;n=-1;return n|0}d=(t|0)==0;u=l&255;c=l&512;p=l&256;if((u|0)==255){l=255;f=c;m=o;while(1){h=m+1|0;g=r[s+(h<<2)>>2]|0;_=g&255;v=(g&512|0)==0?f:512;g=_+l|0;if((_|0)==255){l=g;f=v;m=h}else{y=g;b=v;w=h;break}}}else{y=u;b=c;w=o}if(d){d=e+12|0;o=e+344|0;c=o;k=r[d>>2]|0;M=r[c>>2]|0;S=r[c+4>>2]|0;A=d;C=o}else{r[t+12>>2]=b;r[t+8>>2]=p;p=e+12|0;b=r[p>>2]|0;r[t>>2]=i+b;i=e+344|0;o=i;d=r[o>>2]|0;c=r[o+4>>2]|0;o=t+24|0;r[o>>2]=d;r[o+4>>2]=c;o=(r[e+20>>2]|0)+(w<<3)|0;e=r[o+4>>2]|0;u=t+16|0;r[u>>2]=r[o>>2];r[u+4>>2]=e;r[t+4>>2]=y;k=b;M=d;S=c;A=p;C=i}r[A>>2]=k+y;r[a>>2]=w+1;w=Rr(M|0,S|0,1,0)|0;S=C;r[S>>2]=w;r[S+4>>2]=P;n=1;return n|0}function ze(e,t,n,a,s){e=e|0;t=t|0;n=n|0;a=a|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;l=m;m=m+48|0;c=l+40|0;d=l+36|0;u=l+32|0;p=l+28|0;f=l+24|0;h=l+16|0;g=l+12|0;_=l+8|0;v=l+4|0;y=l+44|0;b=l;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=a;r[l+20>>2]=s;r[h>>2]=r[p>>2];i[y>>0]=0;if((r[f>>2]|0)<41){r[c>>2]=0;w=r[c>>2]|0;m=l;return w|0}r[g>>2]=(o[(r[h>>2]|0)+7>>0]<<16)+(o[(r[h>>2]|0)+8>>0]<<8)+(o[(r[h>>2]|0)+9>>0]|0);r[_>>2]=gt((r[h>>2]|0)+22|0)|0;r[v>>2]=gt((r[h>>2]|0)+26|0)|0;if(!(r[_>>2]|0))r[_>>2]=1;i[y>>0]=(o[(r[h>>2]|0)+40>>0]&3)<<3;i[y>>0]=i[y>>0]|(o[(r[h>>2]|0)+41>>0]&224)>>5;r[b>>2]=i[y>>0];y=r[d>>2]|0;h=r[u>>2]|0;f=r[_>>2]|0;_=r[v>>2]|0;v=Vr(1e3,0,_|0,((_|0)<0)<<31>>31|0)|0;_t(y,h,f,((f|0)<0)<<31>>31,v,P)|0;vt(r[d>>2]|0,r[u>>2]|0,r[b>>2]|0)|0;if((r[g>>2]|0)<197120)Pt(r[d>>2]|0,r[u>>2]|0,-1,-1)|0;yt(r[d>>2]|0,r[u>>2]|0,3)|0;r[c>>2]=1;w=r[c>>2]|0;m=l;return w|0}function We(e,t,n,a){e=e|0;t=t|0;n=n|0;a=a|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;s=m;m=m+48|0;l=s+8|0;c=s;d=s+32|0;u=s+28|0;p=s+24|0;f=s+20|0;h=s+36|0;g=s+16|0;_=c;r[_>>2]=e;r[_+4>>2]=t;r[d>>2]=n;r[u>>2]=a;if(!(r[(r[u>>2]|0)+4>>2]|0))v=64;else v=o[r[r[u>>2]>>2]>>0]|0;i[h>>0]=v;r[g>>2]=r[(r[d>>2]|0)+504>>2];e:do if(!((o[h>>0]|0)&128|0)){v=c;u=r[v+4>>2]|0;if((u|0)>-1|(u|0)==-1&(r[v>>2]|0)>>>0>4294967295){r[r[g>>2]>>2]=1;v=c;u=r[v+4>>2]|0;a=l;r[a>>2]=r[v>>2];r[a+4>>2]=u;break}u=(r[d>>2]|0)+488|0;a=r[g>>2]|0;if((r[u>>2]|0)==-1?(r[u+4>>2]|0)==-1:0){r[a>>2]=1;u=l;r[u>>2]=-1;r[u+4>>2]=-1;break}if(!(r[a>>2]|0)){r[r[g>>2]>>2]=1;a=l;r[a>>2]=-1;r[a+4>>2]=-1;break}a=r[d>>2]|0;if((o[h>>0]|0)&64|0){u=a+488|0;v=Rr(r[u>>2]|0,r[u+4>>2]|0,1,0)|0;u=l;r[u>>2]=v;r[u+4>>2]=P;break}else{r[f>>2]=r[a+408>>2];a=(r[d>>2]|0)+488|0;u=Pr(r[a>>2]|0,r[a+4>>2]|0,r[f>>2]|0)|0;r[p>>2]=u;u=(r[d>>2]|0)+488|0;a=(1<<r[f>>2])-1|0;v=Rr(r[u>>2]&a|0,r[u+4>>2]&((a|0)<0)<<31>>31|0,1,0)|0;a=r[p>>2]|0;u=Rr(a|0,((a|0)<0)<<31>>31|0,v|0,P|0)|0;r[p>>2]=u;u=r[p>>2]|0;v=Lr(u|0,((u|0)<0)<<31>>31|0,r[f>>2]|0)|0;u=l;r[u>>2]=v;r[u+4>>2]=P;break}}else{do if(!(r[g>>2]|0)){u=Ar(4)|0;r[(r[d>>2]|0)+504>>2]=u;if(!(r[(r[d>>2]|0)+504>>2]|0)){u=l;r[u>>2]=-1;r[u+4>>2]=-1;break e}else{r[g>>2]=r[(r[d>>2]|0)+504>>2];break}}while(0);r[r[g>>2]>>2]=0;u=l;r[u>>2]=0;r[u+4>>2]=0}while(0);g=l;P=r[g+4>>2]|0;m=s;return r[g>>2]|0}function Ge(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0;o=m;m=m+48|0;s=o+8|0;l=o;c=o+32|0;d=o+20|0;u=o+16|0;p=l;r[p>>2]=e;r[p+4>>2]=t;r[c>>2]=n;r[o+28>>2]=i;r[o+24>>2]=a;a=l;i=Pr(r[a>>2]|0,r[a+4>>2]|0,r[(r[c>>2]|0)+408>>2]|0)|0;r[d>>2]=i;i=l;l=r[d>>2]<<r[(r[c>>2]|0)+408>>2];a=Dr(r[i>>2]|0,r[i+4>>2]|0,l|0,((l|0)<0)<<31>>31|0)|0;r[u>>2]=a;a=r[d>>2]|0;if(!(r[u>>2]|0)){d=(a-60<<r[(r[c>>2]|0)+408>>2])+59|0;l=s;r[l>>2]=d;r[l+4>>2]=((d|0)<0)<<31>>31;f=s;h=f;g=r[h>>2]|0;_=f+4|0;v=_;y=r[v>>2]|0;P=y;m=o;return g|0}else{d=Lr(a|0,((a|0)<0)<<31>>31|0,r[(r[c>>2]|0)+408>>2]|0)|0;c=(r[u>>2]|0)-1|0;u=Rr(d|0,P|0,c|0,((c|0)<0)<<31>>31|0)|0;c=s;r[c>>2]=u;r[c+4>>2]=P;f=s;h=f;g=r[h>>2]|0;_=f+4|0;v=_;y=r[v>>2]|0;P=y;m=o;return g|0}return 0}function Ke(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;o=m;m=m+48|0;s=o+32|0;l=o+28|0;c=o+24|0;d=o+20|0;u=o+16|0;p=o+8|0;f=o;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[o+12>>2]=a;r[p>>2]=r[d>>2];d=f;r[d>>2]=0;r[d+4>>2]=0;if((r[u>>2]|0)<30){r[s>>2]=0;h=r[s>>2]|0;m=o;return h|0}else{u=Ut((r[p>>2]|0)+12|0)|0;p=f;r[p>>2]=u;r[p+4>>2]=((u|0)<0)<<31>>31;u=f;_t(r[l>>2]|0,r[c>>2]|0,r[u>>2]|0,r[u+4>>2]|0,1e3,0)|0;jt(r[l>>2]|0,r[c>>2]|0,2)|0;yt(r[l>>2]|0,r[c>>2]|0,3)|0;r[s>>2]=1;h=r[s>>2]|0;m=o;return h|0}return 0}function Ye(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,D=0;a=m;m=m+96|0;s=a+16|0;l=a+8|0;c=a+80|0;d=a+76|0;u=a+72|0;p=a+68|0;f=a+64|0;h=a+60|0;g=a+56|0;_=a+52|0;v=a+48|0;y=a+44|0;b=a+40|0;w=a+36|0;k=a+32|0;M=a+28|0;S=a+24|0;A=a;C=l;r[C>>2]=e;r[C+4>>2]=t;r[c>>2]=n;r[d>>2]=i;i=r[r[d>>2]>>2]|0;if(!(r[(r[c>>2]|0)+504>>2]|0)){r[h>>2]=1<<((o[i+28>>0]|0)>>4);r[f>>2]=1<<((o[(r[r[d>>2]>>2]|0)+28>>0]|0)&15);n=Ar(44)|0;r[(r[c>>2]|0)+504>>2]=n;if(!(r[(r[c>>2]|0)+504>>2]|0)){n=s;r[n>>2]=-1;r[n+4>>2]=-1;T=s;E=T;$=r[E>>2]|0;I=T+4|0;x=I;D=r[x>>2]|0;P=D;m=a;return $|0}else{r[u>>2]=r[(r[c>>2]|0)+504>>2];r[(r[u>>2]|0)+12>>2]=r[h>>2]>>1;r[(r[u>>2]|0)+8>>2]=((r[h>>2]>>2)*3|0)-(r[f>>2]>>2);r[(r[u>>2]|0)+4>>2]=(r[h>>2]>>2)+(r[f>>2]>>2);r[r[u>>2]>>2]=r[(r[u>>2]|0)+12>>2];r[(r[u>>2]|0)+20>>2]=r[f>>2];r[(r[u>>2]|0)+24>>2]=r[h>>2];r[(r[u>>2]|0)+16>>2]=r[f>>2]>>1;r[(r[u>>2]|0)+28>>2]=0;f=s;r[f>>2]=0;r[f+4>>2]=0;T=s;E=T;$=r[E>>2]|0;I=T+4|0;x=I;D=r[x>>2]|0;P=D;m=a;return $|0}}if(!((o[i>>0]|0)&1)){r[u>>2]=r[(r[c>>2]|0)+504>>2];r[M>>2]=(o[r[r[d>>2]>>2]>>0]|0)>>1&(1<<r[(r[u>>2]|0)+36>>2])-1;r[S>>2]=r[(r[u>>2]|0)+40+(r[M>>2]<<2)>>2];M=l;i=r[M+4>>2]|0;if((i|0)>-1|(i|0)==-1&(r[M>>2]|0)>>>0>4294967295?(M=(r[c>>2]|0)+488|0,(r[M>>2]|0)==-1?(r[M+4>>2]|0)==-1:0):0){r[(r[u>>2]|0)+28>>2]=1;r[(r[u>>2]|0)+32>>2]=r[S>>2];M=l;l=r[M+4>>2]|0;i=s;r[i>>2]=r[M>>2];r[i+4>>2]=l;T=s;E=T;$=r[E>>2]|0;I=T+4|0;x=I;D=r[x>>2]|0;P=D;m=a;return $|0}if(!(r[(r[u>>2]|0)+28>>2]|0)){r[(r[u>>2]|0)+28>>2]=1;r[(r[u>>2]|0)+32>>2]=r[S>>2];l=s;r[l>>2]=-1;r[l+4>>2]=-1;T=s;E=T;$=r[E>>2]|0;I=T+4|0;x=I;D=r[x>>2]|0;P=D;m=a;return $|0}l=(r[c>>2]|0)+488|0;if((r[l>>2]|0)==-1?(r[l+4>>2]|0)==-1:0){r[(r[u>>2]|0)+32>>2]=r[S>>2];l=s;r[l>>2]=-1;r[l+4>>2]=-1;T=s;E=T;$=r[E>>2]|0;I=T+4|0;x=I;D=r[x>>2]|0;P=D;m=a;return $|0}else{l=(r[c>>2]|0)+488|0;i=r[u>>2]|0;M=r[u>>2]|0;f=((r[(r[(r[u>>2]|0)+32>>2]|0?i+24|0:i+20|0)>>2]|0)+(r[(r[S>>2]|0?M+24|0:M+20|0)>>2]|0)|0)/4|0;M=Rr(r[l>>2]|0,r[l+4>>2]|0,f|0,((f|0)<0)<<31>>31|0)|0;f=A;r[f>>2]=M;r[f+4>>2]=P;r[(r[u>>2]|0)+32>>2]=r[S>>2];S=A;A=r[S+4>>2]|0;f=s;r[f>>2]=r[S>>2];r[f+4>>2]=A;T=s;E=T;$=r[E>>2]|0;I=T+4|0;x=I;D=r[x>>2]|0;P=D;m=a;return $|0}}e:do if((o[r[r[d>>2]>>2]>>0]|0|0)==5){r[g>>2]=(r[r[d>>2]>>2]|0)+((r[(r[d>>2]|0)+4>>2]|0)-1);r[v>>2]=0;r[_>>2]=8;while(1){A=(r[_>>2]|0)+-1|0;r[_>>2]=A;if(!((1<<A&(o[r[g>>2]>>0]|0)|0)!=0^1))break;if(r[_>>2]|0)continue;r[_>>2]=8;r[g>>2]=(r[g>>2]|0)+-1}while(1){r[_>>2]=((r[_>>2]|0)+7|0)%8|0;if((r[_>>2]|0)==7)r[g>>2]=(r[g>>2]|0)+-1;if((o[(r[g>>2]|0)+-5>>0]|0)&~((1<<(r[_>>2]|0)+1)-1)|0)break;if(o[(r[g>>2]|0)+-4>>0]|0|0)break;if(o[(r[g>>2]|0)+-3>>0]|0|0)break;if(o[(r[g>>2]|0)+-2>>0]|0|0)break;if((o[(r[g>>2]|0)+-1>>0]|0)&(1<<(r[_>>2]|0)+1)-1|0)break;r[v>>2]=(r[v>>2]|0)+1;r[g>>2]=(r[g>>2]|0)+-5}r[p>>2]=0;while(1){if((r[p>>2]|0)>=2)break;A=o[r[g>>2]>>0]|0;f=r[_>>2]|0;if((r[_>>2]|0)>4)r[y>>2]=A>>f-5&63;else{r[y>>2]=A&(1<<f+1)-1;r[y>>2]=r[y>>2]<<5-(r[_>>2]|0);r[y>>2]=r[y>>2]|((o[(r[g>>2]|0)+-1>>0]|0)&~((1<<(r[_>>2]|0)+3)-1))>>(r[_>>2]|0)+3}r[y>>2]=(r[y>>2]|0)+1;if((r[y>>2]|0)==(r[v>>2]|0))break;r[_>>2]=((r[_>>2]|0)+1|0)%8|0;if(!(r[_>>2]|0))r[g>>2]=(r[g>>2]|0)+1;r[g>>2]=(r[g>>2]|0)+5;r[v>>2]=(r[v>>2]|0)-1;r[p>>2]=(r[p>>2]|0)+1}r[k>>2]=44+((r[v>>2]|0)-1<<2);if((r[k>>2]|0)>>>0<44){f=s;r[f>>2]=-1;r[f+4>>2]=-1;T=s;E=T;$=r[E>>2]|0;I=T+4|0;x=I;D=r[x>>2]|0;P=D;m=a;return $|0}r[u>>2]=Er(r[(r[c>>2]|0)+504>>2]|0,r[k>>2]|0)|0;if(!(r[u>>2]|0)){f=s;r[f>>2]=-1;r[f+4>>2]=-1;T=s;E=T;$=r[E>>2]|0;I=T+4|0;x=I;D=r[x>>2]|0;P=D;m=a;return $|0}r[(r[c>>2]|0)+504>>2]=r[u>>2];r[w>>2]=-1;do{f=(r[w>>2]|0)+1|0;r[w>>2]=f}while((1<<f|0)<(r[v>>2]|0));r[(r[u>>2]|0)+36>>2]=r[w>>2];r[b>>2]=(r[u>>2]|0)+40;r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[v>>2]|0))break e;r[_>>2]=((r[_>>2]|0)+1|0)%8|0;if(!(r[_>>2]|0))r[g>>2]=(r[g>>2]|0)+1;f=(o[r[g>>2]>>0]|0)>>r[_>>2]&1;A=r[b>>2]|0;r[b>>2]=A+4;r[A>>2]=f;r[g>>2]=(r[g>>2]|0)+5;r[w>>2]=(r[w>>2]|0)+1}}while(0);w=s;r[w>>2]=0;r[w+4>>2]=0;T=s;E=T;$=r[E>>2]|0;I=T+4|0;x=I;D=r[x>>2]|0;P=D;m=a;return $|0}function Xe(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0;s=m;m=m+64|0;l=s+16|0;c=s+8|0;d=s+48|0;u=s+44|0;p=s+40|0;f=s+36|0;h=s+32|0;g=s+28|0;_=s+24|0;v=s;y=c;r[y>>2]=e;r[y+4>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=a;r[f>>2]=r[(r[d>>2]|0)+504>>2];r[h>>2]=(o[r[r[u>>2]>>2]>>0]|0)>>1&(1<<r[(r[f>>2]|0)+36>>2])-1;u=r[f>>2]|0;r[g>>2]=r[(r[(r[f>>2]|0)+40+(r[h>>2]<<2)>>2]|0?u+24|0:u+20|0)>>2];r[h>>2]=(o[r[r[p>>2]>>2]>>0]|0)>>1&(1<<r[(r[f>>2]|0)+36>>2])-1;p=r[f>>2]|0;r[_>>2]=r[(r[(r[f>>2]|0)+40+(r[h>>2]<<2)>>2]|0?p+24|0:p+20|0)>>2];p=c;c=((r[g>>2]|0)+(r[_>>2]|0)|0)/4|0;_=Dr(r[p>>2]|0,r[p+4>>2]|0,c|0,((c|0)<0)<<31>>31|0)|0;c=v;r[c>>2]=_;r[c+4>>2]=P;if((r[v+4>>2]|0)<0){c=l;r[c>>2]=0;r[c+4>>2]=0;b=l;w=b;k=r[w>>2]|0;M=b+4|0;S=M;A=r[S>>2]|0;P=A;m=s;return k|0}else{c=v;v=r[c+4>>2]|0;_=l;r[_>>2]=r[c>>2];r[_+4>>2]=v;b=l;w=b;k=r[w>>2]|0;M=b+4|0;S=M;A=r[S>>2]|0;P=A;m=s;return k|0}return 0}function Je(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;o=m;m=m+48|0;s=o+36|0;l=o+32|0;c=o+28|0;d=o+24|0;u=o+20|0;p=o+12|0;f=o;h=o+8|0;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[o+16>>2]=a;r[p>>2]=r[d>>2];d=f;r[d>>2]=0;r[d+4>>2]=0;if((r[u>>2]|0)<68){r[s>>2]=0;g=r[s>>2]|0;m=o;return g|0}else{u=Ut((r[p>>2]|0)+36|0)|0;d=f;r[d>>2]=u;r[d+4>>2]=((u|0)<0)<<31>>31;u=f;_t(r[l>>2]|0,r[c>>2]|0,r[u>>2]|0,r[u+4>>2]|0,1e3,0)|0;jt(r[l>>2]|0,r[c>>2]|0,3)|0;u=Ut((r[p>>2]|0)+68|0)|0;p=Rr(u|0,((u|0)<0)<<31>>31|0,2,0)|0;r[h>>2]=p;yt(r[l>>2]|0,r[c>>2]|0,r[h>>2]|0)|0;r[s>>2]=1;g=r[s>>2]|0;m=o;return g|0}return 0}function Ze(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0;a=m;m=m+32|0;o=a+8|0;s=a;l=a+24|0;c=a+20|0;d=a+16|0;u=s;r[u>>2]=e;r[u+4>>2]=t;r[l>>2]=n;r[c>>2]=i;r[d>>2]=r[(r[l>>2]|0)+504>>2];do if(!(r[(r[l>>2]|0)+504>>2]|0)){i=Ar(12)|0;r[(r[l>>2]|0)+504>>2]=i;if(!(r[(r[l>>2]|0)+504>>2]|0)){i=o;r[i>>2]=-1;r[i+4>>2]=-1;break}else{r[d>>2]=r[(r[l>>2]|0)+504>>2];r[(r[d>>2]|0)+8>>2]=0;i=G(r[(r[r[c>>2]>>2]|0)+64>>2]|0,r[(r[r[c>>2]>>2]|0)+56>>2]|0)|0;r[(r[d>>2]|0)+4>>2]=i;r[r[d>>2]>>2]=1;i=o;r[i>>2]=0;r[i+4>>2]=0;break}}else{i=r[d>>2]|0;if((r[r[d>>2]>>2]|0)<2)r[i>>2]=(r[i>>2]|0)+1;else r[i+8>>2]=1;i=s;n=r[i+4>>2]|0;if((n|0)>-1|(n|0)==-1&(r[i>>2]|0)>>>0>4294967295){i=s;n=r[i+4>>2]|0;t=o;r[t>>2]=r[i>>2];r[t+4>>2]=n;break}if(!(r[(r[d>>2]|0)+8>>2]|0)){n=o;r[n>>2]=0;r[n+4>>2]=0;break}n=(r[l>>2]|0)+488|0;t=r[n+4>>2]|0;if((t|0)>0|(t|0)==0&(r[n>>2]|0)>>>0>0){n=(r[l>>2]|0)+488|0;t=r[(r[d>>2]|0)+4>>2]|0;i=Rr(r[n>>2]|0,r[n+4>>2]|0,t|0,((t|0)<0)<<31>>31|0)|0;t=o;r[t>>2]=i;r[t+4>>2]=P;break}else{t=o;r[t>>2]=-1;r[t+4>>2]=-1;break}}while(0);d=o;P=r[d+4>>2]|0;m=a;return r[d>>2]|0}function Qe(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;o=m;m=m+48|0;s=o+32|0;l=o+28|0;c=o+24|0;d=o+20|0;u=o+16|0;p=o+8|0;f=o;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[o+12>>2]=a;r[p>>2]=r[d>>2];if((r[u>>2]|0)<28){r[s>>2]=0;h=r[s>>2]|0;m=o;return h|0}else{u=gt((r[p>>2]|0)+16|0)|0;p=f;r[p>>2]=u;r[p+4>>2]=((u|0)<0)<<31>>31;u=f;_t(r[l>>2]|0,r[c>>2]|0,r[u>>2]|0,r[u+4>>2]|0,1e3,0)|0;yt(r[l>>2]|0,r[c>>2]|0,3)|0;r[s>>2]=1;h=r[s>>2]|0;m=o;return h|0}return 0}function et(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;s=m;m=m+48|0;l=s+44|0;c=s+40|0;d=s+36|0;u=s+32|0;p=s+28|0;f=s+20|0;h=s+8|0;g=s;_=s+16|0;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[s+24>>2]=a;r[f>>2]=r[u>>2];u=h;r[u>>2]=0;r[u+4>>2]=0;u=g;r[u>>2]=0;r[u+4>>2]=0;if((r[p>>2]|0)<28){r[l>>2]=0;v=r[l>>2]|0;m=s;return v|0}u=Bt((r[f>>2]|0)+12|0)|0;a=h;r[a>>2]=u;r[a+4>>2]=P;a=Bt((r[f>>2]|0)+20|0)|0;u=g;r[u>>2]=a;r[u+4>>2]=P;if((r[p>>2]|0)>28)r[_>>2]=o[(r[f>>2]|0)+28>>0];else r[_>>2]=0;f=r[c>>2]|0;p=r[d>>2]|0;u=h;h=r[u>>2]|0;a=r[u+4>>2]|0;u=g;g=Vr(1e3,0,r[u>>2]|0,r[u+4>>2]|0)|0;_t(f,p,h,a,g,P)|0;vt(r[c>>2]|0,r[d>>2]|0,r[_>>2]|0)|0;yt(r[c>>2]|0,r[d>>2]|0,3)|0;r[l>>2]=1;v=r[l>>2]|0;m=s;return v|0}function tt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0;o=m;m=m+32|0;s=o+16|0;l=o+12|0;r[s>>2]=e;r[l>>2]=t;r[o+8>>2]=n;r[o+4>>2]=i;r[o>>2]=a;_t(r[s>>2]|0,r[l>>2]|0,0,0,1,0)|0;m=o;return 1}function nt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0;o=m;m=m+32|0;s=o+16|0;l=o+12|0;r[s>>2]=e;r[l>>2]=t;r[o+8>>2]=n;r[o+4>>2]=i;r[o>>2]=a;_t(r[s>>2]|0,r[l>>2]|0,0,0,1,0)|0;yt(r[s>>2]|0,r[l>>2]|0,1)|0;m=o;return 1}function it(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var s=0,l=0,c=0,d=0,u=0,p=0;s=m;m=m+32|0;l=s+28|0;c=s+24|0;d=s+20|0;u=s+8|0;p=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[s+16>>2]=i;r[s+12>>2]=a;r[u>>2]=r[d>>2];d=p;r[d>>2]=0;r[d+4>>2]=0;d=(o[(r[u>>2]|0)+14>>0]|0)<<12;a=(o[(r[u>>2]|0)+15>>0]|0)<<4;i=(o[(r[u>>2]|0)+16>>0]|0)>>4&15;u=p;r[u>>2]=d|a|i;r[u+4>>2]=((d|0)<0)<<31>>31|((a|0)<0)<<31>>31|((i|0)<0)<<31>>31;i=p;_t(r[l>>2]|0,r[c>>2]|0,r[i>>2]|0,r[i+4>>2]|0,1e3,0)|0;yt(r[l>>2]|0,r[c>>2]|0,3)|0;m=s;return 1}function at(e,t,n,a){e=e|0;t=t|0;n=n|0;a=a|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;s=m;m=m+48|0;l=s+8|0;c=s;d=s+28|0;u=s+24|0;p=s+20|0;f=s+32|0;h=s+16|0;g=c;r[g>>2]=e;r[g+4>>2]=t;r[d>>2]=n;r[u>>2]=a;do if(r[(r[d>>2]|0)+504>>2]|0){r[p>>2]=r[(r[d>>2]|0)+504>>2];if((o[r[r[u>>2]>>2]>>0]|0|0)==255)r[(r[p>>2]|0)+8>>2]=1;a=c;if((((r[a>>2]|0)==-1?(r[a+4>>2]|0)==-1:0)?(o[r[r[u>>2]>>2]>>0]|0|0)==255:0)?(r[(r[u>>2]|0)+4>>2]|0)>2:0){i[f>>0]=((o[(r[r[u>>2]>>2]|0)+2>>0]|0)&240)>>4;do switch(o[f>>0]|0|0){case 0:{r[h>>2]=-1;break}case 1:{r[h>>2]=192;break}case 2:{r[h>>2]=576;break}case 3:{r[h>>2]=1152;break}case 4:{r[h>>2]=2304;break}case 5:{r[h>>2]=4608;break}case 6:{r[h>>2]=-1;break}case 7:{r[h>>2]=-1;break}case 8:{r[h>>2]=256;break}case 9:{r[h>>2]=512;break}case 10:{r[h>>2]=1024;break}case 11:{r[h>>2]=2048;break}case 12:{r[h>>2]=4096;break}case 13:{r[h>>2]=8192;break}case 14:{r[h>>2]=16384;break}case 15:{r[h>>2]=32768;break}default:r[h>>2]=-1}while(0);if((r[h>>2]|0)==-1)break;a=r[p>>2]|0;n=r[h>>2]|0;t=Rr(r[a>>2]|0,r[a+4>>2]|0,n|0,((n|0)<0)<<31>>31|0)|0;n=c;r[n>>2]=t;r[n+4>>2]=P;break}n=c;if(((r[n>>2]|0)==-1?(r[n+4>>2]|0)==-1:0)?(r[(r[p>>2]|0)+8>>2]|0)==0:0){n=c;r[n>>2]=0;r[n+4>>2]=0}}else{n=Ar(16)|0;r[(r[d>>2]|0)+504>>2]=n;if(r[(r[d>>2]|0)+504>>2]|0){r[p>>2]=r[(r[d>>2]|0)+504>>2];n=r[p>>2]|0;r[n>>2]=0;r[n+4>>2]=0;r[(r[p>>2]|0)+8>>2]=0;break}n=l;r[n>>2]=-1;r[n+4>>2]=-1;_=l;v=_;y=r[v>>2]|0;b=_+4|0;w=b;k=r[w>>2]|0;P=k;m=s;return y|0}while(0);d=c;h=r[d+4>>2]|0;f=r[p>>2]|0;r[f>>2]=r[d>>2];r[f+4>>2]=h;h=c;c=r[h+4>>2]|0;f=l;r[f>>2]=r[h>>2];r[f+4>>2]=c;_=l;v=_;y=r[v>>2]|0;b=_+4|0;w=b;k=r[w>>2]|0;P=k;m=s;return y|0}function rt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0;s=m;m=m+48|0;l=s+36|0;c=s+32|0;d=s+28|0;u=s+24|0;p=s+20|0;f=s+12|0;h=s;g=s+8|0;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[s+16>>2]=a;r[f>>2]=r[u>>2];u=h;r[u>>2]=0;r[u+4>>2]=0;if((r[p>>2]|0)<51){r[l>>2]=0;_=r[l>>2]|0;m=s;return _|0}else{p=(o[(r[f>>2]|0)+27>>0]|0)<<12;u=(o[(r[f>>2]|0)+28>>0]|0)<<4;a=(o[(r[f>>2]|0)+29>>0]|0)>>4&15;i=h;r[i>>2]=p|u|a;r[i+4>>2]=((p|0)<0)<<31>>31|((u|0)<0)<<31>>31|((a|0)<0)<<31>>31;a=h;_t(r[c>>2]|0,r[d>>2]|0,r[a>>2]|0,r[a+4>>2]|0,1e3,0)|0;r[g>>2]=(Ht((r[f>>2]|0)+7|0)|0)&65535;yt(r[c>>2]|0,r[d>>2]|0,r[g>>2]|0)|0;r[l>>2]=1;_=r[l>>2]|0;m=s;return _|0}return 0}function ot(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;o=m;m=m+48|0;s=o+40|0;l=o+36|0;c=o+32|0;d=o+28|0;u=o+24|0;p=o+16|0;f=o+8|0;h=o;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[o+20>>2]=a;r[p>>2]=r[d>>2];d=f;r[d>>2]=0;r[d+4>>2]=0;d=h;r[d>>2]=0;r[d+4>>2]=0;if((r[u>>2]|0)<28){r[s>>2]=0;g=r[s>>2]|0;m=o;return g|0}else{u=Bt((r[p>>2]|0)+8|0)|0;d=f;r[d>>2]=u;r[d+4>>2]=P;d=Bt((r[p>>2]|0)+16|0)|0;p=h;r[p>>2]=d;r[p+4>>2]=P;p=r[l>>2]|0;l=r[c>>2]|0;c=f;f=r[c>>2]|0;d=r[c+4>>2]|0;c=h;h=Vr(1e3,0,r[c>>2]|0,r[c+4>>2]|0)|0;_t(p,l,f,d,h,P)|0;r[s>>2]=1;g=r[s>>2]|0;m=o;return g|0}return 0}function st(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;o=m;m=m+48|0;s=o+36|0;l=o+32|0;c=o+28|0;d=o+24|0;u=o+20|0;p=o+12|0;f=o;h=o+8|0;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[o+16>>2]=a;r[p>>2]=r[d>>2];d=f;r[d>>2]=0;r[d+4>>2]=0;if((r[u>>2]|0)<56){r[s>>2]=0;g=r[s>>2]|0;m=o;return g|0}else{u=Ut((r[p>>2]|0)+40|0)|0;d=f;r[d>>2]=u;r[d+4>>2]=((u|0)<0)<<31>>31;u=f;_t(r[l>>2]|0,r[c>>2]|0,r[u>>2]|0,r[u+4>>2]|0,1e3,0)|0;u=Ut((r[p>>2]|0)+52|0)|0;p=Rr(u|0,((u|0)<0)<<31>>31|0,2,0)|0;r[h>>2]=p;yt(r[l>>2]|0,r[c>>2]|0,r[h>>2]|0)|0;r[s>>2]=1;g=r[s>>2]|0;m=o;return g|0}return 0}function lt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0;a=m;m=m+32|0;o=a+8|0;s=a;l=a+24|0;c=a+16|0;d=s;r[d>>2]=e;r[d+4>>2]=t;r[l>>2]=n;r[a+20>>2]=i;r[c>>2]=r[(r[l>>2]|0)+504>>2];do if(!(r[(r[l>>2]|0)+504>>2]|0)){i=Ar(12)|0;r[(r[l>>2]|0)+504>>2]=i;if(!(r[(r[l>>2]|0)+504>>2]|0)){i=o;r[i>>2]=-1;r[i+4>>2]=-1;break}else{r[c>>2]=r[(r[l>>2]|0)+504>>2];r[(r[c>>2]|0)+8>>2]=0;r[(r[c>>2]|0)+4>>2]=256;r[r[c>>2]>>2]=1;i=o;r[i>>2]=0;r[i+4>>2]=0;break}}else{i=r[c>>2]|0;if((r[r[c>>2]>>2]|0)<2)r[i>>2]=(r[i>>2]|0)+1;else r[i+8>>2]=1;i=s;n=r[i+4>>2]|0;if((n|0)>-1|(n|0)==-1&(r[i>>2]|0)>>>0>4294967295){i=s;n=r[i+4>>2]|0;t=o;r[t>>2]=r[i>>2];r[t+4>>2]=n;break}if(!(r[(r[c>>2]|0)+8>>2]|0)){n=o;r[n>>2]=0;r[n+4>>2]=0;break}n=(r[l>>2]|0)+488|0;t=r[n+4>>2]|0;if((t|0)>0|(t|0)==0&(r[n>>2]|0)>>>0>0){n=(r[l>>2]|0)+488|0;t=r[(r[c>>2]|0)+4>>2]|0;i=Rr(r[n>>2]|0,r[n+4>>2]|0,t|0,((t|0)<0)<<31>>31|0)|0;t=o;r[t>>2]=i;r[t+4>>2]=P;break}else{t=o;r[t>>2]=-1;r[t+4>>2]=-1;break}}while(0);c=o;P=r[c+4>>2]|0;m=a;return r[c>>2]|0}function ct(e,t,n,a,s){e=e|0;t=t|0;n=n|0;a=a|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;l=m;m=m+48|0;c=l+36|0;d=l+32|0;u=l+28|0;p=l+24|0;f=l+20|0;h=l+12|0;g=l+8|0;_=l+4|0;v=l+40|0;y=l;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=a;r[l+16>>2]=s;r[h>>2]=r[p>>2];i[v>>0]=0;if((r[f>>2]|0)<64){r[c>>2]=0;b=r[c>>2]|0;m=l;return b|0}else{r[g>>2]=Ut((r[h>>2]|0)+24|0)|0;r[_>>2]=Ut((r[h>>2]|0)+28|0)|0;i[v>>0]=i[(r[h>>2]|0)+15>>0]|0;r[y>>2]=o[(r[h>>2]|0)+11>>0];h=r[d>>2]|0;f=r[u>>2]|0;p=r[g>>2]|0;g=r[_>>2]|0;_=Vr(1e3,0,g|0,((g|0)<0)<<31>>31|0)|0;_t(h,f,p,((p|0)<0)<<31>>31,_,P)|0;vt(r[d>>2]|0,r[u>>2]|0,o[v>>0]|0)|0;yt(r[d>>2]|0,r[u>>2]|0,r[y>>2]|0)|0;r[c>>2]=1;b=r[c>>2]|0;m=l;return b|0}return 0}function dt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;o=m;m=m+32|0;s=o+28|0;l=o+24|0;c=o+20|0;d=o+16|0;u=o+12|0;p=o+4|0;f=o;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[o+8>>2]=a;r[p>>2]=22;r[f>>2]=Ar(48)|0;if(!(r[f>>2]|0)){r[s>>2]=-1;h=r[s>>2]|0;m=o;return h|0}if((Dt(r[f>>2]|0,r[d>>2]|0,r[u>>2]|0)|0)==-1){Cr(r[f>>2]|0);r[s>>2]=-1;h=r[s>>2]|0;m=o;return h|0}else{u=r[l>>2]|0;d=r[c>>2]|0;a=Vr(2,0,r[(r[f>>2]|0)+32>>2]|0,0)|0;i=P;n=Vr(1e3,0,r[(r[f>>2]|0)+36>>2]|0,0)|0;_t(u,d,a,i,n,P)|0;vt(r[l>>2]|0,r[c>>2]|0,r[p>>2]|0)|0;yt(r[l>>2]|0,r[c>>2]|0,0)|0;Cr(r[f>>2]|0);r[s>>2]=1;h=r[s>>2]|0;m=o;return h|0}return 0}function ut(e,t,n,a,s){e=e|0;t=t|0;n=n|0;a=a|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;l=m;m=m+32|0;c=l+24|0;d=l+20|0;u=l+16|0;p=l+12|0;f=l+8|0;h=l+28|0;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=a;r[l+4>>2]=s;r[l>>2]=r[p>>2];if((r[f>>2]|0)<19){r[c>>2]=0;g=r[c>>2]|0;m=l;return g|0}i[h>>0]=i[(r[p>>2]|0)+9>>0]|0;if((o[h>>0]|0|0)<1){r[c>>2]=0;g=r[c>>2]|0;m=l;return g|0}else{_t(r[d>>2]|0,r[u>>2]|0,48e3,0,1e3,0)|0;vt(r[d>>2]|0,r[u>>2]|0,0)|0;h=r[d>>2]|0;f=r[u>>2]|0;Pt(h,f,(xt((r[p>>2]|0)+10|0)|0)&65535,0)|0;yt(r[d>>2]|0,r[u>>2]|0,2)|0;r[c>>2]=1;g=r[c>>2]|0;m=l;return g|0}return 0}function pt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;a=m;m=m+48|0;o=a+24|0;s=a+16|0;l=a+40|0;c=a+36|0;d=a+32|0;u=a+8|0;p=a;f=s;r[f>>2]=e;r[f+4>>2]=t;r[l>>2]=n;r[c>>2]=i;r[d>>2]=r[(r[l>>2]|0)+504>>2];if(!(r[(r[l>>2]|0)+504>>2]|0)){i=Ar(16)|0;r[(r[l>>2]|0)+504>>2]=i;if(!(r[(r[l>>2]|0)+504>>2]|0)){i=o;r[i>>2]=-1;r[i+4>>2]=-1;h=o;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=a;return _|0}else{r[d>>2]=r[(r[l>>2]|0)+504>>2];r[(r[d>>2]|0)+4>>2]=0;r[r[d>>2]>>2]=1;i=(r[d>>2]|0)+8|0;r[i>>2]=0;r[i+4>>2]=0;i=o;r[i>>2]=0;r[i+4>>2]=0;h=o;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=a;return _|0}}i=r[d>>2]|0;if((r[r[d>>2]>>2]|0)<2)r[i>>2]=(r[i>>2]|0)+1;else r[i+4>>2]=1;i=s;n=r[i+4>>2]|0;if((n|0)>-1|(n|0)==-1&(r[i>>2]|0)>>>0>4294967295){i=s;s=r[i+4>>2]|0;n=o;r[n>>2]=r[i>>2];r[n+4>>2]=s;h=o;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=a;return _|0}if(!(r[(r[d>>2]|0)+4>>2]|0)){s=o;r[s>>2]=0;r[s+4>>2]=0;h=o;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=a;return _|0}s=It(r[c>>2]|0)|0;c=u;r[c>>2]=s;r[c+4>>2]=P;c=(r[l>>2]|0)+488|0;s=r[c+4>>2]|0;if(!((s|0)>0|(s|0)==0&(r[c>>2]|0)>>>0>0)){c=u;s=(r[d>>2]|0)+8|0;d=s;n=Rr(r[d>>2]|0,r[d+4>>2]|0,r[c>>2]|0,r[c+4>>2]|0)|0;c=s;r[c>>2]=n;r[c+4>>2]=P;c=o;r[c>>2]=-1;r[c+4>>2]=-1;h=o;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=a;return _|0}c=(r[l>>2]|0)+488|0;n=u;u=Rr(r[c>>2]|0,r[c+4>>2]|0,r[n>>2]|0,r[n+4>>2]|0)|0;n=p;r[n>>2]=u;r[n+4>>2]=P;n=p;u=r[n+4>>2]|0;c=(r[l>>2]|0)+496|0;s=r[c+4>>2]|0;if((u|0)>(s|0)|((u|0)==(s|0)?(r[n>>2]|0)>>>0>(r[c>>2]|0)>>>0:0)?(c=(r[l>>2]|0)+496|0,n=r[c+4>>2]|0,s=(r[l>>2]|0)+488|0,u=r[s+4>>2]|0,(n|0)>(u|0)|((n|0)==(u|0)?(r[c>>2]|0)>>>0>=(r[s>>2]|0)>>>0:0)):0){s=(r[l>>2]|0)+496|0;w=r[s>>2]|0;k=r[s+4>>2]|0}else{s=p;w=r[s>>2]|0;k=r[s+4>>2]|0}s=o;r[s>>2]=w;r[s+4>>2]=k;h=o;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=a;return _|0}function ft(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;o=m;m=m+32|0;s=o+8|0;l=o+28|0;c=o+24|0;d=o+20|0;u=o+16|0;p=o;f=s;r[f>>2]=e;r[f+4>>2]=t;r[l>>2]=n;r[c>>2]=i;r[d>>2]=a;r[u>>2]=r[(r[l>>2]|0)+504>>2];l=s;a=r[l+4>>2]|0;i=(r[u>>2]|0)+8|0;n=r[i+4>>2]|0;t=s;s=r[t>>2]|0;f=r[t+4>>2]|0;if(!((a|0)>(n|0)|((a|0)==(n|0)?(r[l>>2]|0)>>>0>=(r[i>>2]|0)>>>0:0))){i=p;r[i>>2]=s;r[i+4>>2]=f;i=It(r[c>>2]|0)|0;c=(r[u>>2]|0)+8|0;l=c;n=Dr(r[l>>2]|0,r[l+4>>2]|0,i|0,P|0)|0;i=c;r[i>>2]=n;r[i+4>>2]=P;h=p;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=o;return _|0}i=It(r[d>>2]|0)|0;d=Dr(s|0,f|0,i|0,P|0)|0;i=p;r[i>>2]=d;r[i+4>>2]=P;i=p;d=r[i+4>>2]|0;f=(r[u>>2]|0)+8|0;s=r[f+4>>2]|0;if((d|0)<(s|0)|((d|0)==(s|0)?(r[i>>2]|0)>>>0<(r[f>>2]|0)>>>0:0)){f=(r[u>>2]|0)+8|0;i=r[f+4>>2]|0;s=p;r[s>>2]=r[f>>2];r[s+4>>2]=i}i=(r[u>>2]|0)+8|0;r[i>>2]=0;r[i+4>>2]=0;h=p;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=o;return _|0}function mt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0;s=m;m=m+48|0;l=s+32|0;c=s+28|0;d=s+24|0;u=s+20|0;p=s+16|0;f=s+8|0;h=s+4|0;g=s;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[s+12>>2]=a;r[f>>2]=r[u>>2];if((r[p>>2]|0)<26){r[l>>2]=0;_=r[l>>2]|0;m=s;return _|0}if((o[r[u>>2]>>0]|0|0)!=79){r[l>>2]=0;_=r[l>>2]|0;m=s;return _|0}if(Ta((r[u>>2]|0)+1|0,2723,4)|0){r[l>>2]=0;_=r[l>>2]|0;m=s;return _|0}if((o[(r[u>>2]|0)+5>>0]|0|0)!=1){r[l>>2]=0;_=r[l>>2]|0;m=s;return _|0}if((o[(r[u>>2]|0)+6>>0]|0|0)!=1){r[l>>2]=0;_=r[l>>2]|0;m=s;return _|0}else{r[h>>2]=gt((r[f>>2]|0)+18|0)|0;r[g>>2]=gt((r[f>>2]|0)+22|0)|0;f=r[c>>2]|0;u=r[d>>2]|0;p=r[h>>2]|0;h=r[g>>2]|0;g=Vr(1e3,0,h|0,((h|0)<0)<<31>>31|0)|0;_t(f,u,p,((p|0)<0)<<31>>31,g,P)|0;vt(r[c>>2]|0,r[d>>2]|0,32)|0;yt(r[c>>2]|0,r[d>>2]|0,1)|0;r[l>>2]=1;_=r[l>>2]|0;m=s;return _|0}return 0}function ht(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0;a=m;m=m+80|0;s=a+40|0;l=a+32|0;c=a+68|0;d=a+64|0;u=a+60|0;p=a+56|0;f=a+52|0;h=a+48|0;g=a+24|0;_=a+16|0;v=a+8|0;y=a;b=l;r[b>>2]=e;r[b+4>>2]=t;r[c>>2]=n;r[d>>2]=i;r[h>>2]=r[(r[c>>2]|0)+504>>2];if(!(r[(r[c>>2]|0)+504>>2]|0)){i=Ar(8)|0;r[(r[c>>2]|0)+504>>2]=i;if(!(r[(r[c>>2]|0)+504>>2]|0)){i=s;r[i>>2]=-1;r[i+4>>2]=-1;w=s;k=w;M=r[k>>2]|0;S=w+4|0;A=S;C=r[A>>2]|0;P=C;m=a;return M|0}else{r[h>>2]=r[(r[c>>2]|0)+504>>2];r[(r[h>>2]|0)+4>>2]=0;r[r[h>>2]>>2]=1;i=s;r[i>>2]=0;r[i+4>>2]=0;w=s;k=w;M=r[k>>2]|0;S=w+4|0;A=S;C=r[A>>2]|0;P=C;m=a;return M|0}}if(!(r[(r[d>>2]|0)+4>>2]|0))T=1;else T=(o[r[r[d>>2]>>2]>>0]|0|0)==79;r[u>>2]=T&1;if(!(r[u>>2]|0)?(r[(r[d>>2]|0)+4>>2]|0)>0:0)E=((o[r[r[d>>2]>>2]>>0]|0)&1|0)==0;else E=0;r[p>>2]=E&1;if(!(r[u>>2]|0)?(r[(r[d>>2]|0)+4>>2]|0)>0:0)$=((o[r[r[d>>2]>>2]>>0]|0)>>4&1|0)!=0;else $=0;r[f>>2]=$&1;$=r[h>>2]|0;if(r[u>>2]|0)r[$>>2]=(r[$>>2]|0)+1;else r[$+4>>2]=1;$=l;d=r[$+4>>2]|0;if((d|0)>-1|(d|0)==-1&(r[$>>2]|0)>>>0>4294967295){$=l;l=r[$+4>>2]|0;d=s;r[d>>2]=r[$>>2];r[d+4>>2]=l;w=s;k=w;M=r[k>>2]|0;S=w+4|0;A=S;C=r[A>>2]|0;P=C;m=a;return M|0}if(!(r[(r[h>>2]|0)+4>>2]|0)){h=s;r[h>>2]=0;r[h+4>>2]=0;w=s;k=w;M=r[k>>2]|0;S=w+4|0;A=S;C=r[A>>2]|0;P=C;m=a;return M|0}h=(r[c>>2]|0)+488|0;l=r[h+4>>2]|0;if(!((l|0)>0|(l|0)==0&(r[h>>2]|0)>>>0>0)){h=s;r[h>>2]=-1;r[h+4>>2]=-1;w=s;k=w;M=r[k>>2]|0;S=w+4|0;A=S;C=r[A>>2]|0;P=C;m=a;return M|0}h=(r[c>>2]|0)+488|0;l=r[h>>2]|0;d=r[h+4>>2]|0;if(r[u>>2]|0){u=s;r[u>>2]=l;r[u+4>>2]=d;w=s;k=w;M=r[k>>2]|0;S=w+4|0;A=S;C=r[A>>2]|0;P=C;m=a;return M|0}u=Pr(l|0,d|0,32)|0;d=g;r[d>>2]=u;r[d+4>>2]=P;d=(r[c>>2]|0)+488|0;u=Pr(r[d>>2]|0,r[d+4>>2]|0,30)|0;d=_;r[d>>2]=u&3;r[d+4>>2]=0;d=(r[c>>2]|0)+488|0;c=Pr(r[d>>2]|0,r[d+4>>2]|0,3)|0;d=v;r[d>>2]=c&134217727;r[d+4>>2]=0;if(r[p>>2]|0){p=v;r[p>>2]=0;r[p+4>>2]=0}else{p=v;d=Rr(r[p>>2]|0,r[p+4>>2]|0,1,0)|0;p=v;r[p>>2]=d;r[p+4>>2]=P}do if(!(r[f>>2]|0)){p=_;if((r[p>>2]|0)==3&(r[p+4>>2]|0)==0){p=_;r[p>>2]=0;r[p+4>>2]=0;break}else{p=_;d=Rr(r[p>>2]|0,r[p+4>>2]|0,1,0)|0;p=_;r[p>>2]=d;r[p+4>>2]=P;break}}else{p=g;d=Rr(r[p>>2]|0,r[p+4>>2]|0,1,0)|0;p=g;r[p>>2]=d;r[p+4>>2]=P;p=_;r[p>>2]=3;r[p+4>>2]=0}while(0);f=r[g>>2]|0;g=_;_=Lr(r[g>>2]|0,r[g+4>>2]|0,30)|0;g=f|P;f=v;v=Lr(r[f>>2]|0,r[f+4>>2]|0,3)|0;f=y;r[f>>2]=_|v;r[f+4>>2]=g|P;g=y;y=r[g+4>>2]|0;f=s;r[f>>2]=r[g>>2];r[f+4>>2]=y;w=s;k=w;M=r[k>>2]|0;S=w+4|0;A=S;C=r[A>>2]|0;P=C;m=a;return M|0}function gt(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;m=t;return(o[r[n>>2]>>0]|0)<<24|(o[(r[n>>2]|0)+1>>0]|0)<<16|(o[(r[n>>2]|0)+2>>0]|0)<<8|(o[(r[n>>2]|0)+3>>0]|0)|0}function _t(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;s=m;m=m+32|0;l=s+28|0;c=s+24|0;d=s+20|0;u=s+8|0;p=s;f=s+16|0;r[c>>2]=e;r[d>>2]=t;t=u;r[t>>2]=n;r[t+4>>2]=i;i=p;r[i>>2]=a;r[i+4>>2]=o;if(!(r[c>>2]|0)){r[l>>2]=-2;h=r[l>>2]|0;m=s;return h|0}r[f>>2]=bt(r[c>>2]|0,r[d>>2]|0)|0;if(!(r[f>>2]|0)){r[l>>2]=-20;h=r[l>>2]|0;m=s;return h|0}else{o=u;u=r[o+4>>2]|0;i=(r[f>>2]|0)+376|0;r[i>>2]=r[o>>2];r[i+4>>2]=u;u=p;p=r[u+4>>2]|0;i=(r[f>>2]|0)+384|0;r[i>>2]=r[u>>2];r[i+4>>2]=p;r[l>>2]=Mt(r[c>>2]|0,r[d>>2]|0)|0;h=r[l>>2]|0;m=s;return h|0}return 0}function vt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;if(!(r[o>>2]|0)){r[a>>2]=-2;d=r[a>>2]|0;m=i;return d|0}r[c>>2]=bt(r[o>>2]|0,r[s>>2]|0)|0;if(!(r[c>>2]|0)){r[a>>2]=-20;d=r[a>>2]|0;m=i;return d|0}else{r[(r[c>>2]|0)+408>>2]=r[l>>2];r[a>>2]=Mt(r[o>>2]|0,r[s>>2]|0)|0;d=r[a>>2]|0;m=i;return d|0}return 0}function yt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;if(!(r[o>>2]|0)){r[a>>2]=-2;d=r[a>>2]|0;m=i;return d|0}r[c>>2]=bt(r[o>>2]|0,r[s>>2]|0)|0;if(!(r[c>>2]|0)){r[a>>2]=-20;d=r[a>>2]|0;m=i;return d|0}else{r[(r[c>>2]|0)+364>>2]=r[l>>2];r[a>>2]=0;d=r[a>>2]|0;m=i;return d|0}return 0}function bt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[a>>2]=e;r[o>>2]=t;if((r[o>>2]|0)==-1){r[i>>2]=0;s=r[i>>2]|0;m=n;return s|0}else{r[i>>2]=kt(r[(r[a>>2]|0)+80>>2]|0,1,r[o>>2]|0)|0;s=r[i>>2]|0;m=n;return s|0}return 0}function wt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[i>>2]=e;r[a>>2]=t;r[o>>2]=r[i>>2];m=n;return(r[(r[o>>2]|0)+336>>2]|0)==(r[a>>2]|0)|0}function kt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=0;while(1){if((r[d>>2]|0)>=(r[(r[o>>2]|0)+4>>2]|0)){u=6;break}r[c>>2]=r[(r[(r[o>>2]|0)+8>>2]|0)+(r[d>>2]<<2)>>2];if(po[r[s>>2]&1](r[c>>2]|0,r[l>>2]|0)|0){u=4;break}r[d>>2]=(r[d>>2]|0)+1}if((u|0)==4){r[a>>2]=r[c>>2];p=r[a>>2]|0;m=i;return p|0}else if((u|0)==6){
r[a>>2]=0;p=r[a>>2]|0;m=i;return p|0}return 0}function Mt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;if(!(r[a>>2]|0)){r[i>>2]=-2;l=r[i>>2]|0;m=n;return l|0}r[s>>2]=bt(r[a>>2]|0,r[o>>2]|0)|0;if(!(r[s>>2]|0)){r[i>>2]=-20;l=r[i>>2]|0;m=n;return l|0}t=(r[s>>2]|0)+376|0;if((r[t>>2]|0)==0&(r[t+4>>2]|0)==0){t=(r[s>>2]|0)+376|0;r[t>>2]=1;r[t+4>>2]=0;t=(r[s>>2]|0)+384|0;r[t>>2]=0;r[t+4>>2]=0}t=r[a>>2]|0;e=r[o>>2]|0;if(!(r[(r[s>>2]|0)+408>>2]|0)){r[i>>2]=At(t,e,19,0,1)|0;l=r[i>>2]|0;m=n;return l|0}s=(Ct(t,e)|0)==12;e=r[a>>2]|0;t=r[o>>2]|0;if(s){r[i>>2]=At(e,t,20,0,1)|0;l=r[i>>2]|0;m=n;return l|0}s=(Ct(e,t)|0)==14;t=r[a>>2]|0;a=r[o>>2]|0;if(s){r[i>>2]=At(t,a,21,0,1)|0;l=r[i>>2]|0;m=n;return l|0}else{r[i>>2]=At(t,a,22,0,1)|0;l=r[i>>2]|0;m=n;return l|0}return 0}function St(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;o=m;m=m+32|0;s=o+8|0;l=o+28|0;c=o+24|0;d=o;u=o+16|0;r[l>>2]=e;r[c>>2]=t;t=d;r[t>>2]=n;r[t+4>>2]=i;r[o+20>>2]=a;r[u>>2]=bt(r[l>>2]|0,r[c>>2]|0)|0;if(!(r[u>>2]|0)){c=s;r[c>>2]=-1;r[c+4>>2]=-1;p=s;f=p;h=r[f>>2]|0;g=p+4|0;_=g;v=r[_>>2]|0;P=v;m=o;return h|0}c=d;l=r[c+4>>2]|0;a=(r[u>>2]|0)+392|0;i=r[a+4>>2]|0;if((l|0)<(i|0)|((l|0)==(i|0)?(r[c>>2]|0)>>>0<=(r[a>>2]|0)>>>0:0)){y=0;b=0}else{a=d;c=(r[u>>2]|0)+392|0;i=Dr(r[a>>2]|0,r[a+4>>2]|0,r[c>>2]|0,r[c+4>>2]|0)|0;y=i;b=P}i=d;r[i>>2]=y;r[i+4>>2]=b;b=(r[u>>2]|0)+384|0;i=d;d=Vr(r[b>>2]|0,r[b+4>>2]|0,r[i>>2]|0,r[i+4>>2]|0)|0;i=(r[u>>2]|0)+376|0;u=Br(d|0,P|0,r[i>>2]|0,r[i+4>>2]|0)|0;i=s;r[i>>2]=u;r[i+4>>2]=P;p=s;f=p;h=r[f>>2]|0;g=p+4|0;_=g;v=r[_>>2]|0;P=v;m=o;return h|0}function At(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;o=m;m=m+32|0;s=o+24|0;l=o+20|0;c=o+16|0;d=o+12|0;u=o+8|0;p=o+4|0;f=o;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=a;if(!(r[l>>2]|0)){r[s>>2]=-2;h=r[s>>2]|0;m=o;return h|0}a=r[l>>2]|0;if((r[c>>2]|0)==-1){if(r[a+96>>2]|0?r[(r[l>>2]|0)+92>>2]|0:0)Cr(r[(r[l>>2]|0)+92>>2]|0);r[(r[l>>2]|0)+88>>2]=r[d>>2];r[(r[l>>2]|0)+92>>2]=r[u>>2];r[(r[l>>2]|0)+96>>2]=r[p>>2]}else{r[f>>2]=bt(a,r[c>>2]|0)|0;if(!(r[f>>2]|0)){r[s>>2]=-20;h=r[s>>2]|0;m=o;return h|0}if(r[(r[f>>2]|0)+456>>2]|0?r[(r[f>>2]|0)+452>>2]|0:0)Cr(r[(r[f>>2]|0)+452>>2]|0);r[(r[f>>2]|0)+448>>2]=r[d>>2];r[(r[f>>2]|0)+452>>2]=r[u>>2];r[(r[f>>2]|0)+456>>2]=r[p>>2]}r[s>>2]=0;h=r[s>>2]|0;m=o;return h|0}function Ct(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;if(!(r[a>>2]|0)){r[i>>2]=-2;l=r[i>>2]|0;m=n;return l|0}r[s>>2]=bt(r[a>>2]|0,r[o>>2]|0)|0;if(!(r[s>>2]|0)){r[i>>2]=-20;l=r[i>>2]|0;m=n;return l|0}else{r[i>>2]=r[(r[s>>2]|0)+360>>2];l=r[i>>2]|0;m=n;return l|0}return 0}function Tt(e,t,n,i,o){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0;l=m;m=m+80|0;c=l+40|0;d=l+64|0;u=l+60|0;p=l+32|0;f=l+52|0;h=l+24|0;g=l+16|0;_=l+48|0;v=l+68|0;y=l+8|0;b=l;r[d>>2]=e;r[u>>2]=t;t=p;r[t>>2]=n;r[t+4>>2]=i;r[l+56>>2]=o;r[f>>2]=bt(r[d>>2]|0,r[u>>2]|0)|0;if(!(r[f>>2]|0)){u=c;r[u>>2]=-1;r[u+4>>2]=-1;w=c;k=w;M=r[k>>2]|0;S=w+4|0;A=S;C=r[A>>2]|0;P=C;m=l;return M|0}else{u=p;d=Pr(r[u>>2]|0,r[u+4>>2]|0,r[(r[f>>2]|0)+408>>2]|0)|0;u=h;r[u>>2]=d;r[u+4>>2]=P;u=p;p=r[u>>2]|0;d=r[u+4>>2]|0;u=h;o=Lr(r[u>>2]|0,r[u+4>>2]|0,r[(r[f>>2]|0)+408>>2]|0)|0;u=Dr(p|0,d|0,o|0,P|0)|0;o=g;r[o>>2]=u;r[o+4>>2]=P;o=h;h=g;u=Rr(r[o>>2]|0,r[o+4>>2]|0,r[h>>2]|0,r[h+4>>2]|0)|0;h=Pr(u|0,P|0,9)|0;r[_>>2]=h;h=g;g=Pr(r[h>>2]|0,r[h+4>>2]|0,9)|0;a[v>>1]=g;g=Dr(r[_>>2]|0,0,s[v>>1]|0|0,0)|0;v=y;r[v>>2]=g;r[v+4>>2]=P;v=y;y=(r[f>>2]|0)+384|0;g=Vr(r[v>>2]|0,r[v+4>>2]|0,r[y>>2]|0,r[y+4>>2]|0)|0;y=(r[f>>2]|0)+376|0;f=Br(g|0,P|0,r[y>>2]|0,r[y+4>>2]|0)|0;y=b;r[y>>2]=f;r[y+4>>2]=P;y=b;b=r[y+4>>2]|0;f=c;r[f>>2]=r[y>>2];r[f+4>>2]=b;w=c;k=w;M=r[k>>2]|0;S=w+4|0;A=S;C=r[A>>2]|0;P=C;m=l;return M|0}return 0}function Et(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;o=m;m=m+48|0;s=o+24|0;l=o+44|0;c=o+40|0;d=o+16|0;u=o+32|0;p=o+8|0;f=o;r[l>>2]=e;r[c>>2]=t;t=d;r[t>>2]=n;r[t+4>>2]=i;r[o+36>>2]=a;r[u>>2]=bt(r[l>>2]|0,r[c>>2]|0)|0;if(!(r[u>>2]|0)){c=s;r[c>>2]=-1;r[c+4>>2]=-1;h=s;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=o;return _|0}else{c=d;d=Pr(r[c>>2]|0,r[c+4>>2]|0,r[(r[u>>2]|0)+408>>2]|0)|0;c=p;r[c>>2]=d;r[c+4>>2]=P;c=p;p=(r[u>>2]|0)+384|0;d=Vr(r[c>>2]|0,r[c+4>>2]|0,r[p>>2]|0,r[p+4>>2]|0)|0;p=(r[u>>2]|0)+376|0;u=Br(d|0,P|0,r[p>>2]|0,r[p+4>>2]|0)|0;p=f;r[p>>2]=u;r[p+4>>2]=P;p=f;f=r[p+4>>2]|0;u=s;r[u>>2]=r[p>>2];r[u+4>>2]=f;h=s;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=o;return _|0}return 0}function $t(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;o=m;m=m+64|0;s=o+32|0;l=o+52|0;c=o+48|0;d=o+24|0;u=o+40|0;p=o+16|0;f=o+8|0;h=o;r[l>>2]=e;r[c>>2]=t;t=d;r[t>>2]=n;r[t+4>>2]=i;r[o+44>>2]=a;r[u>>2]=bt(r[l>>2]|0,r[c>>2]|0)|0;if(!(r[u>>2]|0)){c=s;r[c>>2]=-1;r[c+4>>2]=-1;g=s;_=g;v=r[_>>2]|0;y=g+4|0;b=y;w=r[b>>2]|0;P=w;m=o;return v|0}c=d;l=Pr(r[c>>2]|0,r[c+4>>2]|0,r[(r[u>>2]|0)+408>>2]|0)|0;c=p;r[c>>2]=l;r[c+4>>2]=P;c=d;l=r[c>>2]|0;a=r[c+4>>2]|0;c=p;i=Lr(r[c>>2]|0,r[c+4>>2]|0,r[(r[u>>2]|0)+408>>2]|0)|0;c=Dr(l|0,a|0,i|0,P|0)|0;i=f;r[i>>2]=c;r[i+4>>2]=P;i=p;p=f;f=Rr(r[i>>2]|0,r[i+4>>2]|0,r[p>>2]|0,r[p+4>>2]|0)|0;p=d;r[p>>2]=f;r[p+4>>2]=P;p=d;f=r[p+4>>2]|0;if((f|0)>0|(f|0)==0&(r[p>>2]|0)>>>0>0){p=(r[u>>2]|0)+392|0;f=d;i=Dr(r[f>>2]|0,r[f+4>>2]|0,r[p>>2]|0,r[p+4>>2]|0)|0;p=d;r[p>>2]=i;r[p+4>>2]=P}p=d;d=(r[u>>2]|0)+384|0;i=Vr(r[p>>2]|0,r[p+4>>2]|0,r[d>>2]|0,r[d+4>>2]|0)|0;d=(r[u>>2]|0)+376|0;u=Br(i|0,P|0,r[d>>2]|0,r[d+4>>2]|0)|0;d=h;r[d>>2]=u;r[d+4>>2]=P;d=h;h=r[d+4>>2]|0;u=s;r[u>>2]=r[d>>2];r[u+4>>2]=h;g=s;_=g;v=r[_>>2]|0;y=g+4|0;b=y;w=r[b>>2]|0;P=w;m=o;return v|0}function It(e){e=e|0;var t=0,n=0,a=0,s=0,l=0,c=0,d=0,u=0,p=0;t=m;m=m+32|0;n=t;a=t+16|0;s=t+22|0;l=t+21|0;c=t+20|0;d=t+12|0;u=t+8|0;r[a>>2]=e;do if((r[(r[a>>2]|0)+4>>2]|0)>=1){i[s>>0]=i[r[r[a>>2]>>2]>>0]|0;i[l>>0]=(o[s>>0]|0)&3;r[d>>2]=r[1416+((o[s>>0]|0)>>3<<2)>>2];if((o[l>>0]|0|0)==3?(r[(r[a>>2]|0)+4>>2]|0)<2:0){e=n;r[e>>2]=0;r[e+4>>2]=0;break}switch(o[l>>0]|0|0){case 0:{i[c>>0]=1;break}case 2:case 1:{i[c>>0]=2;break}case 3:{i[c>>0]=(o[(r[r[a>>2]>>2]|0)+1>>0]|0)&63;break}default:{}}r[u>>2]=G(r[d>>2]|0,o[c>>0]|0)|0;if((r[u>>2]|0)>5760){e=n;r[e>>2]=0;r[e+4>>2]=0;break}else{e=r[u>>2]|0;p=n;r[p>>2]=e;r[p+4>>2]=((e|0)<0)<<31>>31;break}}else{e=n;r[e>>2]=0;r[e+4>>2]=0}while(0);u=n;P=r[u+4>>2]|0;m=t;return r[u>>2]|0}function xt(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;m=t;return(o[r[n>>2]>>0]|0|(o[(r[n>>2]|0)+1>>0]|0)<<8)&65535|0}function Pt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0;a=m;m=m+32|0;o=a+20|0;s=a+16|0;l=a+12|0;c=a;d=a+8|0;r[s>>2]=e;r[l>>2]=t;t=c;r[t>>2]=n;r[t+4>>2]=i;if(!(r[s>>2]|0)){r[o>>2]=-2;u=r[o>>2]|0;m=a;return u|0}r[d>>2]=bt(r[s>>2]|0,r[l>>2]|0)|0;if(!(r[d>>2]|0)){r[o>>2]=-20;u=r[o>>2]|0;m=a;return u|0}else{i=c;c=r[i+4>>2]|0;t=(r[d>>2]|0)+392|0;r[t>>2]=r[i>>2];r[t+4>>2]=c;r[o>>2]=Mt(r[s>>2]|0,r[l>>2]|0)|0;u=r[o>>2]|0;m=a;return u|0}return 0}function Dt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;i=m;m=m+48|0;a=i+44|0;o=i+40|0;s=i+36|0;l=i+32|0;c=i+16|0;d=i+8|0;u=i+4|0;p=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;Rt(c,r[s>>2]|0,r[l>>2]|0);Ot(c,104);l=Nt(c)|0;r[r[o>>2]>>2]=l;l=Nt(c)|0;r[(r[o>>2]|0)+4>>2]=l;l=Nt(c)|0;r[(r[o>>2]|0)+8>>2]=l;l=Nt(c)|0;r[(r[o>>2]|0)+12>>2]=l;l=Nt(c)|0;r[d>>2]=l;r[(r[o>>2]|0)+20>>2]=l;if((r[d>>2]|0)>>>0>=17){r[a>>2]=-1;f=r[a>>2]|0;m=i;return f|0}r[(r[o>>2]|0)+24>>2]=r[1544+(r[d>>2]<<3)>>2];r[(r[o>>2]|0)+28>>2]=r[1544+(r[d>>2]<<3)+4>>2];if(Lt(c)|0){l=Nt(c)|0;r[(r[o>>2]|0)+24>>2]=l;l=Nt(c)|0;r[(r[o>>2]|0)+28>>2]=l}if(Lt(c)|0){l=Nt(c)|0;r[(r[o>>2]|0)+16>>2]=l}if(Lt(c)|0){r[u>>2]=Nt(c)|0;l=(r[u>>2]|0)<2;h=l?r[u>>2]|0:0;g=l?r[o>>2]|0:r[o>>2]|0}else{h=r[1680+(r[d>>2]<<2)>>2]|0;g=r[o>>2]|0}r[g+40>>2]=h;r[(r[o>>2]|0)+44>>2]=r[1764+(r[d>>2]<<2)>>2];r[(r[o>>2]|0)+32>>2]=r[1932+(r[1848+(r[d>>2]<<2)>>2]<<3)>>2];r[(r[o>>2]|0)+36>>2]=r[1932+(r[1848+(r[d>>2]<<2)>>2]<<3)+4>>2];if(Lt(c)|0?(r[p>>2]=Nt(c)|0,r[(r[o>>2]|0)+32>>2]=r[1932+(r[p>>2]<<3)>>2],r[(r[o>>2]|0)+36>>2]=r[1932+(r[p>>2]<<3)+4>>2],(r[p>>2]|0)==0):0){p=Nt(c)|0;r[(r[o>>2]|0)+32>>2]=p;p=Nt(c)|0;r[(r[o>>2]|0)+36>>2]=p}r[a>>2]=0;f=r[a>>2]|0;m=i;return f|0}function Rt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0;i=m;m=m+16|0;a=i+8|0;o=i+4|0;s=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[r[a>>2]>>2]=r[o>>2];r[(r[a>>2]|0)+4>>2]=r[o>>2];r[(r[a>>2]|0)+8>>2]=(r[(r[a>>2]|0)+4>>2]|0)+(r[s>>2]|0);r[(r[a>>2]|0)+12>>2]=8;m=i;return}function Ot(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;t=(r[i>>2]|0)+12|0;r[t>>2]=(r[t>>2]|0)-(r[a>>2]|0);while(1){if((r[(r[i>>2]|0)+12>>2]|0)>0)break;a=(r[i>>2]|0)+4|0;r[a>>2]=(r[a>>2]|0)+1;a=(r[i>>2]|0)+12|0;r[a>>2]=(r[a>>2]|0)+8}m=n;return}function Nt(e){e=e|0;var t=0,n=0,i=0,a=0,o=0;t=m;m=m+16|0;n=t+8|0;i=t+4|0;a=t;r[n>>2]=e;r[i>>2]=0;r[a>>2]=0;while(1){e=(Ft(r[n>>2]|0,1)|0)!=0^1;o=r[i>>2]|0;if(!e)break;r[i>>2]=o+1;r[a>>2]=r[a>>2]<<1;e=Ft(r[n>>2]|0,1)|0;r[a>>2]=r[a>>2]|e}m=t;return(1<<o)-1+(r[a>>2]|0)|0}function Lt(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;e=Ft(r[n>>2]|0,1)|0;m=t;return e|0}function Ft(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,s=0,l=0,c=0,d=0,u=0,p=0;n=m;m=m+32|0;i=n+16|0;a=n+12|0;s=n+8|0;l=n+4|0;c=n;r[a>>2]=e;r[s>>2]=t;r[c>>2]=0;while(1){if((r[s>>2]|0)<=0){d=9;break}if((r[(r[a>>2]|0)+4>>2]|0)>>>0>=(r[(r[a>>2]|0)+8>>2]|0)>>>0){d=9;break}t=(r[(r[a>>2]|0)+12>>2]|0)-(r[s>>2]|0)|0;r[l>>2]=t;u=o[r[(r[a>>2]|0)+4>>2]>>0]|0;if((t|0)>=0)break;r[c>>2]=r[c>>2]|(u&r[2020+(r[(r[a>>2]|0)+12>>2]<<2)>>2])<<0-(r[l>>2]|0);r[s>>2]=(r[s>>2]|0)-(r[(r[a>>2]|0)+12>>2]|0);t=(r[a>>2]|0)+4|0;r[t>>2]=(r[t>>2]|0)+1;r[(r[a>>2]|0)+12>>2]=8}if((d|0)==9){r[i>>2]=r[c>>2];p=r[i>>2]|0;m=n;return p|0}r[c>>2]=r[c>>2]|u>>r[l>>2]&r[2020+(r[s>>2]<<2)>>2];l=(r[a>>2]|0)+12|0;r[l>>2]=(r[l>>2]|0)-(r[s>>2]|0);if(!(r[(r[a>>2]|0)+12>>2]|0)){s=(r[a>>2]|0)+4|0;r[s>>2]=(r[s>>2]|0)+1;r[(r[a>>2]|0)+12>>2]=8}r[i>>2]=r[c>>2];p=r[i>>2]|0;m=n;return p|0}function Ut(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;m=t;return o[r[n>>2]>>0]|0|(o[(r[n>>2]|0)+1>>0]|0)<<8|(o[(r[n>>2]|0)+2>>0]|0)<<16|(o[(r[n>>2]|0)+3>>0]|0)<<24|0}function Bt(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+8|0;i=t+4|0;a=t;r[n>>2]=e;r[i>>2]=o[r[n>>2]>>0]|0|(o[(r[n>>2]|0)+1>>0]|0)<<8|(o[(r[n>>2]|0)+2>>0]|0)<<16|(o[(r[n>>2]|0)+3>>0]|0)<<24;r[a>>2]=o[(r[n>>2]|0)+4>>0]|0|(o[(r[n>>2]|0)+5>>0]|0)<<8|(o[(r[n>>2]|0)+6>>0]|0)<<16|(o[(r[n>>2]|0)+7>>0]|0)<<24;P=r[a>>2]|0;m=t;return r[i>>2]|0}function Ht(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;m=t;return((o[r[n>>2]>>0]|0)<<8|(o[(r[n>>2]|0)+1>>0]|0))&65535|0}function jt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;if(!(r[o>>2]|0)){r[a>>2]=-2;d=r[a>>2]|0;m=i;return d|0}r[c>>2]=bt(r[o>>2]|0,r[s>>2]|0)|0;if(!(r[c>>2]|0)){r[a>>2]=-20;d=r[a>>2]|0;m=i;return d|0}else{r[(r[c>>2]|0)+368>>2]=r[l>>2];r[a>>2]=0;d=r[a>>2]|0;m=i;return d|0}return 0}function Vt(e){e=e|0;var t=0,n=0,i=0,a=0,o=0;t=m;m=m+16|0;n=t+8|0;i=t+4|0;a=t;r[i>>2]=e;if(qt(r[i>>2]|0)|0){r[n>>2]=0;o=r[n>>2]|0;m=t;return o|0}r[a>>2]=Ar(568)|0;if(!(r[a>>2]|0)){r[n>>2]=0;o=r[n>>2]|0;m=t;return o|0}r[r[a>>2]>>2]=r[i>>2];r[(r[a>>2]|0)+4>>2]=0;r[(r[a>>2]|0)+8>>2]=0;r[(r[a>>2]|0)+64>>2]=0;r[(r[a>>2]|0)+68>>2]=0;r[(r[a>>2]|0)+72>>2]=1024;r[(r[a>>2]|0)+76>>2]=0;i=zt()|0;r[(r[a>>2]|0)+80>>2]=i;do if(r[(r[a>>2]|0)+80>>2]|0){r[(r[a>>2]|0)+84>>2]=0;r[(r[a>>2]|0)+88>>2]=0;r[(r[a>>2]|0)+92>>2]=0;r[(r[a>>2]|0)+96>>2]=0;r[(r[a>>2]|0)+100>>2]=0;r[(r[a>>2]|0)+104>>2]=0;i=Wt()|0;r[(r[a>>2]|0)+560>>2]=i;i=r[a>>2]|0;if(!(r[(r[a>>2]|0)+560>>2]|0)){Cr(r[i+80>>2]|0);break}Gt(i)|0;r[n>>2]=r[a>>2];o=r[n>>2]|0;m=t;return o|0}while(0);Cr(r[a>>2]|0);r[n>>2]=0;o=r[n>>2]|0;m=t;return o|0}function qt(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[i>>2]=e;if(r[i>>2]&1|0)r[n>>2]=-11;else r[n>>2]=0;m=t;return r[n>>2]|0}function zt(){var e=0,t=0,n=0,i=0;e=m;m=m+16|0;t=e+4|0;n=e;r[n>>2]=Ar(20)|0;if(!(r[n>>2]|0)){r[t>>2]=0;i=r[t>>2]|0;m=e;return i|0}else{r[r[n>>2]>>2]=0;r[(r[n>>2]|0)+4>>2]=0;r[(r[n>>2]|0)+8>>2]=0;r[(r[n>>2]|0)+12>>2]=0;r[(r[n>>2]|0)+16>>2]=0;r[t>>2]=r[n>>2];i=r[t>>2]|0;m=e;return i|0}return 0}function Wt(){var e=0,t=0,n=0,i=0,a=0,o=0;e=m;m=m+16|0;t=e+12|0;n=e+8|0;i=e+4|0;a=e;r[n>>2]=Ar(8)|0;if(!(r[n>>2]|0)){r[t>>2]=0;o=r[t>>2]|0;m=e;return o|0}r[i>>2]=Ar(12)|0;if(!(r[i>>2]|0)){Cr(r[n>>2]|0);r[t>>2]=0;o=r[t>>2]|0;m=e;return o|0}r[a>>2]=Ar(12)|0;if(!(r[a>>2]|0)){Cr(r[i>>2]|0);Cr(r[n>>2]|0);r[t>>2]=0;o=r[t>>2]|0;m=e;return o|0}else{r[r[i>>2]>>2]=r[a>>2];r[(r[i>>2]|0)+4>>2]=0;r[(r[a>>2]|0)+4>>2]=r[i>>2];r[r[a>>2]>>2]=0;r[r[n>>2]>>2]=r[i>>2];r[(r[n>>2]|0)+4>>2]=r[a>>2];r[t>>2]=r[n>>2];o=r[t>>2]|0;m=e;return o|0}return 0}function Gt(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;r[i>>2]=(r[n>>2]|0)+112;Ne(r[i>>2]|0)|0;De((r[i>>2]|0)+32|0,-1)|0;r[(r[i>>2]|0)+392>>2]=-1;r[(r[i>>2]|0)+396>>2]=0;r[(r[i>>2]|0)+400>>2]=0;r[(r[i>>2]|0)+404>>2]=0;r[(r[i>>2]|0)+408>>2]=0;e=(r[i>>2]|0)+416|0;r[e>>2]=0;r[e+4>>2]=0;r[(r[i>>2]|0)+432>>2]=0;r[(r[i>>2]|0)+436>>2]=0;r[(r[i>>2]|0)+440>>2]=0;m=t;return r[n>>2]|0}function Kt(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0;t=m;m=m+16|0;n=t+8|0;i=t+4|0;a=t;r[i>>2]=e;e=r[i>>2]|0;do if(r[(r[i>>2]|0)+4>>2]|0)if((pr(r[e+4>>2]|0)|0)==-1)r[n>>2]=-10;else o=10;else{s=r[e+8>>2]|0;r[a>>2]=s;if(!s){r[n>>2]=-3;break}if(!(r[(r[a>>2]|0)+32>>2]|0)){r[n>>2]=-3;break}if((co[r[(r[a>>2]|0)+32>>2]&15](r[(r[a>>2]|0)+36>>2]|0)|0)==-1)r[n>>2]=-1;else o=10}while(0);if((o|0)==10)r[n>>2]=0;m=t;return r[n>>2]|0}function Yt(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+4|0;i=t;r[i>>2]=e;if(!(r[i>>2]|0)){r[n>>2]=-2;a=r[n>>2]|0;m=t;return a|0}Xt(r[i>>2]|0)|0;Zt(r[(r[i>>2]|0)+80>>2]|0,2)|0;Qt(r[(r[i>>2]|0)+80>>2]|0);tn(r[(r[i>>2]|0)+560>>2]|0,3)|0;nn(r[(r[i>>2]|0)+560>>2]|0);if(r[(r[i>>2]|0)+96>>2]|0)Cr(r[(r[i>>2]|0)+92>>2]|0);if(r[(r[i>>2]|0)+4>>2]|0?(ur(r[(r[i>>2]|0)+4>>2]|0)|0)==-1:0){r[n>>2]=-10;a=r[n>>2]|0;m=t;return a|0}if(r[(r[i>>2]|0)+8>>2]|0){Kt(r[i>>2]|0)|0;Cr(r[(r[i>>2]|0)+8>>2]|0)}Cr(r[i>>2]|0);r[n>>2]=0;a=r[n>>2]|0;m=t;return a|0}function Xt(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;r[i>>2]=(r[n>>2]|0)+112;Re((r[i>>2]|0)+32|0)|0;Le(r[i>>2]|0)|0;m=t;return r[n>>2]|0}function Jt(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;r[i>>2]=r[n>>2];on(r[i>>2]|0)|0;if((r[(r[i>>2]|0)+336>>2]|0)!=-1)Re(r[i>>2]|0)|0;if(r[(r[i>>2]|0)+456>>2]|0)Cr(r[(r[i>>2]|0)+452>>2]|0);if(!(r[(r[i>>2]|0)+504>>2]|0)){a=r[i>>2]|0;Cr(a);m=t;return 0}Cr(r[(r[i>>2]|0)+504>>2]|0);a=r[i>>2]|0;Cr(a);m=t;return 0}function Zt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[i>>2]=e;r[a>>2]=t;r[o>>2]=0;while(1){if((r[o>>2]|0)>=(r[(r[i>>2]|0)+4>>2]|0))break;co[r[a>>2]&15](r[(r[(r[i>>2]|0)+8>>2]|0)+(r[o>>2]<<2)>>2]|0)|0;r[o>>2]=(r[o>>2]|0)+1}m=n;return 0}function Qt(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;rn(r[n>>2]|0);Cr(r[n>>2]|0);m=t;return}function en(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;r[i>>2]=r[n>>2];an(r[i>>2]|0);m=t;return 1}function tn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0;n=m;m=m+32|0;i=n+20|0;a=n+16|0;o=n+12|0;s=n+8|0;l=n+4|0;c=n;r[i>>2]=e;r[a>>2]=t;r[l>>2]=0;r[o>>2]=r[r[r[i>>2]>>2]>>2];while(1){if((r[o>>2]|0)==(r[(r[i>>2]|0)+4>>2]|0)){d=7;break}r[c>>2]=co[r[a>>2]&15](r[(r[o>>2]|0)+8>>2]|0)|0;if((r[c>>2]|0)==-1)r[l>>2]=-1;if(!(r[c>>2]|0)){d=7;break}r[s>>2]=r[r[o>>2]>>2];r[r[(r[o>>2]|0)+4>>2]>>2]=r[r[o>>2]>>2];r[(r[r[o>>2]>>2]|0)+4>>2]=r[(r[o>>2]|0)+4>>2];Cr(r[o>>2]|0);r[o>>2]=r[s>>2]}if((d|0)==7){m=n;return r[l>>2]|0}return 0}function nn(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;r[i>>2]=r[r[r[n>>2]>>2]>>2];while(1){if(!(r[i>>2]|0))break;Cr(r[(r[i>>2]|0)+4>>2]|0);r[i>>2]=r[r[i>>2]>>2]}Cr(r[(r[n>>2]|0)+4>>2]|0);Cr(r[n>>2]|0);m=t;return}function an(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;Cr(r[r[n>>2]>>2]|0);Cr(r[n>>2]|0);m=t;return}function rn(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;if(r[(r[n>>2]|0)+8>>2]|0){Cr(r[(r[n>>2]|0)+8>>2]|0);r[(r[n>>2]|0)+8>>2]=0}r[(r[n>>2]|0)+4>>2]=0;r[r[n>>2]>>2]=0;m=t;return}function on(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t;r[n>>2]=e;Zt(r[(r[n>>2]|0)+416>>2]|0,1)|0;Qt(r[(r[n>>2]|0)+416>>2]|0);r[(r[n>>2]|0)+416>>2]=0;if(!(r[(r[n>>2]|0)+412>>2]|0)){i=r[n>>2]|0;a=i+412|0;r[a>>2]=0;m=t;return 0}Cr(r[(r[n>>2]|0)+412>>2]|0);i=r[n>>2]|0;a=i+412|0;r[a>>2]=0;m=t;return 0}function sn(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;if(!(r[n>>2]|0)){m=t;return}if(r[r[n>>2]>>2]|0)Cr(r[r[n>>2]>>2]|0);if(r[(r[n>>2]|0)+4>>2]|0)Cr(r[(r[n>>2]|0)+4>>2]|0);Cr(r[n>>2]|0);m=t;return}function ln(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0;t=m;m=m+16|0;n=t;i=t+12|0;a=t+8|0;r[i>>2]=e;do if(r[i>>2]|0)if(r[r[i>>2]>>2]&1|0){e=n;r[e>>2]=-3;r[e+4>>2]=-1;break}else{r[a>>2]=(r[i>>2]|0)+112;e=(r[a>>2]|0)+416|0;o=r[e+4>>2]|0;s=n;r[s>>2]=r[e>>2];r[s+4>>2]=o;break}else{o=n;r[o>>2]=-2;r[o+4>>2]=-1}while(0);a=n;P=r[a+4>>2]|0;m=t;return r[a>>2]|0}function cn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0;t=m;m=m+16|0;n=t;i=t+8|0;r[i>>2]=e;do if(r[i>>2]|0)if(r[r[i>>2]>>2]&1|0){e=n;r[e>>2]=-3;r[e+4>>2]=-1;break}else{e=(r[i>>2]|0)+112+424|0;a=r[e+4>>2]|0;o=n;r[o>>2]=r[e>>2];r[o+4>>2]=a;break}else{a=n;r[a>>2]=-2;r[a+4>>2]=-1}while(0);i=n;P=r[i+4>>2]|0;m=t;return r[i>>2]|0}function dn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;n=m;m=m+48|0;i=n+36|0;a=n+32|0;o=n+28|0;s=n+24|0;l=n+20|0;c=n+16|0;d=n+12|0;u=n+8|0;p=n+4|0;f=n;r[a>>2]=e;r[o>>2]=t;r[d>>2]=1;r[u>>2]=r[o>>2];r[p>>2]=0;r[f>>2]=0;if(!(r[a>>2]|0)){r[i>>2]=-2;h=r[i>>2]|0;m=n;return h|0}if(r[r[a>>2]>>2]&1|0){r[i>>2]=-3;h=r[i>>2]|0;m=n;return h|0}o=r[(r[a>>2]|0)+76>>2]|0;r[f>>2]=o;t=r[a>>2]|0;if(o|0){r[t+76>>2]=0;r[i>>2]=un(r[f>>2]|0)|0;h=r[i>>2]|0;m=n;return h|0}r[s>>2]=t+112;r[f>>2]=pn(r[a>>2]|0)|0;if((r[f>>2]|0)==-18){r[i>>2]=r[f>>2];h=r[i>>2]|0;m=n;return h|0}while(1){if(!((r[f>>2]|0)!=-1&(r[f>>2]|0)!=1&(r[d>>2]|0)>0&(r[u>>2]|0)>0)){g=15;break}r[c>>2]=(r[u>>2]|0)<65536?r[u>>2]|0:65536;r[l>>2]=Fe(r[s>>2]|0,r[c>>2]|0)|0;r[d>>2]=fn(r[a>>2]|0,r[l>>2]|0,r[c>>2]|0)|0;if((r[d>>2]|0)==-10){g=11;break}if((r[d>>2]|0)<=0)continue;Ue(r[s>>2]|0,r[d>>2]|0)|0;r[u>>2]=(r[u>>2]|0)-(r[d>>2]|0);r[p>>2]=(r[p>>2]|0)+(r[d>>2]|0);r[f>>2]=pn(r[a>>2]|0)|0;if((r[f>>2]|0)==-18|(r[f>>2]|0)==-17){g=14;break}}if((g|0)==11){r[i>>2]=-10;h=r[i>>2]|0;m=n;return h|0}else if((g|0)==14){r[i>>2]=r[f>>2];h=r[i>>2]|0;m=n;return h|0}else if((g|0)==15){if((r[f>>2]|0)==-1)mn(r[a>>2]|0)|0;if(r[p>>2]|0){if((r[f>>2]|0)==-404)r[f>>2]=0;r[(r[a>>2]|0)+76>>2]=r[f>>2];r[i>>2]=r[p>>2];h=r[i>>2]|0;m=n;return h|0}switch(r[d>>2]|0){case-10:case-16:{r[i>>2]=r[d>>2];h=r[i>>2]|0;m=n;return h|0}default:{}}if((r[f>>2]|0)==-404){r[i>>2]=0;h=r[i>>2]|0;m=n;return h|0}else{r[i>>2]=un(r[f>>2]|0)|0;h=r[i>>2]|0;m=n;return h|0}}return 0}function un(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[i>>2]=e;switch(r[i>>2]|0){case 0:{r[n>>2]=0;break}case 1:{r[n>>2]=-14;break}case-1:{r[n>>2]=-15;break}default:r[n>>2]=r[i>>2]}m=t;return r[n>>2]|0}function pn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0;t=m;m=m+160|0;n=t+148|0;i=t+144|0;a=t+140|0;o=t+136|0;s=t+132|0;l=t+128|0;c=t+124|0;d=t+120|0;u=t+24|0;p=t+104|0;f=t+96|0;h=t+16|0;g=t+92|0;_=t+88|0;v=t+84|0;y=t+8|0;b=t+80|0;w=t;r[i>>2]=e;r[a>>2]=(r[i>>2]|0)+112;r[f>>2]=0;r[l>>2]=u;r[c>>2]=u+32;e:while(1){if(r[f>>2]|0){k=76;break}t:do if((r[f>>2]|0)==0?(r[(r[a>>2]|0)+392>>2]|0)!=-1:0)do{r[d>>2]=r[(r[a>>2]|0)+392>>2];r[o>>2]=bt(r[i>>2]|0,r[d>>2]|0)|0;if((r[o>>2]|0)==0?(e=Mn(r[i>>2]|0,r[d>>2]|0)|0,r[o>>2]=e,(e|0)==0):0){k=7;break e}r[s>>2]=r[o>>2];r[g>>2]=qe(r[s>>2]|0,r[l>>2]|0)|0;if((r[g>>2]|0)==-1){e=(r[o>>2]|0)+440|0;M=r[e+4>>2]|0;S=(r[(r[o>>2]|0)+364>>2]|0)-1|0;A=((S|0)<0)<<31>>31;if((M|0)<(A|0)|((M|0)==(A|0)?(r[e>>2]|0)>>>0<S>>>0:0)){k=10;break e}r[g>>2]=qe(r[s>>2]|0,r[l>>2]|0)|0;if((r[g>>2]|0)==-1){k=12;break e}r[(r[a>>2]|0)+440>>2]=1;r[(r[a>>2]|0)+436>>2]=r[(r[i>>2]|0)+64>>2];r[(r[a>>2]|0)+444>>2]=1}if((r[g>>2]|0)<=0)break t;S=(r[o>>2]|0)+440|0;e=S;A=Rr(r[e>>2]|0,r[e+4>>2]|0,1,0)|0;e=S;r[e>>2]=A;r[e+4>>2]=P;e=(r[l>>2]|0)+16|0;A=r[e+4>>2]|0;S=h;r[S>>2]=r[e>>2];r[S+4>>2]=A;r[_>>2]=Ct(r[i>>2]|0,r[d>>2]|0)|0;do if(!((r[_>>2]|0)<0|(r[_>>2]|0)>=15)){if(((r[_>>2]|0)==6?1:(r[(r[o>>2]|0)+448>>2]|0)==0)?r[r[i>>2]>>2]&32|0:0)Sn(r[i>>2]|0,r[l>>2]|0,r[d>>2]|0,0)|0;if(!(r[r[i>>2]>>2]&32)){A=h;S=r[A+4>>2]|0;e=(r[a>>2]|0)+424|0;r[e>>2]=r[A>>2];r[e+4>>2]=S;break}S=h;e=An(r[_>>2]|0,r[S>>2]|0,r[S+4>>2]|0,r[o>>2]|0,r[l>>2]|0)|0;S=(r[a>>2]|0)+424|0;r[S>>2]=e;r[S+4>>2]=P;S=h;if(((r[S>>2]|0)!=-1?1:(r[S+4>>2]|0)!=-1)?(S=(r[a>>2]|0)+424|0,e=r[S+4>>2]|0,A=h,M=r[A+4>>2]|0,(e|0)<(M|0)|((e|0)==(M|0)?(r[S>>2]|0)>>>0<(r[A>>2]|0)>>>0:0)):0){A=h;S=r[A+4>>2]|0;M=(r[a>>2]|0)+424|0;r[M>>2]=r[A>>2];r[M+4>>2]=S}}else{S=h;M=r[S+4>>2]|0;A=(r[a>>2]|0)+424|0;r[A>>2]=r[S>>2];r[A+4>>2]=M}while(0);M=(r[a>>2]|0)+424|0;A=r[M+4>>2]|0;S=(r[o>>2]|0)+488|0;r[S>>2]=r[M>>2];r[S+4>>2]=A;if(!(!(r[(r[i>>2]|0)+88>>2]|0)?!(r[(r[o>>2]|0)+448>>2]|0):0))k=27;if((k|0)==27?(k=0,A=(r[a>>2]|0)+424|0,(r[A>>2]|0)!=-1?1:(r[A+4>>2]|0)!=-1):0){A=(r[a>>2]|0)+424|0;S=Cn(r[i>>2]|0,r[d>>2]|0,r[A>>2]|0,r[A+4>>2]|0)|0;A=(r[a>>2]|0)+416|0;r[A>>2]=S;r[A+4>>2]=P}A=(r[o>>2]|0)+440|0;if((r[A>>2]|0)==1&(r[A+4>>2]|0)==0)Tn(r[i>>2]|0,r[o>>2]|0,r[d>>2]|0,r[l>>2]|0)|0;A=(r[a>>2]|0)+424|0;S=r[A+4>>2]|0;M=r[c>>2]|0;r[M>>2]=r[A>>2];r[M+4>>2]=S;r[(r[c>>2]|0)+8>>2]=r[(r[a>>2]|0)+436>>2];r[(r[c>>2]|0)+12>>2]=r[(r[i>>2]|0)+64>>2];r[(r[c>>2]|0)+16>>2]=r[(r[a>>2]|0)+440>>2];r[(r[c>>2]|0)+20>>2]=r[(r[a>>2]|0)+444>>2];do if(r[r[i>>2]>>2]&32|0){S=(r[a>>2]|0)+424|0;M=r[i>>2]|0;if((r[S>>2]|0)==-1?(r[S+4>>2]|0)==-1:0){r[v>>2]=En(M,u,r[d>>2]|0,r[o>>2]|0,r[a>>2]|0)|0;$n(r[(r[i>>2]|0)+560>>2]|0,r[v>>2]|0)|0;k=45;break}if(!(In(r[M+560>>2]|0)|0)){M=(r[o>>2]|0)+488|0;S=r[M+4>>2]|0;A=y;r[A>>2]=r[M>>2];r[A+4>>2]=S;r[(r[o>>2]|0)+508>>2]=r[l>>2];Pn(r[(r[i>>2]|0)+560>>2]|0,4);r[(r[i>>2]|0)+76>>2]=0;if((tn(r[(r[i>>2]|0)+560>>2]|0,5)|0)==-1){k=36;break e}S=(r[i>>2]|0)+76|0;if((r[(r[i>>2]|0)+76>>2]|0)>0){r[f>>2]=r[S>>2];r[(r[i>>2]|0)+76>>2]=0;break}r[S>>2]=0;S=y;A=r[S+4>>2]|0;M=(r[o>>2]|0)+488|0;r[M>>2]=r[S>>2];r[M+4>>2]=A;if(!(In(r[(r[i>>2]|0)+560>>2]|0)|0)){r[b>>2]=En(r[i>>2]|0,u,r[d>>2]|0,r[o>>2]|0,r[a>>2]|0)|0;$n(r[(r[i>>2]|0)+560>>2]|0,r[b>>2]|0)|0;k=45}else k=41}else k=41}else k=41;while(0);do if((k|0)==41){k=0;if(r[(r[o>>2]|0)+468>>2]|0){r[f>>2]=uo[r[(r[o>>2]|0)+468>>2]&15](r[i>>2]|0,u,r[d>>2]|0,r[(r[o>>2]|0)+472>>2]|0)|0;k=45;break}if(r[(r[a>>2]|0)+396>>2]|0){r[f>>2]=uo[r[(r[a>>2]|0)+396>>2]&15](r[i>>2]|0,u,r[d>>2]|0,r[(r[a>>2]|0)+400>>2]|0)|0;k=45}else k=45}while(0);if((k|0)==45){k=0;if((r[(r[a>>2]|0)+436>>2]|0)==(r[(r[i>>2]|0)+64>>2]|0)){A=(r[a>>2]|0)+444|0;r[A>>2]=(r[A>>2]|0)+1}else{r[(r[a>>2]|0)+436>>2]=r[(r[i>>2]|0)+64>>2];r[(r[a>>2]|0)+444>>2]=1}r[(r[a>>2]|0)+440>>2]=1;if(!(r[(r[l>>2]|0)+8>>2]|0))r[(r[o>>2]|0)+420>>2]=1}}while(!(r[f>>2]|0));while(0);if((r[f>>2]|0)==1|(r[f>>2]|0)==-1|(r[f>>2]|0)==-17){k=51;break}if((Rn(r[i>>2]|0,p)|0)<0){k=53;break}r[d>>2]=Pe(p)|0;r[(r[a>>2]|0)+392>>2]=r[d>>2];r[o>>2]=bt(r[i>>2]|0,r[d>>2]|0)|0;A=r[i>>2]|0;M=r[d>>2]|0;if(!(r[o>>2]|0)){S=Mn(A,M)|0;r[o>>2]=S;if(!S){k=56;break}On(r[i>>2]|0,p,r[d>>2]|0)|0;if(r[r[i>>2]>>2]&32|0)Nn(r[i>>2]|0,p,r[d>>2]|0,0)|0}else if((Ct(A,M)|0)==9)On(r[i>>2]|0,p,r[d>>2]|0)|0;r[s>>2]=r[o>>2];M=xe(p)|0;A=w;r[A>>2]=M;r[A+4>>2]=P;A=w;M=r[A+4>>2]|0;S=(r[o>>2]|0)+496|0;r[S>>2]=r[A>>2];r[S+4>>2]=M;if(r[(r[i>>2]|0)+88>>2]|0){M=w;if((r[M>>2]|0)!=-1?1:(r[M+4>>2]|0)!=-1)k=64;else k=65}else{M=w;if((r[(r[o>>2]|0)+448>>2]|0)!=0&((r[M>>2]|0)!=-1?1:(r[M+4>>2]|0)!=-1))k=64;else k=65}if((k|0)==64){k=0;M=w;S=Cn(r[i>>2]|0,r[d>>2]|0,r[M>>2]|0,r[M+4>>2]|0)|0;C=r[a>>2]|0;T=S;E=P;k=67}else if((k|0)==65?(k=0,S=w,(r[S>>2]|0)==0&(r[S+4>>2]|0)==0):0){C=r[a>>2]|0;T=0;E=0;k=67}if((k|0)==67){k=0;S=C+416|0;r[S>>2]=T;r[S+4>>2]=E}if(!(r[(r[o>>2]|0)+476>>2]|0)){if(r[(r[a>>2]|0)+404>>2]|0)r[f>>2]=uo[r[(r[a>>2]|0)+404>>2]&15](r[i>>2]|0,p,r[d>>2]|0,r[(r[a>>2]|0)+408>>2]|0)|0}else r[f>>2]=uo[r[(r[o>>2]|0)+476>>2]&15](r[i>>2]|0,p,r[d>>2]|0,r[(r[o>>2]|0)+480>>2]|0)|0;He(r[s>>2]|0,p)|0;S=($e(p)|0)!=0;M=(r[a>>2]|0)+440|0;if(!S){r[M>>2]=1;r[(r[a>>2]|0)+436>>2]=r[(r[i>>2]|0)+64>>2];r[(r[a>>2]|0)+444>>2]=0;continue}if((r[M>>2]|0)==-1)continue;M=(r[a>>2]|0)+440|0;r[M>>2]=(r[M>>2]|0)+1}if((k|0)==7){r[n>>2]=-18;$=r[n>>2]|0;m=t;return $|0}else if((k|0)==10){r[n>>2]=-17;$=r[n>>2]|0;m=t;return $|0}else if((k|0)==12){r[n>>2]=-17;$=r[n>>2]|0;m=t;return $|0}else if((k|0)==36){r[n>>2]=-17;$=r[n>>2]|0;m=t;return $|0}else if((k|0)==51){r[n>>2]=r[f>>2];$=r[n>>2]|0;m=t;return $|0}else if((k|0)==53){r[n>>2]=-404;$=r[n>>2]|0;m=t;return $|0}else if((k|0)==56){r[n>>2]=-18;$=r[n>>2]|0;m=t;return $|0}else if((k|0)==76){r[n>>2]=r[f>>2];$=r[n>>2]|0;m=t;return $|0}return 0}function fn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;n=r[o>>2]|0;do if(r[(r[o>>2]|0)+4>>2]|0){t=kr(r[n+4>>2]|0)|0;e=or(t,r[s>>2]|0,r[l>>2]|0)|0;r[d>>2]=e;if((e|0)==0?mr(r[(r[o>>2]|0)+4>>2]|0)|0:0){r[a>>2]=-10;u=r[a>>2]|0;m=i;return u|0}}else{e=r[n+8>>2]|0;r[c>>2]=e;if(!e){r[a>>2]=-3;u=r[a>>2]|0;m=i;return u|0}if(r[r[c>>2]>>2]|0){r[d>>2]=so[r[r[c>>2]>>2]&7](r[(r[c>>2]|0)+4>>2]|0,r[s>>2]|0,r[l>>2]|0)|0;break}r[a>>2]=-1;u=r[a>>2]|0;m=i;return u|0}while(0);r[a>>2]=r[d>>2];u=r[a>>2]|0;m=i;return u|0}function mn(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[i>>2]=e;do if(!(r[i>>2]|0))r[n>>2]=-2;else{if(r[r[i>>2]>>2]&1|0){r[n>>2]=-3;break}hn(r[i>>2]|0);if(r[(r[i>>2]|0)+4>>2]|0?(gn(r[i>>2]|0,r[(r[i>>2]|0)+64>>2]|0,-1,-1,0)|0)<0:0){r[n>>2]=-10;break}r[n>>2]=0}while(0);m=t;return r[n>>2]|0}function hn(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;Zt(r[(r[n>>2]|0)+80>>2]|0,6)|0;m=t;return}function gn(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0;o=m;m=m+32|0;s=o+16|0;l=o+12|0;c=o;d=o+8|0;r[s>>2]=e;r[l>>2]=t;t=c;r[t>>2]=n;r[t+4>>2]=i;r[d>>2]=a;hn(r[s>>2]|0);a=c;c=_n(r[s>>2]|0,r[l>>2]|0,r[a>>2]|0,r[a+4>>2]|0,r[d>>2]|0)|0;m=o;return c|0}function _n(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;o=m;m=m+32|0;s=o+28|0;l=o+24|0;c=o+20|0;d=o;u=o+16|0;p=o+12|0;f=o+8|0;r[l>>2]=e;r[c>>2]=t;t=d;r[t>>2]=n;r[t+4>>2]=i;r[u>>2]=a;r[p>>2]=(r[l>>2]|0)+112;r[f>>2]=vn(r[l>>2]|0,r[c>>2]|0,r[u>>2]|0)|0;if((r[f>>2]|0)==-1){r[s>>2]=-1;h=r[s>>2]|0;m=o;return h|0}r[(r[l>>2]|0)+64>>2]=r[f>>2];l=d;if((r[l>>2]|0)!=-1?1:(r[l+4>>2]|0)!=-1){l=d;d=r[l+4>>2]|0;u=(r[p>>2]|0)+416|0;r[u>>2]=r[l>>2];r[u+4>>2]=d}r[s>>2]=r[f>>2];h=r[s>>2]|0;m=o;return h|0}function vn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=(r[o>>2]|0)+112;if((yn(r[o>>2]|0,r[s>>2]|0,r[l>>2]|0)|0)==-1){r[a>>2]=-1;u=r[a>>2]|0;m=i;return u|0}else{r[d>>2]=bn(r[o>>2]|0)|0;r[(r[o>>2]|0)+64>>2]=r[d>>2];je(r[c>>2]|0)|0;Zt(r[(r[o>>2]|0)+80>>2]|0,7)|0;r[a>>2]=r[d>>2];u=r[a>>2]|0;m=i;return u|0}return 0}function yn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;n=r[o>>2]|0;if(r[(r[o>>2]|0)+4>>2]|0){if((hr(r[n+4>>2]|0,r[s>>2]|0,r[l>>2]|0)|0)==-1){ya()|0;r[a>>2]=-10;d=r[a>>2]|0;m=i;return d|0}}else{o=r[n+8>>2]|0;r[c>>2]=o;if(!o){r[a>>2]=-3;d=r[a>>2]|0;m=i;return d|0}if(!(r[(r[c>>2]|0)+16>>2]|0)){r[a>>2]=-1;d=r[a>>2]|0;m=i;return d|0}if((so[r[(r[c>>2]|0)+16>>2]&7](r[(r[c>>2]|0)+20>>2]|0,r[s>>2]|0,r[l>>2]|0)|0)==-1){r[a>>2]=-1;d=r[a>>2]|0;m=i;return d|0}}r[a>>2]=0;d=r[a>>2]|0;m=i;return d|0}function bn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0;t=m;m=m+16|0;n=t+12|0;i=t+8|0;a=t+4|0;o=t;r[i>>2]=e;e=r[i>>2]|0;do if(r[(r[i>>2]|0)+4>>2]|0){s=Mr(r[e+4>>2]|0)|0;r[o>>2]=s;if((s|0)==-1){ya()|0;r[n>>2]=-1}else l=10}else{s=r[e+8>>2]|0;r[a>>2]=s;if(!s){r[n>>2]=-3;break}if(!(r[(r[a>>2]|0)+24>>2]|0)){r[n>>2]=-1;break}s=co[r[(r[a>>2]|0)+24>>2]&15](r[(r[a>>2]|0)+28>>2]|0)|0;r[o>>2]=s;if((s|0)==-1)r[n>>2]=-1;else l=10}while(0);if((l|0)==10)r[n>>2]=r[o>>2];m=t;return r[n>>2]|0}function wn(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;e=(r[n>>2]|0)+488|0;r[e>>2]=-1;r[e+4>>2]=-1;m=t;return 0}function kn(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;r[i>>2]=r[n>>2];if((r[(r[i>>2]|0)+336>>2]|0)==-1){m=t;return 0}Ve(r[i>>2]|0)|0;m=t;return 0}function Mn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;r[s>>2]=Ar(512)|0;if(!(r[s>>2]|0)){r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}De(r[s>>2]|0,r[o>>2]|0)|0;o=(ai(r[s>>2]|0)|0)==-1;t=r[s>>2]|0;if(o){Cr(t);r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}else{r[t+360>>2]=15;r[(r[s>>2]|0)+364>>2]=3;r[(r[s>>2]|0)+368>>2]=0;t=(r[s>>2]|0)+376|0;r[t>>2]=1;r[t+4>>2]=0;t=(r[s>>2]|0)+384|0;r[t>>2]=1;r[t+4>>2]=0;t=(r[s>>2]|0)+392|0;r[t>>2]=0;r[t+4>>2]=0;t=(r[s>>2]|0)+400|0;r[t>>2]=0;r[t+4>>2]=0;r[(r[s>>2]|0)+408>>2]=0;r[(r[s>>2]|0)+420>>2]=0;r[(r[s>>2]|0)+424>>2]=1;r[(r[s>>2]|0)+428>>2]=0;t=(r[s>>2]|0)+432|0;r[t>>2]=0;r[t+4>>2]=0;t=(r[s>>2]|0)+440|0;r[t>>2]=-1;r[t+4>>2]=-1;r[(r[s>>2]|0)+448>>2]=0;r[(r[s>>2]|0)+452>>2]=0;r[(r[s>>2]|0)+456>>2]=0;r[(r[s>>2]|0)+460>>2]=0;r[(r[s>>2]|0)+464>>2]=0;r[(r[s>>2]|0)+468>>2]=0;r[(r[s>>2]|0)+472>>2]=0;r[(r[s>>2]|0)+476>>2]=0;r[(r[s>>2]|0)+480>>2]=0;r[(r[s>>2]|0)+504>>2]=0;Jn(r[(r[a>>2]|0)+80>>2]|0,r[s>>2]|0)|0;r[i>>2]=r[s>>2];l=r[i>>2]|0;m=n;return l|0}return 0}function Sn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;a=m;m=m+32|0;o=a+20|0;s=a+16|0;l=a+12|0;c=a+8|0;d=a+4|0;u=a;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[u>>2]=0;r[u>>2]=Ct(r[s>>2]|0,r[c>>2]|0)|0;if((r[u>>2]|0)<0|(r[u>>2]|0)>=15){r[o>>2]=0;p=r[o>>2]|0;m=a;return p|0}if((r[u>>2]|0)==6?(r[(r[l>>2]|0)+8>>2]|0)==0:0){r[o>>2]=Ln(r[s>>2]|0,r[c>>2]|0,r[r[l>>2]>>2]|0,r[(r[l>>2]|0)+4>>2]|0,r[d>>2]|0)|0;p=r[o>>2]|0;m=a;return p|0}r[o>>2]=fo[r[1032+((r[u>>2]|0)*24|0)+12>>2]&31](r[s>>2]|0,r[c>>2]|0,r[r[l>>2]>>2]|0,r[(r[l>>2]|0)+4>>2]|0,r[d>>2]|0)|0;p=r[o>>2]|0;m=a;return p|0}function An(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0;o=m;m=m+48|0;s=o+16|0;l=o+32|0;c=o+8|0;d=o+28|0;u=o+24|0;p=o;r[l>>2]=e;e=c;r[e>>2]=t;r[e+4>>2]=n;r[d>>2]=i;r[u>>2]=a;if(r[1032+((r[l>>2]|0)*24|0)+16>>2]|0){a=c;i=uo[r[1032+((r[l>>2]|0)*24|0)+16>>2]&15](r[a>>2]|0,r[a+4>>2]|0,r[d>>2]|0,r[u>>2]|0)|0;u=p;r[u>>2]=i;r[u+4>>2]=P;u=p;p=r[u+4>>2]|0;i=s;r[i>>2]=r[u>>2];r[i+4>>2]=p;f=s;h=f;g=r[h>>2]|0;_=f+4|0;v=_;y=r[v>>2]|0;P=y;m=o;return g|0}else{p=c;c=r[p+4>>2]|0;i=s;r[i>>2]=r[p>>2];r[i+4>>2]=c;f=s;h=f;g=r[h>>2]|0;_=f+4|0;v=_;y=r[v>>2]|0;P=y;m=o;return g|0}return 0}function Cn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0;a=m;m=m+32|0;o=a+8|0;s=a+24|0;l=a+20|0;c=a;d=a+16|0;r[s>>2]=e;r[l>>2]=t;t=c;r[t>>2]=n;r[t+4>>2]=i;do if(!(r[s>>2]|0)){i=o;r[i>>2]=-2;r[i+4>>2]=-1}else{i=c;if((r[i>>2]|0)==-1?(r[i+4>>2]|0)==-1:0){i=o;r[i>>2]=-1;r[i+4>>2]=-1;break}i=r[s>>2]|0;if((r[l>>2]|0)==-1){if(r[i+88>>2]|0){t=c;n=fo[r[(r[s>>2]|0)+88>>2]&31](r[s>>2]|0,r[l>>2]|0,r[t>>2]|0,r[t+4>>2]|0,r[(r[s>>2]|0)+92>>2]|0)|0;t=o;r[t>>2]=n;r[t+4>>2]=P;break}}else{r[d>>2]=bt(i,r[l>>2]|0)|0;if(!(r[d>>2]|0)){i=o;r[i>>2]=-1;r[i+4>>2]=-1;break}if(r[(r[d>>2]|0)+448>>2]|0){i=c;t=fo[r[(r[d>>2]|0)+448>>2]&31](r[s>>2]|0,r[l>>2]|0,r[i>>2]|0,r[i+4>>2]|0,r[(r[d>>2]|0)+452>>2]|0)|0;i=o;r[i>>2]=t;r[i+4>>2]=P;break}if(r[(r[s>>2]|0)+88>>2]|0){i=c;t=fo[r[(r[s>>2]|0)+88>>2]&31](r[s>>2]|0,r[l>>2]|0,r[i>>2]|0,r[i+4>>2]|0,r[(r[s>>2]|0)+92>>2]|0)|0;i=o;r[i>>2]=t;r[i+4>>2]=P;break}}i=o;r[i>>2]=-1;r[i+4>>2]=-1}while(0);s=o;P=r[s+4>>2]|0;m=a;return r[s>>2]|0}function Tn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,s=0,l=0,c=0,d=0,u=0,p=0;a=m;m=m+32|0;s=a+20|0;l=a+16|0;c=a+12|0;d=a+8|0;u=a+4|0;p=a;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[u>>2]=-1;r[p>>2]=-1;switch(r[(r[l>>2]|0)+360>>2]|0){case 1:{if((r[(r[d>>2]|0)+4>>2]|0)>7?(Ta(r[r[d>>2]>>2]|0,2728,7)|0)==0:0)r[u>>2]=7;break}case 3:case 2:{r[u>>2]=0;break}case 0:{if((r[(r[d>>2]|0)+4>>2]|0)>7?(Ta(r[r[d>>2]>>2]|0,2736,7)|0)==0:0)r[u>>2]=7;
break}case 11:{if((r[(r[d>>2]|0)+4>>2]|0)>9?(Ta(r[r[d>>2]>>2]|0,2744,8)|0)==0:0)r[u>>2]=9;break}case 8:{if((r[(r[d>>2]|0)+4>>2]|0)>4?((o[r[r[d>>2]>>2]>>0]|0)&7|0)==4:0){r[p>>2]=((o[(r[r[d>>2]>>2]|0)+1>>0]|0)<<16)+((o[(r[r[d>>2]>>2]|0)+2>>0]|0)<<8)+(o[(r[r[d>>2]>>2]|0)+3>>0]|0);r[u>>2]=4}break}case 13:{if((r[(r[d>>2]|0)+4>>2]|0)>8?(Ta(r[r[d>>2]>>2]|0,2753,8)|0)==0:0)r[u>>2]=8;break}case 14:{if((r[(r[d>>2]|0)+4>>2]|0)>7?(Ta(r[r[d>>2]>>2]|0,2762,7)|0)==0:0)r[u>>2]=7;break}default:{}}if((r[p>>2]|0)==-1)r[p>>2]=(r[(r[d>>2]|0)+4>>2]|0)-(r[u>>2]|0);if((r[u>>2]|0)<0){m=a;return 0}Vn(r[s>>2]|0,r[c>>2]|0,(r[r[d>>2]>>2]|0)+(r[u>>2]|0)|0,r[p>>2]|0)|0;m=a;return 0}function En(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;o=m;m=m+32|0;s=o+28|0;l=o+24|0;c=o+20|0;d=o+16|0;u=o+12|0;p=o+8|0;f=o+4|0;h=o;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=a;r[h>>2]=r[c>>2];a=Ar(72)|0;r[f>>2]=a;if(!a){r[s>>2]=0;g=r[s>>2]|0;m=o;return g|0}a=r[f>>2]|0;i=r[c>>2]|0;c=a+56|0;do{r[a>>2]=r[i>>2];a=a+4|0;i=i+4|0}while((a|0)<(c|0));i=Ar(r[(r[h>>2]|0)+4>>2]|0)|0;r[r[f>>2]>>2]=i;a=r[f>>2]|0;if(!i){Cr(a);r[s>>2]=0;g=r[s>>2]|0;m=o;return g|0}else{zr(r[a>>2]|0,r[r[h>>2]>>2]|0,r[(r[h>>2]|0)+4>>2]|0)|0;r[(r[f>>2]|0)+56>>2]=r[u>>2];r[(r[f>>2]|0)+68>>2]=r[d>>2];r[(r[f>>2]|0)+60>>2]=r[p>>2];r[(r[f>>2]|0)+64>>2]=r[l>>2];r[s>>2]=r[f>>2];g=r[s>>2]|0;m=o;return g|0}return 0}function $n(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;if(!(r[a>>2]|0)){r[i>>2]=-1;l=r[i>>2]|0;m=n;return l|0}r[s>>2]=Ar(12)|0;if(!(r[s>>2]|0)){r[i>>2]=-1;l=r[i>>2]|0;m=n;return l|0}else{r[(r[s>>2]|0)+8>>2]=r[o>>2];r[r[s>>2]>>2]=r[(r[a>>2]|0)+4>>2];r[(r[s>>2]|0)+4>>2]=r[(r[(r[a>>2]|0)+4>>2]|0)+4>>2];r[r[(r[s>>2]|0)+4>>2]>>2]=r[s>>2];r[(r[r[s>>2]>>2]|0)+4>>2]=r[s>>2];r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}return 0}function In(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;m=t;return(r[r[r[n>>2]>>2]>>2]|0)==(r[(r[n>>2]|0)+4>>2]|0)|0}function xn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0;t=m;m=m+16|0;n=t+12|0;i=t+8|0;a=t+4|0;o=t;r[i>>2]=e;r[a>>2]=r[i>>2];i=(r[a>>2]|0)+32|0;do if(((r[i>>2]|0)==-1?(r[i+4>>2]|0)==-1:0)?(e=(r[(r[a>>2]|0)+56>>2]|0)+488|0,(r[e>>2]|0)!=-1?1:(r[e+4>>2]|0)!=-1):0){r[o>>2]=Ct(r[(r[a>>2]|0)+64>>2]|0,r[(r[a>>2]|0)+68>>2]|0)|0;if(!((r[o>>2]|0)<0|(r[o>>2]|0)>=15)){e=(r[(r[a>>2]|0)+56>>2]|0)+488|0;s=jn(r[o>>2]|0,r[e>>2]|0,r[e+4>>2]|0,r[(r[a>>2]|0)+56>>2]|0,r[a>>2]|0,r[(r[(r[a>>2]|0)+56>>2]|0)+508>>2]|0)|0;e=(r[a>>2]|0)+32|0;r[e>>2]=s;r[e+4>>2]=P;e=(r[a>>2]|0)+32|0;s=r[e+4>>2]|0;l=(r[(r[a>>2]|0)+56>>2]|0)+488|0;r[l>>2]=r[e>>2];r[l+4>>2]=s;r[(r[(r[a>>2]|0)+56>>2]|0)+508>>2]=r[a>>2];break}r[n>>2]=0;c=r[n>>2]|0;m=t;return c|0}while(0);r[n>>2]=1;c=r[n>>2]|0;m=t;return c|0}function Pn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[i>>2]=e;r[a>>2]=t;r[o>>2]=r[(r[(r[i>>2]|0)+4>>2]|0)+4>>2];while(1){if((r[o>>2]|0)==(r[r[i>>2]>>2]|0)){s=5;break}if(!(co[r[a>>2]&15](r[(r[o>>2]|0)+8>>2]|0)|0)){s=5;break}r[o>>2]=r[(r[o>>2]|0)+4>>2]}if((s|0)==5){m=n;return}}function Dn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0;t=m;m=m+32|0;n=t+28|0;i=t+24|0;a=t+20|0;o=t+8|0;s=t;l=t+16|0;r[i>>2]=e;r[a>>2]=r[i>>2];i=(r[a>>2]|0)+32|0;if((r[i>>2]|0)==-1?(r[i+4>>2]|0)==-1:0){r[n>>2]=0;c=r[n>>2]|0;m=t;return c|0}i=(r[(r[a>>2]|0)+60>>2]|0)+424|0;e=r[i+4>>2]|0;d=o;r[d>>2]=r[i>>2];r[d+4>>2]=e;e=(r[(r[a>>2]|0)+60>>2]|0)+416|0;d=r[e+4>>2]|0;i=s;r[i>>2]=r[e>>2];r[i+4>>2]=d;d=(r[a>>2]|0)+32|0;i=r[d+4>>2]|0;e=(r[(r[a>>2]|0)+60>>2]|0)+424|0;r[e>>2]=r[d>>2];r[e+4>>2]=i;i=(r[a>>2]|0)+32|0;e=Cn(r[(r[a>>2]|0)+64>>2]|0,r[(r[a>>2]|0)+68>>2]|0,r[i>>2]|0,r[i+4>>2]|0)|0;i=(r[(r[a>>2]|0)+60>>2]|0)+416|0;r[i>>2]=e;r[i+4>>2]=P;i=r[a>>2]|0;if(r[(r[(r[a>>2]|0)+56>>2]|0)+468>>2]|0){e=uo[r[(r[i+56>>2]|0)+468>>2]&15](r[(r[a>>2]|0)+64>>2]|0,r[a>>2]|0,r[(r[a>>2]|0)+68>>2]|0,r[(r[(r[a>>2]|0)+56>>2]|0)+472>>2]|0)|0;r[l>>2]=e;if((e|0)<0?(r[(r[(r[a>>2]|0)+64>>2]|0)+76>>2]=r[l>>2],(r[l>>2]|0)==-1):0){r[n>>2]=-1;c=r[n>>2]|0;m=t;return c|0}}else if((r[(r[i+60>>2]|0)+396>>2]|0?(i=uo[r[(r[(r[a>>2]|0)+60>>2]|0)+396>>2]&15](r[(r[a>>2]|0)+64>>2]|0,r[a>>2]|0,r[(r[a>>2]|0)+68>>2]|0,r[(r[(r[a>>2]|0)+60>>2]|0)+400>>2]|0)|0,r[l>>2]=i,(i|0)<0):0)?(r[(r[(r[a>>2]|0)+64>>2]|0)+76>>2]=r[l>>2],(r[l>>2]|0)==-1):0){r[n>>2]=-1;c=r[n>>2]|0;m=t;return c|0}l=o;o=r[l+4>>2]|0;i=(r[(r[a>>2]|0)+60>>2]|0)+424|0;r[i>>2]=r[l>>2];r[i+4>>2]=o;o=s;s=r[o+4>>2]|0;i=(r[(r[a>>2]|0)+60>>2]|0)+416|0;r[i>>2]=r[o>>2];r[i+4>>2]=s;an(r[a>>2]|0);r[n>>2]=1;c=r[n>>2]|0;m=t;return c|0}function Rn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;n=m;m=m+32|0;i=n+20|0;a=n+16|0;o=n+12|0;s=n+8|0;l=n+4|0;c=n;r[a>>2]=e;r[o>>2]=t;r[s>>2]=(r[a>>2]|0)+112;r[c>>2]=0;t=(r[a>>2]|0)+64|0;r[t>>2]=(r[t>>2]|0)+(r[(r[s>>2]|0)+432>>2]|0);while(1){r[l>>2]=Be(r[s>>2]|0,r[o>>2]|0)|0;if(!(r[l>>2]|0)){d=3;break}t=r[l>>2]|0;if((r[l>>2]|0)<0){e=(r[a>>2]|0)+64|0;r[e>>2]=(r[e>>2]|0)+(0-t)}else{r[(r[s>>2]|0)+432>>2]=t;r[c>>2]=1}if(!((r[c>>2]|0)!=0^1)){d=8;break}}if((d|0)==3){r[i>>2]=-2;u=r[i>>2]|0;m=n;return u|0}else if((d|0)==8){r[i>>2]=r[(r[a>>2]|0)+64>>2];u=r[i>>2]|0;m=n;return u|0}return 0}function On(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0;i=m;m=m+16|0;a=i+8|0;o=i+4|0;s=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;n=Bn(r[a>>2]|0,r[s>>2]|0,r[(r[o>>2]|0)+8>>2]|0,r[(r[o>>2]|0)+12>>2]|0)|0;m=i;return n|0}function Nn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;a=m;m=m+32|0;o=a+20|0;s=a+16|0;l=a+12|0;c=a+8|0;d=a+4|0;u=a;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[u>>2]=0;r[u>>2]=Ct(r[s>>2]|0,r[c>>2]|0)|0;if((r[u>>2]|0)<0|(r[u>>2]|0)>=15){r[o>>2]=0;p=r[o>>2]|0;m=a;return p|0}if((r[u>>2]|0)==6?(Ie(r[l>>2]|0)|0)==0:0){r[o>>2]=Ln(r[s>>2]|0,r[c>>2]|0,r[(r[l>>2]|0)+8>>2]|0,r[(r[l>>2]|0)+12>>2]|0,r[d>>2]|0)|0;p=r[o>>2]|0;m=a;return p|0}r[o>>2]=fo[r[1032+((r[u>>2]|0)*24|0)+12>>2]&31](r[s>>2]|0,r[c>>2]|0,r[(r[l>>2]|0)+8>>2]|0,r[(r[l>>2]|0)+12>>2]|0,r[d>>2]|0)|0;p=r[o>>2]|0;m=a;return p|0}function Ln(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;s=m;m=m+64|0;l=s+52|0;c=s+48|0;d=s+44|0;u=s+40|0;p=s+36|0;f=s+28|0;h=s+24|0;g=s+8|0;_=s;v=s+20|0;y=s+16|0;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[s+32>>2]=a;r[f>>2]=r[u>>2];u=g;r[u>>2]=0;r[u+4>>2]=0;u=_;r[u>>2]=0;r[u+4>>2]=0;if((r[p>>2]|0)<48){r[l>>2]=0;b=r[l>>2]|0;m=s;return b|0}r[h>>2]=Ut((r[f>>2]|0)+12|0)|0;if(Fn(r[c>>2]|0,r[h>>2]|0)|0){r[l>>2]=1;b=r[l>>2]|0;m=s;return b|0}else{p=Bt((r[f>>2]|0)+20|0)|0;u=g;r[u>>2]=p;r[u+4>>2]=P;u=Bt((r[f>>2]|0)+28|0)|0;p=_;r[p>>2]=u;r[p+4>>2]=P;r[v>>2]=o[(r[f>>2]|0)+48>>0];f=r[c>>2]|0;p=r[h>>2]|0;u=g;g=r[u>>2]|0;a=r[u+4>>2]|0;u=_;_=Vr(1e3,0,r[u>>2]|0,r[u+4>>2]|0)|0;_t(f,p,g,a,_,P)|0;vt(r[c>>2]|0,r[h>>2]|0,r[v>>2]|0)|0;r[y>>2]=Un(r[c>>2]|0,r[d>>2]|0)|0;yt(r[c>>2]|0,r[d>>2]|0,(r[y>>2]|0)+1|0)|0;r[l>>2]=1;b=r[l>>2]|0;m=s;return b|0}return 0}function Fn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;do if(!(r[(r[a>>2]|0)+88>>2]|0)){r[s>>2]=bt(r[a>>2]|0,r[o>>2]|0)|0;if(!(r[s>>2]|0)){r[i>>2]=-20;break}if(r[(r[s>>2]|0)+448>>2]|0){r[i>>2]=1;break}else{r[i>>2]=0;break}}else r[i>>2]=1;while(0);m=n;return r[i>>2]|0}function Un(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;if(!(r[a>>2]|0)){r[i>>2]=-2;l=r[i>>2]|0;m=n;return l|0}r[s>>2]=bt(r[a>>2]|0,r[o>>2]|0)|0;if(!(r[s>>2]|0)){r[i>>2]=-20;l=r[i>>2]|0;m=n;return l|0}else{r[i>>2]=r[(r[s>>2]|0)+364>>2];l=r[i>>2]|0;m=n;return l|0}return 0}function Bn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;a=m;m=m+32|0;o=a+24|0;s=a+20|0;l=a+16|0;c=a+12|0;d=a+8|0;u=a+4|0;p=a;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[u>>2]=0;while(1){if((r[u>>2]|0)>=15){f=7;break}r[p>>2]=1032+((r[u>>2]|0)*24|0);if((r[d>>2]|0)>=(r[(r[p>>2]|0)+4>>2]|0)?(Ta(r[c>>2]|0,r[r[p>>2]>>2]|0,r[(r[p>>2]|0)+4>>2]|0)|0)==0:0){f=5;break}r[u>>2]=(r[u>>2]|0)+1}if((f|0)==5){Hn(r[s>>2]|0,r[l>>2]|0,r[u>>2]|0)|0;r[o>>2]=1;h=r[o>>2]|0;m=a;return h|0}else if((f|0)==7){Hn(r[s>>2]|0,r[l>>2]|0,15)|0;r[o>>2]=0;h=r[o>>2]|0;m=a;return h|0}return 0}function Hn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=bt(r[o>>2]|0,r[s>>2]|0)|0;if(!(r[c>>2]|0)){r[a>>2]=-20;d=r[a>>2]|0;m=i;return d|0}else{r[(r[c>>2]|0)+360>>2]=r[l>>2];r[a>>2]=0;d=r[a>>2]|0;m=i;return d|0}return 0}function jn(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;s=m;m=m+32|0;l=s+8|0;c=s+28|0;d=s;u=s+24|0;p=s+20|0;f=s+16|0;r[c>>2]=e;e=d;r[e>>2]=t;r[e+4>>2]=n;r[u>>2]=i;r[p>>2]=a;r[f>>2]=o;if(r[1032+((r[c>>2]|0)*24|0)+20>>2]|0){o=d;d=fo[r[1032+((r[c>>2]|0)*24|0)+20>>2]&31](r[o>>2]|0,r[o+4>>2]|0,r[u>>2]|0,r[p>>2]|0,r[f>>2]|0)|0;f=l;r[f>>2]=d;r[f+4>>2]=P;h=l;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=s;return _|0}else{f=l;r[f>>2]=0;r[f+4>>2]=0;h=l;g=h;_=r[g>>2]|0;v=h+4|0;y=v;b=r[y>>2]|0;P=b;m=s;return _|0}return 0}function Vn(e,t,n,a){e=e|0;t=t|0;n=n|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0;o=m;m=m+64|0;s=o+56|0;l=o+52|0;c=o+48|0;d=o+44|0;u=o+40|0;p=o+36|0;f=o+32|0;h=o+28|0;g=o+24|0;_=o+20|0;v=o+16|0;y=o+12|0;b=o+8|0;w=o+4|0;k=o;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=a;r[f>>2]=r[d>>2];r[k>>2]=0;if((r[u>>2]|0)<8){r[s>>2]=-1;M=r[s>>2]|0;m=o;return M|0}r[y>>2]=(r[f>>2]|0)+(r[u>>2]|0);r[v>>2]=i[(r[f>>2]|0)+3>>0]<<24&-16777216|i[(r[f>>2]|0)+2>>0]<<16&16711680|i[(r[f>>2]|0)+1>>0]<<8&65280|i[r[f>>2]>>0]&255;r[f>>2]=(r[f>>2]|0)+4;if((r[v>>2]|0)>>>0>((r[y>>2]|0)-(r[f>>2]|0)|0)>>>0){r[s>>2]=-1;M=r[s>>2]|0;m=o;return M|0}r[p>>2]=bt(r[l>>2]|0,r[c>>2]|0)|0;if(!(r[p>>2]|0)){r[s>>2]=-20;M=r[s>>2]|0;m=o;return M|0}if((r[v>>2]|0)>>>0>0){u=qn(r[f>>2]|0,r[v>>2]|0)|0;r[k>>2]=u;if(!u){r[s>>2]=-18;M=r[s>>2]|0;m=o;return M|0}u=(zn(r[l>>2]|0,r[c>>2]|0,r[k>>2]|0)|0)==-18;Cr(r[k>>2]|0);if(u){r[s>>2]=-18;M=r[s>>2]|0;m=o;return M|0}}r[f>>2]=(r[f>>2]|0)+(r[v>>2]|0);if(((r[f>>2]|0)+4|0)>>>0>(r[y>>2]|0)>>>0){r[s>>2]=-1;M=r[s>>2]|0;m=o;return M|0}r[g>>2]=i[(r[f>>2]|0)+3>>0]<<24&-16777216|i[(r[f>>2]|0)+2>>0]<<16&16711680|i[(r[f>>2]|0)+1>>0]<<8&65280|i[r[f>>2]>>0]&255;r[f>>2]=(r[f>>2]|0)+4;r[h>>2]=0;while(1){if((r[h>>2]|0)>=(r[g>>2]|0)){S=34;break}if(((r[f>>2]|0)+4|0)>>>0>(r[y>>2]|0)>>>0){S=17;break}r[v>>2]=i[(r[f>>2]|0)+3>>0]<<24&-16777216|i[(r[f>>2]|0)+2>>0]<<16&16711680|i[(r[f>>2]|0)+1>>0]<<8&65280|i[r[f>>2]>>0]&255;r[f>>2]=(r[f>>2]|0)+4;if((r[v>>2]|0)>>>0>((r[y>>2]|0)-(r[f>>2]|0)|0)>>>0){S=19;break}r[_>>2]=0;r[b>>2]=r[f>>2];r[w>>2]=Wn(r[f>>2]|0,61,r[v>>2]|0)|0;if(r[w>>2]|0){i[r[w>>2]>>0]=0;r[w>>2]=(r[w>>2]|0)+1;r[_>>2]=(r[f>>2]|0)+(r[v>>2]|0)-(r[w>>2]|0)}if(r[_>>2]|0){u=qn(r[w>>2]|0,r[_>>2]|0)|0;r[k>>2]=u;if(!u){S=24;break}u=(Gn(r[p>>2]|0,r[b>>2]|0,r[k>>2]|0)|0)==0;Cr(r[k>>2]|0);if(u){S=26;break}}else{u=qn(r[b>>2]|0,r[v>>2]|0)|0;r[k>>2]=u;if(!u){S=28;break}u=(Gn(r[p>>2]|0,r[k>>2]|0,0)|0)==0;Cr(r[k>>2]|0);if(u){S=30;break}}if(r[w>>2]|0)i[(r[w>>2]|0)+-1>>0]=61;r[f>>2]=(r[f>>2]|0)+(r[v>>2]|0);r[h>>2]=(r[h>>2]|0)+1}if((S|0)==17){r[s>>2]=-1;M=r[s>>2]|0;m=o;return M|0}else if((S|0)==19){r[s>>2]=-1;M=r[s>>2]|0;m=o;return M|0}else if((S|0)==24){r[s>>2]=-18;M=r[s>>2]|0;m=o;return M|0}else if((S|0)==26){r[s>>2]=-18;M=r[s>>2]|0;m=o;return M|0}else if((S|0)==28){r[s>>2]=-18;M=r[s>>2]|0;m=o;return M|0}else if((S|0)==30){r[s>>2]=-18;M=r[s>>2]|0;m=o;return M|0}else if((S|0)==34){r[s>>2]=0;M=r[s>>2]|0;m=o;return M|0}return 0}function qn(e,t){e=e|0;t=t|0;var n=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;a=n+12|0;o=n+8|0;s=n+4|0;l=n;r[o>>2]=e;r[s>>2]=t;do if(r[o>>2]|0){if(!(r[s>>2]|0)){r[a>>2]=0;break}r[s>>2]=(r[s>>2]|0)>>>0<4294967294?r[s>>2]|0:-2;r[l>>2]=Ar((r[s>>2]|0)+1|0)|0;if(!(r[l>>2]|0)){r[a>>2]=0;break}t=(vr(r[l>>2]|0,r[o>>2]|0,r[s>>2]|0)|0)==0;e=r[l>>2]|0;if(t){Cr(e);r[a>>2]=0;break}else{i[e+(r[s>>2]|0)>>0]=0;r[a>>2]=r[l>>2];break}}else r[a>>2]=0;while(0);m=n;return r[a>>2]|0}function zn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;if(!(r[o>>2]|0)){r[a>>2]=-2;d=r[a>>2]|0;m=i;return d|0}r[c>>2]=bt(r[o>>2]|0,r[s>>2]|0)|0;if(!(r[c>>2]|0)){r[a>>2]=-20;d=r[a>>2]|0;m=i;return d|0}if(r[(r[c>>2]|0)+412>>2]|0)Cr(r[(r[c>>2]|0)+412>>2]|0);s=ni(r[l>>2]|0)|0;r[(r[c>>2]|0)+412>>2]=s;if(!s){r[a>>2]=-18;d=r[a>>2]|0;m=i;return d|0}else{r[a>>2]=0;d=r[a>>2]|0;m=i;return d|0}return 0}function Wn(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;a=m;m=m+32|0;o=a+12|0;s=a+8|0;l=a+16|0;c=a+4|0;d=a;r[s>>2]=e;i[l>>0]=t;r[c>>2]=n;r[d>>2]=0;while(1){if(!(i[r[s>>2]>>0]|0)){u=7;break}if((r[d>>2]|0)>=(r[c>>2]|0)){u=7;break}if((i[r[s>>2]>>0]|0)==(i[l>>0]|0)){u=5;break}r[d>>2]=(r[d>>2]|0)+1;r[s>>2]=(r[s>>2]|0)+1}if((u|0)==5){r[o>>2]=r[s>>2];p=r[o>>2]|0;m=a;return p|0}else if((u|0)==7){r[o>>2]=0;p=r[o>>2]|0;m=a;return p|0}return 0}function Gn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;i=m;m=m+32|0;a=i+24|0;o=i+20|0;s=i+16|0;l=i+12|0;c=i+8|0;d=i+4|0;u=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[u>>2]=0;e:while(1){n=r[u>>2]|0;if((n|0)>=(Kn(r[(r[o>>2]|0)+416>>2]|0)|0)){p=14;break}r[c>>2]=Yn(r[(r[o>>2]|0)+416>>2]|0,r[u>>2]|0)|0;do if(r[r[c>>2]>>2]|0?(nr(r[s>>2]|0,r[r[c>>2]>>2]|0)|0)==0:0){n=r[l>>2]|0;if(!(r[(r[c>>2]|0)+4>>2]|0))if(!n){p=7;break e}else break;if(n|0?(Ca(r[l>>2]|0,r[(r[c>>2]|0)+4>>2]|0)|0)==0:0){p=12;break e}if((r[l>>2]|0)==0?(r[(r[c>>2]|0)+4>>2]|0)==0:0){p=12;break e}}while(0);r[u>>2]=(r[u>>2]|0)+1}if((p|0)==7){r[a>>2]=r[c>>2];f=r[a>>2]|0;m=i;return f|0}else if((p|0)==12){r[a>>2]=r[c>>2];f=r[a>>2]|0;m=i;return f|0}else if((p|0)==14){p=Xn(r[s>>2]|0,r[l>>2]|0)|0;r[d>>2]=p;if(!p){r[a>>2]=0;f=r[a>>2]|0;m=i;return f|0}else{r[a>>2]=Jn(r[(r[o>>2]|0)+416>>2]|0,r[d>>2]|0)|0;f=r[a>>2]|0;m=i;return f|0}}return 0}function Kn(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+4|0;i=t;r[i>>2]=e;if(!(r[i>>2]|0)){r[n>>2]=0;a=r[n>>2]|0;m=t;return a|0}else{r[n>>2]=r[(r[i>>2]|0)+4>>2];a=r[n>>2]|0;m=t;return a|0}return 0}function Yn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[a>>2]=e;r[o>>2]=t;if(!(r[a>>2]|0)){r[i>>2]=0;s=r[i>>2]|0;m=n;return s|0}if((r[o>>2]|0)>=(r[(r[a>>2]|0)+4>>2]|0)){r[i>>2]=0;s=r[i>>2]|0;m=n;return s|0}else{r[i>>2]=r[(r[(r[a>>2]|0)+8>>2]|0)+(r[o>>2]<<2)>>2];s=r[i>>2]|0;m=n;return s|0}return 0}function Xn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;if(!(ti(r[a>>2]|0)|0)){r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}r[s>>2]=Ar(8)|0;if(!(r[s>>2]|0)){r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}t=ni(r[a>>2]|0)|0;r[r[s>>2]>>2]=t;if(!(r[r[s>>2]>>2]|0)){Cr(r[s>>2]|0);r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}if(r[o>>2]|0){t=ni(r[o>>2]|0)|0;r[(r[s>>2]|0)+4>>2]=t;if(!(r[(r[s>>2]|0)+4>>2]|0)){Cr(r[r[s>>2]>>2]|0);Cr(r[s>>2]|0);r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}}else r[(r[s>>2]|0)+4>>2]=0;r[i>>2]=r[s>>2];l=r[i>>2]|0;m=n;return l|0}function Jn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[a>>2]=e;r[o>>2]=t;if(!(Zn(r[a>>2]|0)|0)){r[i>>2]=0;s=r[i>>2]|0;m=n;return s|0}else{r[(r[(r[a>>2]|0)+8>>2]|0)+((r[(r[a>>2]|0)+4>>2]|0)-1<<2)>>2]=r[o>>2];Qn(r[a>>2]|0);r[i>>2]=r[o>>2];s=r[i>>2]|0;m=n;return s|0}return 0}function Zn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0;t=m;m=m+16|0;n=t+12|0;i=t+8|0;a=t+4|0;o=t;r[i>>2]=e;e=(r[i>>2]|0)+4|0;r[e>>2]=(r[e>>2]|0)+1;do if((r[(r[i>>2]|0)+4>>2]|0)>(r[r[i>>2]>>2]|0)){if(!(r[r[i>>2]>>2]|0))r[o>>2]=1;else r[o>>2]=r[r[i>>2]>>2]<<1;r[a>>2]=Er(r[(r[i>>2]|0)+8>>2]|0,r[o>>2]<<2)|0;if(r[a>>2]|0){r[r[i>>2]>>2]=r[o>>2];r[(r[i>>2]|0)+8>>2]=r[a>>2];break}e=(r[i>>2]|0)+4|0;r[e>>2]=(r[e>>2]|0)+-1;r[n>>2]=0;s=r[n>>2]|0;m=t;return s|0}while(0);r[n>>2]=r[i>>2];s=r[n>>2]|0;m=t;return s|0}function Qn(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;if(!(r[(r[n>>2]|0)+12>>2]|0)){m=t;return}r[i>>2]=(r[(r[n>>2]|0)+4>>2]|0)-1;while(1){if((r[i>>2]|0)<=0){a=6;break}if((so[r[(r[n>>2]|0)+12>>2]&7](r[(r[(r[n>>2]|0)+8>>2]|0)+((r[i>>2]|0)-1<<2)>>2]|0,r[(r[(r[n>>2]|0)+8>>2]|0)+(r[i>>2]<<2)>>2]|0,r[(r[n>>2]|0)+16>>2]|0)|0)<=0){a=6;break}ei(r[(r[n>>2]|0)+8>>2]|0,r[i>>2]|0,(r[i>>2]|0)-1|0);r[i>>2]=(r[i>>2]|0)+-1}if((a|0)==6){m=t;return}}function ei(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0;i=m;m=m+16|0;a=i+12|0;o=i+8|0;s=i+4|0;l=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[l>>2]=r[(r[a>>2]|0)+(r[o>>2]<<2)>>2];r[(r[a>>2]|0)+(r[o>>2]<<2)>>2]=r[(r[a>>2]|0)+(r[s>>2]<<2)>>2];r[(r[a>>2]|0)+(r[s>>2]<<2)>>2]=r[l>>2];m=i;return}function ti(e){e=e|0;var t=0,n=0,a=0,o=0,s=0,l=0;t=m;m=m+16|0;n=t+8|0;a=t+4|0;o=t;r[a>>2]=e;if(!(r[a>>2]|0)){r[n>>2]=0;s=r[n>>2]|0;m=t;return s|0}r[o>>2]=r[a>>2];while(1){if(!(i[r[o>>2]>>0]|0)){l=10;break}if((i[r[o>>2]>>0]|0)<32){l=8;break}if((i[r[o>>2]>>0]|0)>125){l=8;break}if((i[r[o>>2]>>0]|0)==61){l=8;break}r[o>>2]=(r[o>>2]|0)+1}if((l|0)==8){r[n>>2]=0;s=r[n>>2]|0;m=t;return s|0}else if((l|0)==10){r[n>>2]=1;s=r[n>>2]|0;m=t;return s|0}return 0}function ni(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+8|0;i=t+4|0;a=t;r[i>>2]=e;do if(r[i>>2]|0){r[a>>2]=Ar((ii(r[i>>2]|0)|0)+1|0)|0;if(!(r[a>>2]|0)){r[n>>2]=0;break}else{r[n>>2]=ar(r[a>>2]|0,r[i>>2]|0)|0;break}}else r[n>>2]=0;while(0);m=t;return r[n>>2]|0}function ii(e){e=e|0;var t=0,n=0,i=0,a=0,o=0;t=m;m=m+16|0;n=t+8|0;i=t+4|0;a=t;r[i>>2]=e;if(!(r[i>>2]|0)){r[n>>2]=0;o=r[n>>2]|0;m=t;return o|0}else{r[a>>2]=ir(r[i>>2]|0)|0;r[n>>2]=(r[a>>2]|0)>>>0<4294967294?r[a>>2]|0:-2;o=r[n>>2]|0;m=t;return o|0}return 0}function ai(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+4|0;i=t;r[i>>2]=e;r[(r[i>>2]|0)+412>>2]=0;e=zt()|0;r[(r[i>>2]|0)+416>>2]=e;if(!(r[(r[i>>2]|0)+416>>2]|0)){r[n>>2]=-1;a=r[n>>2]|0;m=t;return a|0}else{oi(r[(r[i>>2]|0)+416>>2]|0,3,0)|0;r[n>>2]=0;a=r[n>>2]|0;m=t;return a|0}return 0}function ri(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0;i=m;m=m+16|0;a=i+12|0;o=i+8|0;s=i+4|0;r[o>>2]=e;r[s>>2]=t;r[i>>2]=n;do if((r[o>>2]|0)!=(r[s>>2]|0)){if(!((r[o>>2]|0)!=0&(r[s>>2]|0)!=0)){r[a>>2]=0;break}if(nr(r[r[o>>2]>>2]|0,r[r[s>>2]>>2]|0)|0){r[a>>2]=0;break}if(Ca(r[(r[o>>2]|0)+4>>2]|0,r[(r[s>>2]|0)+4>>2]|0)|0){r[a>>2]=0;break}else{r[a>>2]=1;break}}else r[a>>2]=1;while(0);m=i;return r[a>>2]|0}function oi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0;i=m;m=m+16|0;a=i+8|0;o=i+4|0;s=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[(r[a>>2]|0)+12>>2]=r[o>>2];r[(r[a>>2]|0)+16>>2]=r[s>>2];if(!(r[o>>2]|0)){m=i;return 0}si(r[a>>2]|0,0,(r[(r[a>>2]|0)+4>>2]|0)-1|0);m=i;return 0}function si(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[d>>2]=r[(r[a>>2]|0)+8>>2];if((r[o>>2]|0)>=(r[s>>2]|0)){m=i;return}ei(r[d>>2]|0,r[o>>2]|0,((r[o>>2]|0)+(r[s>>2]|0)|0)/2|0);r[c>>2]=r[o>>2];r[l>>2]=(r[o>>2]|0)+1;while(1){if((r[l>>2]|0)>(r[s>>2]|0))break;if((so[r[(r[a>>2]|0)+12>>2]&7](r[(r[d>>2]|0)+(r[l>>2]<<2)>>2]|0,r[(r[d>>2]|0)+(r[o>>2]<<2)>>2]|0,r[(r[a>>2]|0)+16>>2]|0)|0)<0){n=r[d>>2]|0;t=(r[c>>2]|0)+1|0;r[c>>2]=t;ei(n,t,r[l>>2]|0)}r[l>>2]=(r[l>>2]|0)+1}ei(r[d>>2]|0,r[o>>2]|0,r[c>>2]|0);si(r[a>>2]|0,r[o>>2]|0,(r[c>>2]|0)-1|0);si(r[a>>2]|0,(r[c>>2]|0)+1|0,r[s>>2]|0);m=i;return}function li(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0;i=m;m=m+16|0;a=i+12|0;o=i+8|0;s=i+4|0;l=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;if(!(r[o>>2]|0)){r[a>>2]=-2;c=r[a>>2]|0;m=i;return c|0}if(r[(r[o>>2]|0)+4>>2]|0){r[a>>2]=-3;c=r[a>>2]|0;m=i;return c|0}if((r[(r[o>>2]|0)+8>>2]|0)==0?(ci(r[o>>2]|0)|0)==-1:0){r[a>>2]=-18;c=r[a>>2]|0;m=i;return c|0}r[r[(r[o>>2]|0)+8>>2]>>2]=r[s>>2];r[(r[(r[o>>2]|0)+8>>2]|0)+4>>2]=r[l>>2];r[a>>2]=0;c=r[a>>2]|0;m=i;return c|0}function ci(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+4|0;i=t;r[i>>2]=e;e=Ar(40)|0;r[(r[i>>2]|0)+8>>2]=e;if(!(r[(r[i>>2]|0)+8>>2]|0)){r[n>>2]=-1;a=r[n>>2]|0;m=t;return a|0}else{e=r[(r[i>>2]|0)+8>>2]|0;i=e+40|0;do{r[e>>2]=0;e=e+4|0}while((e|0)<(i|0));r[n>>2]=0;a=r[n>>2]|0;m=t;return a|0}return 0}function di(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0;i=m;m=m+16|0;a=i+12|0;o=i+8|0;s=i+4|0;l=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;if(!(r[o>>2]|0)){r[a>>2]=-2;c=r[a>>2]|0;m=i;return c|0}if(r[(r[o>>2]|0)+4>>2]|0){r[a>>2]=-3;c=r[a>>2]|0;m=i;return c|0}if((r[(r[o>>2]|0)+8>>2]|0)==0?(ci(r[o>>2]|0)|0)==-1:0){r[a>>2]=-18;c=r[a>>2]|0;m=i;return c|0}r[(r[(r[o>>2]|0)+8>>2]|0)+16>>2]=r[s>>2];r[(r[(r[o>>2]|0)+8>>2]|0)+20>>2]=r[l>>2];r[a>>2]=0;c=r[a>>2]|0;m=i;return c|0}function ui(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0;i=m;m=m+16|0;a=i+12|0;o=i+8|0;s=i+4|0;l=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;if(!(r[o>>2]|0)){r[a>>2]=-2;c=r[a>>2]|0;m=i;return c|0}if(r[(r[o>>2]|0)+4>>2]|0){r[a>>2]=-3;c=r[a>>2]|0;m=i;return c|0}if((r[(r[o>>2]|0)+8>>2]|0)==0?(ci(r[o>>2]|0)|0)==-1:0){r[a>>2]=-18;c=r[a>>2]|0;m=i;return c|0}r[(r[(r[o>>2]|0)+8>>2]|0)+24>>2]=r[s>>2];r[(r[(r[o>>2]|0)+8>>2]|0)+28>>2]=r[l>>2];r[a>>2]=0;c=r[a>>2]|0;m=i;return c|0}function pi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;a=m;m=m+32|0;o=a+24|0;s=a+20|0;l=a+16|0;c=a+12|0;d=a+8|0;u=a+4|0;p=a;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;if(!(r[s>>2]|0)){r[o>>2]=-2;f=r[o>>2]|0;m=a;return f|0}r[u>>2]=(r[s>>2]|0)+112;if(r[r[s>>2]>>2]&1|0){r[o>>2]=-3;f=r[o>>2]|0;m=a;return f|0}do if((r[l>>2]|0)==-1){r[(r[u>>2]|0)+396>>2]=r[c>>2];r[(r[u>>2]|0)+400>>2]=r[d>>2]}else{r[p>>2]=bt(r[s>>2]|0,r[l>>2]|0)|0;if(!(r[p>>2]|0))r[p>>2]=Mn(r[s>>2]|0,r[l>>2]|0)|0;if(r[p>>2]|0){r[(r[p>>2]|0)+468>>2]=r[c>>2];r[(r[p>>2]|0)+472>>2]=r[d>>2];break}r[o>>2]=-18;f=r[o>>2]|0;m=a;return f|0}while(0);r[o>>2]=0;f=r[o>>2]|0;m=a;return f|0}function fi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;i=m;m=m+32|0;a=i+24|0;o=i+20|0;s=i+16|0;l=i+12|0;c=i+8|0;d=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;n=d;r[n>>2]=-1;r[n+4>>2]=-1;if(!(r[o>>2]|0)){r[a>>2]=-1;u=r[a>>2]|0;m=i;return u|0}if(r[r[o>>2]>>2]&1|0){r[a>>2]=-1;u=r[a>>2]|0;m=i;return u|0}if((r[s>>2]|0)==0&(r[l>>2]|0)==0){n=d;r[n>>2]=0;r[n+4>>2]=0}r[c>>2]=(r[o>>2]|0)+112;if(!((r[s>>2]|0)==0&(r[l>>2]|0)==1)){n=(r[c>>2]|0)+416|0;r[n>>2]=-1;r[n+4>>2]=-1}n=d;r[a>>2]=gn(r[o>>2]|0,r[s>>2]|0,r[n>>2]|0,r[n+4>>2]|0,r[l>>2]|0)|0;u=r[a>>2]|0;m=i;return u|0}function mi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;if(!(r[a>>2]|0)){r[i>>2]=-2;l=r[i>>2]|0;m=n;return l|0}r[s>>2]=bt(r[a>>2]|0,r[o>>2]|0)|0;if(!(r[s>>2]|0)){r[i>>2]=-20;l=r[i>>2]|0;m=n;return l|0}else{r[i>>2]=r[(r[s>>2]|0)+408>>2];l=r[i>>2]|0;m=n;return l|0}return 0}function hi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;a=m;m=m+32|0;o=a+20|0;s=a+16|0;l=a+12|0;c=a+8|0;d=a+4|0;u=a;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;if(!(r[s>>2]|0)){r[o>>2]=-2;p=r[o>>2]|0;m=a;return p|0}r[u>>2]=bt(r[s>>2]|0,r[l>>2]|0)|0;if(!(r[u>>2]|0)){r[o>>2]=-20;p=r[o>>2]|0;m=a;return p|0}else{l=(r[u>>2]|0)+376|0;s=r[l+4>>2]|0;i=r[c>>2]|0;r[i>>2]=r[l>>2];r[i+4>>2]=s;s=(r[u>>2]|0)+384|0;u=Hr(r[s>>2]|0,r[s+4>>2]|0,1e3,0)|0;s=r[d>>2]|0;r[s>>2]=u;r[s+4>>2]=P;r[o>>2]=0;p=r[o>>2]|0;m=a;return p|0}return 0}function gi(){var e=0,t=0,n=0,i=0,o=0;e=m;m=m+16|0;t=e+4|0;n=e;r[n>>2]=0;r[n>>2]=Tr(1,136)|0;if(!(r[n>>2]|0)){r[t>>2]=0;i=r[t>>2]|0;m=e;return i|0}o=_i()|0;r[(r[n>>2]|0)+112>>2]=o;o=r[n>>2]|0;if(!(r[(r[n>>2]|0)+112>>2]|0)){Cr(o);r[t>>2]=0;i=r[t>>2]|0;m=e;return i|0}else{a[o+116>>1]=0;a[(r[n>>2]|0)+118>>1]=0;r[(r[n>>2]|0)+120>>2]=0;o=(r[n>>2]|0)+128|0;r[o>>2]=0;r[o+4>>2]=0;r[t>>2]=r[n>>2];i=r[t>>2]|0;m=e;return i|0}return 0}function _i(){var e=0,t=0,n=0;e=m;m=m+16|0;t=e+4|0;n=e;r[n>>2]=Tr(1,8)|0;if(!(r[n>>2]|0))r[t>>2]=0;else r[t>>2]=r[n>>2];m=e;return r[t>>2]|0}function vi(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+4|0;i=t;r[i>>2]=e;if(!(r[i>>2]|0)){r[n>>2]=-2;a=r[n>>2]|0;m=t;return a|0}else{yi(r[(r[i>>2]|0)+112>>2]|0);Cr(r[i>>2]|0);r[n>>2]=0;a=r[n>>2]|0;m=t;return a|0}return 0}function yi(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;r[i>>2]=0;if(!(r[n>>2]|0)){m=t;return}if(r[(r[n>>2]|0)+4>>2]|0){r[i>>2]=0;while(1){a=r[(r[n>>2]|0)+4>>2]|0;if((r[i>>2]|0)>>>0>=(r[r[n>>2]>>2]|0)>>>0)break;if(r[a+((r[i>>2]|0)*12|0)+4>>2]|0){if(r[(r[(r[(r[n>>2]|0)+4>>2]|0)+((r[i>>2]|0)*12|0)+4>>2]|0)+48>>2]|0)Cr(r[(r[(r[(r[n>>2]|0)+4>>2]|0)+((r[i>>2]|0)*12|0)+4>>2]|0)+48>>2]|0);Cr(r[(r[(r[n>>2]|0)+4>>2]|0)+((r[i>>2]|0)*12|0)+4>>2]|0)}if(r[(r[(r[n>>2]|0)+4>>2]|0)+((r[i>>2]|0)*12|0)+8>>2]|0){if(r[(r[(r[(r[n>>2]|0)+4>>2]|0)+((r[i>>2]|0)*12|0)+8>>2]|0)+40>>2]|0)Cr(r[(r[(r[(r[n>>2]|0)+4>>2]|0)+((r[i>>2]|0)*12|0)+8>>2]|0)+40>>2]|0);Cr(r[(r[(r[n>>2]|0)+4>>2]|0)+((r[i>>2]|0)*12|0)+8>>2]|0)}r[i>>2]=(r[i>>2]|0)+1}Cr(a)}Cr(r[n>>2]|0);m=t;return}function bi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=0;do if(r[o>>2]|0){if(!(r[s>>2]|0)){r[a>>2]=-1;break}r[c>>2]=wi(r[o>>2]|0,r[l>>2]|0)|0;if(!(r[c>>2]|0)){r[a>>2]=-4;break}if(r[(r[c>>2]|0)+4>>2]|0){r[a>>2]=-1;break}else{r[(r[c>>2]|0)+4>>2]=r[s>>2];r[a>>2]=1;break}}else r[a>>2]=-1;while(0);m=i;return r[a>>2]|0}function wi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;r[s>>2]=0;t=ki(r[a>>2]|0,r[o>>2]|0)|0;r[s>>2]=t;do if(!t){r[s>>2]=Er(r[(r[a>>2]|0)+4>>2]|0,((r[r[a>>2]>>2]|0)+1|0)*12|0)|0;if(r[s>>2]|0){r[(r[a>>2]|0)+4>>2]=r[s>>2];e=r[a>>2]|0;r[e>>2]=(r[e>>2]|0)+1;r[s>>2]=(r[(r[a>>2]|0)+4>>2]|0)+(((r[r[a>>2]>>2]|0)-1|0)*12|0);r[r[s>>2]>>2]=r[o>>2];r[(r[s>>2]|0)+4>>2]=0;r[(r[s>>2]|0)+8>>2]=0;break}r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}while(0);r[i>>2]=r[s>>2];l=r[i>>2]|0;m=n;return l|0}function ki(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;r[s>>2]=0;r[s>>2]=0;while(1){if((r[s>>2]|0)>>>0>=(r[r[a>>2]>>2]|0)>>>0){l=6;break}if((r[(r[(r[a>>2]|0)+4>>2]|0)+((r[s>>2]|0)*12|0)>>2]|0)==(r[o>>2]|0)){l=4;break}r[s>>2]=(r[s>>2]|0)+1}if((l|0)==4){r[i>>2]=(r[(r[a>>2]|0)+4>>2]|0)+((r[s>>2]|0)*12|0);c=r[i>>2]|0;m=n;return c|0}else if((l|0)==6){r[i>>2]=0;c=r[i>>2]|0;m=n;return c|0}return 0}function Mi(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,s=0,l=0,c=0;n=m;m=m+16|0;i=n+12|0;o=n+8|0;s=n+4|0;l=n;r[o>>2]=e;r[s>>2]=t;r[l>>2]=-1;if(!(r[o>>2]|0)){r[i>>2]=-2;c=r[i>>2]|0;m=n;return c|0}if(!(r[s>>2]|0)){r[i>>2]=-13;c=r[i>>2]|0;m=n;return c|0}if(r[(r[s>>2]|0)+12>>2]|0){if((r[(r[o>>2]|0)+120>>2]|0)!=1){r[i>>2]=-1;c=r[i>>2]|0;m=n;return c|0}a[(r[o>>2]|0)+118>>1]=1;r[(r[o>>2]|0)+120>>2]=2;if(r[(r[s>>2]|0)+4>>2]|0){r[i>>2]=-6;c=r[i>>2]|0;m=n;return c|0}else{r[i>>2]=0;c=r[i>>2]|0;m=n;return c|0}}do if(!(Ta(r[r[s>>2]>>2]|0,2779,8)|0)){r[l>>2]=Si(r[o>>2]|0,r[s>>2]|0)|0;if(r[l>>2]|0){if(r[(r[s>>2]|0)+8>>2]|0){if(r[(r[o>>2]|0)+120>>2]|0)r[l>>2]=-14}else r[l>>2]=-12;r[(r[o>>2]|0)+120>>2]=1}}else{if(!(Ta(r[r[s>>2]>>2]|0,2770,8)|0)){r[l>>2]=Ai(r[o>>2]|0,r[s>>2]|0)|0;if(!(r[l>>2]|0))break;if((r[(r[o>>2]|0)+120>>2]|0)==1)break;r[l>>2]=-14;break}if(Ta(r[r[s>>2]>>2]|0,2788,6)|0){r[l>>2]=-1;break}a[(r[o>>2]|0)+116>>1]=1;r[l>>2]=Ci(r[o>>2]|0,r[s>>2]|0)|0;if(r[l>>2]|0?(r[(r[o>>2]|0)+120>>2]|0)!=1:0)r[l>>2]=-14}while(0);r[i>>2]=r[l>>2];c=r[i>>2]|0;m=n;return c|0}function Si(e,t){e=e|0;t=t|0;var n=0,a=0,o=0,l=0,c=0,d=0,u=0;n=m;m=m+32|0;a=n+16|0;o=n+12|0;l=n+8|0;c=n+4|0;d=n;r[o>>2]=e;r[l>>2]=t;r[d>>2]=0;if(!(r[o>>2]|0)){r[a>>2]=-2;u=r[a>>2]|0;m=n;return u|0}if(r[l>>2]|0?r[r[l>>2]>>2]|0:0){r[d>>2]=(r[r[l>>2]>>2]|0)+8;r[d>>2]=Pi(r[d>>2]|0,r[o>>2]|0)|0;r[d>>2]=Pi(r[d>>2]|0,(r[o>>2]|0)+2|0)|0;r[c>>2]=(s[r[o>>2]>>1]|0)<<16|(s[(r[o>>2]|0)+2>>1]|0);if((r[c>>2]|0)>>>0>262144){r[a>>2]=-11;u=r[a>>2]|0;m=n;return u|0}if((r[c>>2]|0)==262144?(r[(r[l>>2]|0)+4>>2]|0)!=80:0){r[a>>2]=-18;u=r[a>>2]|0;m=n;return u|0}if((s[r[o>>2]>>1]|0|0)==3){if((s[(r[o>>2]|0)+2>>1]|0|0)>=2?(r[(r[l>>2]|0)+4>>2]|0)!=112:0){r[a>>2]=-18;u=r[a>>2]|0;m=n;return u|0}if((s[(r[o>>2]|0)+2>>1]|0|0)==0?(r[(r[l>>2]|0)+4>>2]|0)!=64:0){r[a>>2]=-18;u=r[a>>2]|0;m=n;return u|0}}r[d>>2]=Ei(r[d>>2]|0,(r[o>>2]|0)+8|0)|0;r[d>>2]=Ei(r[d>>2]|0,(r[o>>2]|0)+16|0)|0;r[d>>2]=Ei(r[d>>2]|0,(r[o>>2]|0)+24|0)|0;r[d>>2]=Ei(r[d>>2]|0,(r[o>>2]|0)+32|0)|0;l=(r[o>>2]|0)+40|0;t=r[d>>2]|0;e=l+20|0;do{i[l>>0]=i[t>>0]|0;l=l+1|0;t=t+1|0}while((l|0)<(e|0));if((r[c>>2]|0)>>>0>=196610){r[d>>2]=(r[d>>2]|0)+20;if((s[r[o>>2]>>1]|0|0)==3){r[d>>2]=Ei(r[d>>2]|0,(r[o>>2]|0)+64|0)|0;r[d>>2]=Ei(r[d>>2]|0,(r[o>>2]|0)+72|0)|0;r[d>>2]=Ei(r[d>>2]|0,(r[o>>2]|0)+80|0)|0;r[d>>2]=Ei(r[d>>2]|0,(r[o>>2]|0)+88|0)|0}r[d>>2]=Ei(r[d>>2]|0,(r[o>>2]|0)+96|0)|0;Ei(r[d>>2]|0,(r[o>>2]|0)+104|0)|0}r[a>>2]=1;u=r[a>>2]|0;m=n;return u|0}r[a>>2]=-13;u=r[a>>2]|0;m=n;return u|0}function Ai(e,t){e=e|0;t=t|0;var n=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;n=m;m=m+32|0;a=n+20|0;o=n+16|0;s=n+12|0;l=n+8|0;c=n+4|0;d=n;r[o>>2]=e;r[s>>2]=t;r[l>>2]=0;r[c>>2]=-1;r[d>>2]=0;if(!(r[o>>2]|0)){r[a>>2]=-2;u=r[a>>2]|0;m=n;return u|0}if(r[s>>2]|0?r[r[s>>2]>>2]|0:0){if((r[(r[s>>2]|0)+4>>2]|0)<52){r[a>>2]=-7;u=r[a>>2]|0;m=n;return u|0}r[l>>2]=Tr(1,56)|0;if(!(r[l>>2]|0)){r[a>>2]=-4;u=r[a>>2]|0;m=n;return u|0}r[d>>2]=(r[r[s>>2]>>2]|0)+8;r[d>>2]=xi(r[d>>2]|0,r[l>>2]|0)|0;r[d>>2]=Ti(r[d>>2]|0,(r[l>>2]|0)+4|0)|0;r[d>>2]=xi(r[d>>2]|0,(r[l>>2]|0)+8|0)|0;r[d>>2]=Ei(r[d>>2]|0,(r[l>>2]|0)+16|0)|0;r[d>>2]=Ei(r[d>>2]|0,(r[l>>2]|0)+24|0)|0;r[d>>2]=Ei(r[d>>2]|0,(r[l>>2]|0)+32|0)|0;r[d>>2]=xi(r[d>>2]|0,(r[l>>2]|0)+40|0)|0;i[(r[l>>2]|0)+44>>0]=i[r[d>>2]>>0]|0;d=Tr((r[(r[s>>2]|0)+4>>2]|0)-52|0,1)|0;r[(r[l>>2]|0)+48>>2]=d;d=r[l>>2]|0;if(!(r[(r[l>>2]|0)+48>>2]|0)){Cr(d);r[a>>2]=-4;u=r[a>>2]|0;m=n;return u|0}zr(r[d+48>>2]|0,(r[r[s>>2]>>2]|0)+52|0,(r[(r[s>>2]|0)+4>>2]|0)-52|0)|0;r[c>>2]=bi(r[(r[o>>2]|0)+112>>2]|0,r[l>>2]|0,r[(r[l>>2]|0)+4>>2]|0)|0;if((r[c>>2]|0)<0)Cr(r[l>>2]|0);r[a>>2]=r[c>>2];u=r[a>>2]|0;m=n;return u|0}r[a>>2]=-13;u=r[a>>2]|0;m=n;return u|0}function Ci(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;n=m;m=m+80|0;i=n+76|0;a=n+72|0;o=n+68|0;l=n+48|0;c=n+40|0;d=n+32|0;u=n+24|0;p=n+64|0;f=n+16|0;h=n+60|0;g=n+56|0;_=n+8|0;v=n;r[a>>2]=e;r[o>>2]=t;t=l;r[t>>2]=0;r[t+4>>2]=0;t=c;r[t>>2]=0;r[t+4>>2]=0;t=d;r[t>>2]=0;r[t+4>>2]=0;t=u;r[t>>2]=1e3;r[t+4>>2]=0;r[p>>2]=0;t=f;r[t>>2]=-1;r[t+4>>2]=-1;r[h>>2]=0;r[g>>2]=-1;if(!(r[a>>2]|0)){r[i>>2]=-2;y=r[i>>2]|0;m=n;return y|0}if(r[o>>2]|0?r[r[o>>2]>>2]|0:0){r[p>>2]=Tr(1,48)|0;if(!(r[p>>2]|0)){r[i>>2]=-4;y=r[i>>2]|0;m=n;return y|0}r[h>>2]=(r[r[o>>2]>>2]|0)+6;r[h>>2]=Ti(r[h>>2]|0,r[p>>2]|0)|0;r[h>>2]=Ei(r[h>>2]|0,(r[p>>2]|0)+8|0)|0;r[h>>2]=Ei(r[h>>2]|0,(r[p>>2]|0)+16|0)|0;if(((s[r[a>>2]>>1]|0)<<16|(s[(r[a>>2]|0)+2>>1]|0)|0)==262144){r[h>>2]=Ei(r[h>>2]|0,(r[p>>2]|0)+24|0)|0;r[h>>2]=Ei(r[h>>2]|0,(r[p>>2]|0)+32|0)|0}t=(r[p>>2]|0)+16|0;do if((r[t>>2]|0)==0&(r[t+4>>2]|0)==0)r[g>>2]=-9;else{e=(r[p>>2]|0)+8|0;b=Vr(r[e>>2]|0,r[e+4>>2]|0,2,0)|0;e=Rr(26,0,b|0,P|0)|0;b=f;r[b>>2]=e;r[b+4>>2]=P;b=f;e=r[b+4>>2]|0;w=r[(r[o>>2]|0)+4>>2]|0;k=((w|0)<0)<<31>>31;if((e|0)>(k|0)|((e|0)==(k|0)?(r[b>>2]|0)>>>0>w>>>0:0)){r[g>>2]=-10;break}w=Tr(r[(r[p>>2]|0)+8>>2]|0,16)|0;r[(r[p>>2]|0)+40>>2]=w;if(!(r[(r[p>>2]|0)+40>>2]|0)){r[g>>2]=-4;break}w=l;r[w>>2]=0;r[w+4>>2]=0;while(1){w=l;b=r[w+4>>2]|0;k=(r[p>>2]|0)+8|0;e=r[k+4>>2]|0;if(!((b|0)<(e|0)|((b|0)==(e|0)?(r[w>>2]|0)>>>0<(r[k>>2]|0)>>>0:0)))break;k=_;r[k>>2]=0;r[k+4>>2]=0;k=v;r[k>>2]=0;r[k+4>>2]=0;r[h>>2]=$i(r[h>>2]|0,_)|0;k=_;w=c;e=Rr(r[w>>2]|0,r[w+4>>2]|0,r[k>>2]|0,r[k+4>>2]|0)|0;k=c;r[k>>2]=e;r[k+4>>2]=P;r[h>>2]=$i(r[h>>2]|0,v)|0;k=v;e=d;w=Rr(r[e>>2]|0,r[e+4>>2]|0,r[k>>2]|0,r[k+4>>2]|0)|0;k=d;r[k>>2]=w;r[k+4>>2]=P;k=c;w=r[k+4>>2]|0;e=(r[(r[p>>2]|0)+40>>2]|0)+(r[l>>2]<<4)|0;r[e>>2]=r[k>>2];r[e+4>>2]=w;w=d;e=u;k=Vr(r[w>>2]|0,r[w+4>>2]|0,r[e>>2]|0,r[e+4>>2]|0)|0;e=(r[p>>2]|0)+16|0;w=Br(k|0,P|0,r[e>>2]|0,r[e+4>>2]|0)|0;e=(r[(r[p>>2]|0)+40>>2]|0)+(r[l>>2]<<4)+8|0;r[e>>2]=w;r[e+4>>2]=P;e=l;w=Rr(r[e>>2]|0,r[e+4>>2]|0,1,0)|0;e=l;r[e>>2]=w;r[e+4>>2]=P}r[g>>2]=Ii(r[(r[a>>2]|0)+112>>2]|0,r[p>>2]|0,r[r[p>>2]>>2]|0)|0}while(0);if((r[g>>2]|0)<0)Cr(r[p>>2]|0);r[i>>2]=r[g>>2];y=r[i>>2]|0;m=n;return y|0}r[i>>2]=-13;y=r[i>>2]|0;m=n;return y|0}function Ti(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,s=0,l=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;s=n;r[a>>2]=e;r[s>>2]=t;if((r[a>>2]|0)==0|(r[s>>2]|0)==0){r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}else{r[r[s>>2]>>2]=o[r[a>>2]>>0]|0|(o[(r[a>>2]|0)+1>>0]|0)<<8|(o[(r[a>>2]|0)+2>>0]|0)<<16|(o[(r[a>>2]|0)+3>>0]|0)<<24;r[i>>2]=(r[a>>2]|0)+4;
l=r[i>>2]|0;m=n;return l|0}return 0}function Ei(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0;n=m;m=m+32|0;i=n+16|0;a=n+12|0;o=n+8|0;s=n+4|0;l=n;r[a>>2]=e;r[o>>2]=t;r[s>>2]=-1;r[l>>2]=-1;if((r[a>>2]|0)==0|(r[o>>2]|0)==0){r[i>>2]=0;c=r[i>>2]|0;m=n;return c|0}else{r[a>>2]=xi(r[a>>2]|0,s)|0;r[a>>2]=Ti(r[a>>2]|0,l)|0;t=r[l>>2]|0;l=Rr(r[s>>2]|0,0,0,t|0)|0;t=r[o>>2]|0;r[t>>2]=l;r[t+4>>2]=P;r[i>>2]=r[a>>2];c=r[i>>2]|0;m=n;return c|0}return 0}function $i(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,s=0,l=0,c=0,d=0,u=0;n=m;m=m+32|0;i=n+16|0;a=n+12|0;s=n+8|0;l=n;r[i>>2]=e;r[a>>2]=t;r[s>>2]=0;t=l;r[t>>2]=0;r[t+4>>2]=0;t=r[a>>2]|0;r[t>>2]=0;r[t+4>>2]=0;do{t=l;r[t>>2]=o[r[i>>2]>>0];r[t+4>>2]=0;t=Lr(r[l>>2]&127|0,0,r[s>>2]|0)|0;e=r[a>>2]|0;c=e;d=r[c+4>>2]|P;u=e;r[u>>2]=r[c>>2]|t;r[u+4>>2]=d;r[s>>2]=(r[s>>2]|0)+7;r[i>>2]=(r[i>>2]|0)+1}while(0?1:(r[l>>2]&128|0)!=128);m=n;return r[i>>2]|0}function Ii(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=0;do if(r[o>>2]|0){if(!(r[s>>2]|0)){r[a>>2]=-1;break}r[c>>2]=wi(r[o>>2]|0,r[l>>2]|0)|0;if(!(r[c>>2]|0)){r[a>>2]=-4;break}if(r[(r[c>>2]|0)+8>>2]|0){r[a>>2]=-1;break}else{r[(r[c>>2]|0)+8>>2]=r[s>>2];r[a>>2]=1;break}}else r[a>>2]=-1;while(0);m=i;return r[a>>2]|0}function xi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,s=0,l=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;s=n;r[a>>2]=e;r[s>>2]=t;if((r[a>>2]|0)==0|(r[s>>2]|0)==0){r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}else{r[r[s>>2]>>2]=o[r[a>>2]>>0]|0|(o[(r[a>>2]|0)+1>>0]|0)<<8|(o[(r[a>>2]|0)+2>>0]|0)<<16|(o[(r[a>>2]|0)+3>>0]|0)<<24;r[i>>2]=(r[a>>2]|0)+4;l=r[i>>2]|0;m=n;return l|0}return 0}function Pi(e,t){e=e|0;t=t|0;var n=0,i=0,s=0,l=0,c=0;n=m;m=m+16|0;i=n+8|0;s=n+4|0;l=n;r[s>>2]=e;r[l>>2]=t;if((r[s>>2]|0)==0|(r[l>>2]|0)==0){r[i>>2]=0;c=r[i>>2]|0;m=n;return c|0}else{a[r[l>>2]>>1]=o[r[s>>2]>>0]|0|(o[(r[s>>2]|0)+1>>0]|0)<<8;r[i>>2]=(r[s>>2]|0)+2;c=r[i>>2]|0;m=n;return c|0}return 0}function Di(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,s=0,l=0,c=0;n=m;m=m+16|0;i=n+12|0;o=n+8|0;s=n+4|0;l=n;r[o>>2]=e;r[s>>2]=t;r[l>>2]=-1;t=Ri(r[o>>2]|0,r[s>>2]|0)|0;r[l>>2]=t;if((t|0)<0){r[i>>2]=r[l>>2];c=r[i>>2]|0;m=n;return c|0}else{a[r[s>>2]>>1]=a[r[o>>2]>>1]|0;r[i>>2]=0;c=r[i>>2]|0;m=n;return c|0}return 0}function Ri(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,s=0;n=m;m=m+16|0;i=n+8|0;o=n+4|0;s=n;r[o>>2]=e;r[s>>2]=t;do if(r[o>>2]|0){if(!(a[(r[o>>2]|0)+118>>1]|0)){r[i>>2]=-5;break}if(!(r[s>>2]|0)){r[i>>2]=-16;break}else{r[i>>2]=0;break}}else r[i>>2]=-2;while(0);m=n;return r[i>>2]|0}function Oi(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,s=0,l=0,c=0;n=m;m=m+16|0;i=n+12|0;o=n+8|0;s=n+4|0;l=n;r[o>>2]=e;r[s>>2]=t;r[l>>2]=-1;t=Ri(r[o>>2]|0,r[s>>2]|0)|0;r[l>>2]=t;if((t|0)<0){r[i>>2]=r[l>>2];c=r[i>>2]|0;m=n;return c|0}else{a[r[s>>2]>>1]=a[(r[o>>2]|0)+2>>1]|0;r[i>>2]=0;c=r[i>>2]|0;m=n;return c|0}return 0}function Ni(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,l=0,c=0,d=0;n=m;m=m+32|0;i=n+16|0;a=n+12|0;o=n+8|0;l=n+4|0;c=n;r[a>>2]=e;r[o>>2]=t;r[l>>2]=-1;r[c>>2]=0;t=Ri(r[a>>2]|0,r[o>>2]|0)|0;r[l>>2]=t;if((t|0)<0){r[i>>2]=r[l>>2];d=r[i>>2]|0;m=n;return d|0}r[c>>2]=(s[r[a>>2]>>1]|0)<<16|(s[(r[a>>2]|0)+2>>1]|0);if((r[c>>2]|0)>>>0<196610){r[i>>2]=-1;d=r[i>>2]|0;m=n;return d|0}else{c=(r[a>>2]|0)+96|0;a=r[c+4>>2]|0;l=r[o>>2]|0;r[l>>2]=r[c>>2];r[l+4>>2]=a;r[i>>2]=0;d=r[i>>2]|0;m=n;return d|0}return 0}function Li(e,t,n,i,o,l){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;l=l|0;var c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0;c=m;m=m+64|0;d=c+48|0;u=c+44|0;p=c+40|0;f=c+36|0;h=c+8|0;g=c+32|0;_=c+28|0;v=c+24|0;y=c+20|0;b=c;w=c+16|0;r[u>>2]=e;r[p>>2]=t;r[f>>2]=n;n=h;r[n>>2]=i;r[n+4>>2]=o;r[g>>2]=l;r[_>>2]=0;r[v>>2]=-1;r[y>>2]=0;l=b;r[l>>2]=-1;r[l+4>>2]=2147483647;l=Ri(r[u>>2]|0,r[g>>2]|0)|0;r[v>>2]=l;if((l|0)<0){r[d>>2]=r[v>>2];k=r[d>>2]|0;m=c;return k|0}if(!(a[(r[u>>2]|0)+116>>1]|0)){r[d>>2]=-19;k=r[d>>2]|0;m=c;return k|0}if((r[p>>2]|0)==0|(r[f>>2]|0)==0){r[d>>2]=-1;k=r[d>>2]|0;m=c;return k|0}do if((s[r[u>>2]>>1]|0)==3){v=(r[u>>2]|0)+80|0;l=r[v+4>>2]|0;o=h;n=r[o+4>>2]|0;if(!((l|0)<(n|0)|((l|0)==(n|0)?(r[v>>2]|0)>>>0<(r[o>>2]|0)>>>0:0))?(o=h,v=r[o+4>>2]|0,n=(r[u>>2]|0)+64|0,l=r[n+4>>2]|0,!((v|0)<(l|0)|((v|0)==(l|0)?(r[o>>2]|0)>>>0<(r[n>>2]|0)>>>0:0))):0)break;r[d>>2]=-17;k=r[d>>2]|0;m=c;return k|0}while(0);r[y>>2]=0;while(1){if((r[y>>2]|0)>>>0>=(r[f>>2]|0)>>>0){M=23;break}r[w>>2]=0;n=Fi(r[(r[u>>2]|0)+112>>2]|0,r[(r[p>>2]|0)+(r[y>>2]<<2)>>2]|0)|0;r[_>>2]=n;if(!n){M=14;break}if((s[r[u>>2]>>1]|0)==4){n=(r[_>>2]|0)+32|0;o=r[n+4>>2]|0;l=h;v=r[l+4>>2]|0;if((o|0)<(v|0)|((o|0)==(v|0)?(r[n>>2]|0)>>>0<(r[l>>2]|0)>>>0:0)){M=18;break}l=h;n=r[l+4>>2]|0;v=(r[_>>2]|0)+24|0;o=r[v+4>>2]|0;if((n|0)<(o|0)|((n|0)==(o|0)?(r[l>>2]|0)>>>0<(r[v>>2]|0)>>>0:0)){M=18;break}}v=h;r[w>>2]=Ui(r[_>>2]|0,r[v>>2]|0,r[v+4>>2]|0)|0;if(r[w>>2]|0?(v=r[w>>2]|0,l=r[v+4>>2]|0,o=b,n=r[o+4>>2]|0,!((l|0)>(n|0)|((l|0)==(n|0)?(r[v>>2]|0)>>>0>(r[o>>2]|0)>>>0:0))):0){o=r[w>>2]|0;v=r[o+4>>2]|0;n=b;r[n>>2]=r[o>>2];r[n+4>>2]=v}r[y>>2]=(r[y>>2]|0)+1}if((M|0)==14){r[d>>2]=-8;k=r[d>>2]|0;m=c;return k|0}else if((M|0)==18){r[d>>2]=-17;k=r[d>>2]|0;m=c;return k|0}else if((M|0)==23){M=b;if((r[M>>2]|0)==-1?(r[M+4>>2]|0)==2147483647:0){r[d>>2]=-1;k=r[d>>2]|0;m=c;return k|0}else{M=b;b=r[M+4>>2]|0;y=r[g>>2]|0;r[y>>2]=r[M>>2];r[y+4>>2]=b;r[d>>2]=0;k=r[d>>2]|0;m=c;return k|0}}return 0}function Fi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[a>>2]=e;r[o>>2]=t;r[s>>2]=0;if(!(r[a>>2]|0)){r[i>>2]=0;l=r[i>>2]|0;m=n;return l|0}r[s>>2]=ki(r[a>>2]|0,r[o>>2]|0)|0;if(!(r[s>>2]|0))c=0;else c=r[(r[s>>2]|0)+8>>2]|0;r[i>>2]=c;l=r[i>>2]|0;m=n;return l|0}function Ui(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0;i=m;m=m+48|0;a=i+36|0;o=i+32|0;s=i+24|0;l=i+16|0;c=i+8|0;d=i;r[o>>2]=e;e=s;r[e>>2]=t;r[e+4>>2]=n;n=l;r[n>>2]=0;r[n+4>>2]=0;n=c;r[n>>2]=0;r[n+4>>2]=0;if(!(r[o>>2]|0)){r[a>>2]=0;u=r[a>>2]|0;m=i;return u|0}n=(r[o>>2]|0)+8|0;e=Dr(r[n>>2]|0,r[n+4>>2]|0,1,0)|0;n=c;r[n>>2]=e;r[n+4>>2]=P;while(1){n=c;e=r[n+4>>2]|0;t=l;p=r[t+4>>2]|0;if(!((e|0)>(p|0)|((e|0)==(p|0)?(r[n>>2]|0)>>>0>(r[t>>2]|0)>>>0:0)))break;t=l;n=c;p=Rr(r[t>>2]|0,r[t+4>>2]|0,r[n>>2]|0,r[n+4>>2]|0)|0;n=Rr(p|0,P|0,1,0)|0;p=Pr(n|0,P|0,1)|0;n=d;r[n>>2]=p;r[n+4>>2]=P;n=(r[(r[o>>2]|0)+40>>2]|0)+(r[d>>2]<<4)+8|0;p=s;if((r[n>>2]|0)==(r[p>>2]|0)?(r[n+4>>2]|0)==(r[p+4>>2]|0):0){f=6;break}p=(r[(r[o>>2]|0)+40>>2]|0)+(r[d>>2]<<4)+8|0;n=r[p+4>>2]|0;t=s;e=r[t+4>>2]|0;h=d;g=r[h>>2]|0;_=r[h+4>>2]|0;if((n|0)<(e|0)|((n|0)==(e|0)?(r[p>>2]|0)>>>0<(r[t>>2]|0)>>>0:0)){t=l;r[t>>2]=g;r[t+4>>2]=_;continue}else{t=Dr(g|0,_|0,1,0)|0;_=c;r[_>>2]=t;r[_+4>>2]=P;continue}}if((f|0)==6){f=d;d=r[f+4>>2]|0;c=l;r[c>>2]=r[f>>2];r[c+4>>2]=d}r[a>>2]=(r[(r[o>>2]|0)+40>>2]|0)+(r[l>>2]<<4);u=r[a>>2]|0;m=i;return u|0}function Bi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,l=0,c=0,d=0,u=0,p=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;l=i+12|0;c=i+8|0;d=i+4|0;u=i;r[o>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=-1;n=Ri(r[o>>2]|0,r[c>>2]|0)|0;r[d>>2]=n;if((n|0)<0){r[a>>2]=r[d>>2];p=r[a>>2]|0;m=i;return p|0}do if((s[r[o>>2]>>1]|0|0)<4){d=(r[o>>2]|0)+64|0;n=r[d+4>>2]|0;t=r[c>>2]|0;r[t>>2]=r[d>>2];r[t+4>>2]=n}else{r[u>>2]=0;n=Fi(r[(r[o>>2]|0)+112>>2]|0,r[l>>2]|0)|0;r[u>>2]=n;if(n|0){n=(r[u>>2]|0)+24|0;t=r[n+4>>2]|0;d=r[c>>2]|0;r[d>>2]=r[n>>2];r[d+4>>2]=t;break}r[a>>2]=-8;p=r[a>>2]|0;m=i;return p|0}while(0);r[a>>2]=0;p=r[a>>2]|0;m=i;return p|0}function Hi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,l=0,c=0,d=0,u=0,p=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;l=i+12|0;c=i+8|0;d=i+4|0;u=i;r[o>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=-1;n=Ri(r[o>>2]|0,r[c>>2]|0)|0;r[d>>2]=n;if((n|0)<0){r[a>>2]=r[d>>2];p=r[a>>2]|0;m=i;return p|0}do if((s[r[o>>2]>>1]|0|0)<4){d=(r[o>>2]|0)+72|0;n=r[d+4>>2]|0;t=r[c>>2]|0;r[t>>2]=r[d>>2];r[t+4>>2]=n}else{r[u>>2]=0;n=Fi(r[(r[o>>2]|0)+112>>2]|0,r[l>>2]|0)|0;r[u>>2]=n;if(n|0){n=(r[u>>2]|0)+16|0;t=r[n+4>>2]|0;d=r[c>>2]|0;r[d>>2]=r[n>>2];r[d+4>>2]=t;break}r[a>>2]=-8;p=r[a>>2]|0;m=i;return p|0}while(0);r[a>>2]=0;p=r[a>>2]|0;m=i;return p|0}function ji(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,l=0,c=0,d=0,u=0,p=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;l=i+12|0;c=i+8|0;d=i+4|0;u=i;r[o>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=-1;n=Ri(r[o>>2]|0,r[c>>2]|0)|0;r[d>>2]=n;if((n|0)<0){r[a>>2]=r[d>>2];p=r[a>>2]|0;m=i;return p|0}do if((s[r[o>>2]>>1]|0|0)<4){d=(r[o>>2]|0)+80|0;n=r[d+4>>2]|0;t=r[c>>2]|0;r[t>>2]=r[d>>2];r[t+4>>2]=n}else{r[u>>2]=0;n=Fi(r[(r[o>>2]|0)+112>>2]|0,r[l>>2]|0)|0;r[u>>2]=n;if(n|0){n=(r[u>>2]|0)+32|0;t=r[n+4>>2]|0;d=r[c>>2]|0;r[d>>2]=r[n>>2];r[d+4>>2]=t;break}r[a>>2]=-8;p=r[a>>2]|0;m=i;return p|0}while(0);r[a>>2]=0;p=r[a>>2]|0;m=i;return p|0}function Vi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,l=0,c=0,d=0,u=0,p=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;l=i+12|0;c=i+8|0;d=i+4|0;u=i;r[o>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=-1;n=Ri(r[o>>2]|0,r[c>>2]|0)|0;r[d>>2]=n;if((n|0)<0){r[a>>2]=r[d>>2];p=r[a>>2]|0;m=i;return p|0}do if((s[r[o>>2]>>1]|0|0)<4){d=(r[o>>2]|0)+88|0;n=r[d+4>>2]|0;t=r[c>>2]|0;r[t>>2]=r[d>>2];r[t+4>>2]=n}else{r[u>>2]=0;n=Fi(r[(r[o>>2]|0)+112>>2]|0,r[l>>2]|0)|0;r[u>>2]=n;if(n|0){n=(r[u>>2]|0)+16|0;t=r[n+4>>2]|0;d=r[c>>2]|0;r[d>>2]=r[n>>2];r[d+4>>2]=t;break}r[a>>2]=-8;p=r[a>>2]|0;m=i;return p|0}while(0);r[a>>2]=0;p=r[a>>2]|0;m=i;return p|0}function qi(){var e=0;r[1394]=0;r[1401]=oa()|0;e=Vt(32)|0;r[1395]=e;pi(e,-1,8,0)|0;li(r[1395]|0,4,r[1401]|0)|0;di(r[1395]|0,5,r[1401]|0)|0;ui(r[1395]|0,8,r[1401]|0)|0;r[1396]=gi()|0;return}function zi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0;i=m;m=m+16|0;e=i+8|0;a=i;e:do switch(r[1394]|0){case 0:{if(!(r[t+8>>2]|0))if(!(r[1393]|0)){r[1394]=2;le(r[1390]|0,r[1392]|0);o=Xi(t,n)|0;break e}else{r[1394]=1;o=Yi(t,n)|0;break e}s=Ct(r[1395]|0,n)|0;if(!(r[1389]|s)){r[1389]=1;r[1390]=2846;r[1398]=n;be(r[t>>2]|0,r[t+4>>2]|0,-1,-1,0);o=0;break e}l=(r[1391]|0)==0;if((s|0)==1&l){r[1391]=1;r[1392]=2853;r[1399]=n;_e(r[t>>2]|0,r[t+4>>2]|0,-1);o=0;break e}if((s|0)==13&l){r[1391]=1;r[1392]=2860;r[1399]=n;_e(r[t>>2]|0,r[t+4>>2]|0,-1);o=0;break e}if((s|0)==6&(r[1393]|0)==0){r[1393]=1;r[1400]=n;s=Mi(r[1396]|0,t)|0;if(!s){r[1397]=1;o=0;break e}if((s|0)<=0){r[a>>2]=s;Sr(2865,a)|0;o=-1}else o=0}else o=0;break}case 1:{o=Yi(t,n)|0;break}case 2:{o=Xi(t,n)|0;break}default:{Sr(2902,e)|0;o=-1}}while(0);m=i;return o|0}function Wi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0;i=la(e)|0;a=i>>>0>n>>>0?n:i;i=(pa(e,t,a)|0)<0;return(i?-1:a)|0}function Gi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0;i=m;m=m+16|0;a=i;switch(n|0){case 0:{o=t;s=((t|0)<0)<<31>>31;break}case 1:{o=Rr(sa(e)|0,P|0,t|0,((t|0)<0)<<31>>31|0)|0;s=P;break}default:{l=-1;m=i;return l|0}}if(!(ca(e,o,s)|0)){l=o;m=i;return l|0}else{e=a;r[e>>2]=o;r[e+4>>2]=s;r[a+8>>2]=t;r[a+12>>2]=n;Sr(2795,a)|0;l=-1;m=i;return l|0}return 0}function Ki(e){e=e|0;var t=0;t=sa(e)|0;return t|0}function Yi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;n=m;m=m+32|0;i=n+16|0;a=n+8|0;o=n;s=ln(r[1395]|0)|0;l=(+(s>>>0)+4294967296*+(P|0))/1e3;s=cn(r[1395]|0)|0;c=P;d=mi(r[1395]|0,t)|0;u=a;r[u>>2]=0;r[u+4>>2]=0;u=o;r[u>>2]=0;r[u+4>>2]=0;hi(r[1395]|0,t,a,o)|0;u=Pr(s|0,c|0,d|0)|0;d=o;o=a;p=(+(u>>>0)+4294967296*+(P|0))*(+((r[d>>2]|0)>>>0)+4294967296*+(r[d+4>>2]|0))/(+((r[o>>2]|0)>>>0)+4294967296*+(r[o+4>>2]|0));do if((r[1393]|0)!=0&(r[1400]|0)==(t|0)){o=Mi(r[1396]|0,e)|0;if((o|0)<0){r[i>>2]=o;Sr(2942,i)|0;f=-1;m=n;return f|0}else{if(!(r[e+12>>2]|0))break;r[1397]=1;r[1394]=2;le(r[1390]|0,r[1392]|0);break}}while(0);if((r[1389]|0)!=0&(r[1398]|0)==(t|0)){i=r[e>>2]|0;o=r[e+4>>2]|0;d=cn(r[1395]|0)|0;u=P;a=mi(r[1395]|0,r[1398]|0)|0;c=Pr(d|0,u|0,a|0)|0;s=Lr(c|0,P|0,a|0)|0;be(i|0,o|0,+l,+p,(d|0)==(s|0)&(u|0)==(P|0)&1|0)}if(!((r[1391]|0)!=0&(r[1399]|0)==(t|0))){f=0;m=n;return f|0}_e(r[e>>2]|0,r[e+4>>2]|0,+l);f=0;m=n;return f|0}function Xi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;n=m;m=m+16|0;i=n+8|0;a=n;o=ln(r[1395]|0)|0;s=(+(o>>>0)+4294967296*+(P|0))/1e3;o=cn(r[1395]|0)|0;l=P;c=mi(r[1395]|0,t)|0;d=i;r[d>>2]=0;r[d+4>>2]=0;d=a;r[d>>2]=0;r[d+4>>2]=0;hi(r[1395]|0,t,i,a)|0;d=Pr(o|0,l|0,c|0)|0;c=a;a=i;u=(+(d>>>0)+4294967296*+(P|0))*(+((r[c>>2]|0)>>>0)+4294967296*+(r[c+4>>2]|0))/(+((r[a>>2]|0)>>>0)+4294967296*+(r[a+4>>2]|0));if((r[1389]|0)!=0&(r[1398]|0)==(t|0)?(a=r[e+4>>2]|0,(a|0)>0):0){c=r[e>>2]|0;d=cn(r[1395]|0)|0;i=P;l=mi(r[1395]|0,r[1398]|0)|0;o=Pr(d|0,i|0,l|0)|0;p=Lr(o|0,P|0,l|0)|0;be(c|0,a|0,+s,+u,(d|0)==(p|0)&(i|0)==(P|0)&1|0);f=1;m=n;return f|0}if(!((r[1391]|0)!=0&(r[1399]|0)==(t|0))){f=0;m=n;return f|0}_e(r[e>>2]|0,r[e+4>>2]|0,+s);f=1;m=n;return f|0}function Ji(e,t){e=e|0;t=t|0;ua(r[1401]|0,e,t);return}function Zi(){var e=0,t=0,n=0,i=0,a=0,o=0,s=0,l=0;e=m;m=m+16|0;t=e;do{n=la(r[1401]|0)|0;i=P;a=(i|0)<0|(i|0)==0&n>>>0<65536;i=a?n:65536;o=dn(r[1395]|0,i)|0;if((o|0)==-14){s=1;l=6;break}}while((o|0)>0);if((l|0)==6){m=e;return s|0}if(!o){s=0;m=e;return s|0}r[t>>2]=o;Sr(2980,t)|0;s=0;m=e;return s|0}function Qi(){vi(r[1396]|0)|0;Yt(r[1395]|0)|0;fa(r[1401]|0);r[1401]=0;return}function ea(){var e=0,t=0,n=0,i=0;e=m;m=m+16|0;t=e;n=t;r[n>>2]=-1;r[n+4>>2]=-1;if(!(r[1397]|0)){i=-1;m=e;return i|0}Ni(r[1396]|0,t)|0;i=r[t>>2]|0;m=e;return i|0}function ta(){var e=0,t=0,n=0,i=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;e=m;m=m+48|0;t=e+42|0;n=e+40|0;i=e+32|0;o=e+24|0;s=e+16|0;l=e+8|0;c=e;if(!(r[1397]|0)){d=-1;m=e;return+d}a[t>>1]=-1;a[n>>1]=-1;Di(r[1396]|0,t)|0;Oi(r[1396]|0,n)|0;n=r[1398]|0;if(!n)u=0;else{r[i>>2]=n;u=1}n=r[1399]|0;if(!n)if(!u){p=-1;f=-1}else{h=1;g=7}else{r[i+(u<<2)>>2]=n;h=u+1|0;g=7}if((g|0)==7){_=-1;g=0;v=-1;while(1){u=o;r[u>>2]=-1;r[u+4>>2]=-1;u=s;r[u>>2]=-1;r[u+4>>2]=-1;u=l;r[u>>2]=-1;r[u+4>>2]=-1;u=c;r[u>>2]=-1;r[u+4>>2]=-1;u=r[i+(g<<2)>>2]|0;Bi(r[1396]|0,u,o)|0;Hi(r[1396]|0,u,s)|0;ji(r[1396]|0,u,l)|0;Vi(r[1396]|0,u,c)|0;u=o;n=s;y=(+((r[u>>2]|0)>>>0)+4294967296*+(r[u+4>>2]|0))/(+((r[n>>2]|0)>>>0)+4294967296*+(r[n+4>>2]|0));b=_==-1|y<_?y:_;n=l;u=c;y=(+((r[n>>2]|0)>>>0)+4294967296*+(r[n+4>>2]|0))/(+((r[u>>2]|0)>>>0)+4294967296*+(r[u+4>>2]|0));w=v==-1|y>v?y:v;g=g+1|0;if((g|0)==(h|0)){p=b;f=w;break}else{_=b;v=w}}}d=f-p;m=e;return+d}function na(){return 1}function ia(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0;t=m;m=m+16|0;n=t;i=t+8|0;a=n;r[a>>2]=-1;r[a+4>>2]=-1;if(!(r[1397]|0)){o=-1;m=t;return o|0}if(!(r[1389]|0))if(!(r[1391]|0)){s=i;l=0}else{c=5596;d=5}else{c=5592;d=5}if((d|0)==5){r[i>>2]=r[c>>2];s=i;l=1}Li(r[1396]|0,s,l,e,((e|0)<0)<<31>>31,n)|0;o=r[n>>2]|0;m=t;return o|0}function aa(e){e=e|0;return 0}function ra(){var e=0,t=0,n=0;e=m;m=m+16|0;t=e;mn(r[1395]|0)|0;n=fi(r[1395]|0,0,1)|0;if((n|0)<0){r[t>>2]=n;Sr(3005,t)|0}da(r[1401]|0);m=e;return}function oa(){var e=0,t=0;e=Ar(32)|0;t=e+16|0;r[t>>2]=0;r[t+4>>2]=0;r[e+4>>2]=0;r[e+8>>2]=8;r[e>>2]=Ar(192)|0;return e|0}function sa(e){e=e|0;var t=0;t=e+16|0;P=r[t+4>>2]|0;return r[t>>2]|0}function la(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;t=r[e+4>>2]|0;if(!t){n=e+16|0;i=r[n>>2]|0;a=r[n+4>>2]|0;o=i;s=a;l=i;c=a;d=Dr(o|0,s|0,l|0,c|0)|0;u=P;P=u;return d|0}else{a=r[e>>2]|0;i=t+-1|0;t=a+(i*24|0)+8|0;n=Rr(r[a+(i*24|0)+16>>2]|0,0,r[t>>2]|0,r[t+4>>2]|0)|0;t=e+16|0;o=n;s=P;l=r[t>>2]|0;c=r[t+4>>2]|0;d=Dr(o|0,s|0,l|0,c|0)|0;u=P;P=u;return d|0}return 0}function ca(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0;i=m;m=m+16|0;a=i+8|0;o=i;s=r[e+4>>2]|0;l=(s|0)==0;if(l)c=e+16|0;else c=(r[e>>2]|0)+8|0;d=c;c=r[d+4>>2]|0;if((c|0)>(n|0)|((c|0)==(n|0)?(r[d>>2]|0)>>>0>t>>>0:0)){d=o;r[d>>2]=t;r[d+4>>2]=n;Sr(3031,o)|0;u=e+24|0;p=-1;f=u;h=f;r[h>>2]=t;g=f+4|0;_=g;r[_>>2]=n;m=i;return p|0}if(l){l=e+16|0;v=r[l+4>>2]|0;y=r[l>>2]|0}else{l=r[e>>2]|0;o=s+-1|0;s=l+(o*24|0)+8|0;d=Rr(r[l+(o*24|0)+16>>2]|0,0,r[s>>2]|0,r[s+4>>2]|0)|0;v=P;y=d}if((v|0)<(n|0)|(v|0)==(n|0)&y>>>0<t>>>0){y=a;r[y>>2]=t;r[y+4>>2]=n;Sr(3031,a)|0;u=e+24|0;p=-1;f=u;h=f;r[h>>2]=t;g=f+4|0;_=g;r[_>>2]=n;m=i;return p|0}else{u=e+16|0;p=0;f=u;h=f;r[h>>2]=t;g=f+4|0;_=g;r[_>>2]=n;m=i;return p|0}return 0}function da(e){e=e|0;var t=0,n=0,i=0;t=e+4|0;if(!(r[t>>2]|0)){r[t>>2]=0;return}n=r[e>>2]|0;i=0;do{Cr(r[n+(i*24|0)>>2]|0);n=r[e>>2]|0;r[n+(i*24|0)>>2]=0;i=i+1|0}while(i>>>0<(r[t>>2]|0)>>>0);r[t>>2]=0;return}function ua(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,D=0,R=0;i=e+4|0;a=r[i>>2]|0;o=e+8|0;do if((a|0)==(r[o>>2]|0))if(!a)s=0;else{l=e+16|0;c=r[e>>2]|0;d=a;u=0;while(1){p=c+(u*24|0)+8|0;f=Rr(r[c+(u*24|0)+16>>2]|0,0,r[p>>2]|0,r[p+4>>2]|0)|0;p=P;m=l;h=r[m+4>>2]|0;if(!((p|0)<(h|0)|((p|0)==(h|0)?f>>>0<(r[m>>2]|0)>>>0:0))){g=6;break}Cr(r[c+(u*24|0)>>2]|0);m=r[e>>2]|0;r[m+(u*24|0)>>2]=0;f=u+1|0;h=r[i>>2]|0;if(f>>>0<h>>>0){c=m;d=h;u=f}else{_=h;v=m;y=f;break}}if((g|0)==6)if(!u){s=d;break}else{_=d;v=c;y=u}l=_-y|0;r[i>>2]=l;Wr(v|0,v+(y*24|0)|0,l*24|0)|0;s=r[i>>2]|0}else s=a;while(0);a=r[o>>2]|0;y=a+8|0;if((s|0)==(a|0)){r[o>>2]=y;r[e>>2]=Er(r[e>>2]|0,y*24|0)|0;b=r[i>>2]|0}else b=s;if(!b){s=e+16|0;w=r[e>>2]|0;k=r[s>>2]|0;M=r[s+4>>2]|0;S=w+(b*24|0)+8|0;A=S;C=A;r[C>>2]=k;T=A+4|0;E=T;r[E>>2]=M;$=w+(b*24|0)+16|0;r[$>>2]=n;I=Ar(n)|0;x=w+(b*24|0)|0;r[x>>2]=I;zr(I|0,t|0,n|0)|0;D=r[i>>2]|0;R=D+1|0;r[i>>2]=R;return}else{s=r[e>>2]|0;e=b+-1|0;y=s+(e*24|0)+8|0;o=Rr(r[s+(e*24|0)+16>>2]|0,0,r[y>>2]|0,r[y+4>>2]|0)|0;w=s;k=o;M=P;S=w+(b*24|0)+8|0;A=S;C=A;r[C>>2]=k;T=A+4|0;E=T;r[E>>2]=M;$=w+(b*24|0)+16|0;r[$>>2]=n;I=Ar(n)|0;x=w+(b*24|0)|0;r[x>>2]=I;zr(I|0,t|0,n|0)|0;D=r[i>>2]|0;R=D+1|0;r[i>>2]=R;return}}function pa(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,D=0;i=m;m=m+32|0;a=i+16|0;o=i;s=e+4|0;l=r[s>>2]|0;c=(l|0)==0;d=e+16|0;u=d;p=r[u>>2]|0;f=r[u+4>>2]|0;if(c){h=p;g=f}else{u=r[e>>2]|0;_=l+-1|0;v=u+(_*24|0)+8|0;y=Rr(r[u+(_*24|0)+16>>2]|0,0,r[v>>2]|0,r[v+4>>2]|0)|0;h=y;g=P}y=Dr(h|0,g|0,p|0,f|0)|0;g=P;if((g|0)<0|(g|0)==0&y>>>0<n>>>0){r[o>>2]=n;y=o+8|0;r[y>>2]=p;r[y+4>>2]=f;Sr(3055,o)|0;b=-1;m=i;return b|0}e:do if(c){w=p;k=f}else{o=f;y=p;g=l;h=0;v=0;_=n;while(1){u=r[e>>2]|0;M=u+(h*24|0)+8|0;S=r[M>>2]|0;A=r[M+4>>2]|0;M=r[u+(h*24|0)+16>>2]|0;C=Rr(M|0,0,S|0,A|0)|0;T=P;if((T|0)<(o|0)|(T|0)==(o|0)&C>>>0<y>>>0){E=g;$=y;I=o;x=v;D=_}else{C=Dr(y|0,o|0,S|0,A|0)|0;A=M-C|0;M=A>>>0>_>>>0?_:A;zr(t+v|0,(r[u+(h*24|0)>>2]|0)+C|0,M|0)|0;C=d;u=Rr(r[C>>2]|0,r[C+4>>2]|0,M|0,0)|0;C=P;A=d;r[A>>2]=u;r[A+4>>2]=C;A=_-M|0;if(!A){b=0;break}E=r[s>>2]|0;$=u;I=C;x=M+v|0;D=A}h=h+1|0;if(h>>>0>=E>>>0){w=$;k=I;break e}else{o=I;y=$;g=E;v=x;_=D}}m=i;return b|0}while(0);r[a>>2]=n;n=a+8|0;r[n>>2]=w;r[n+4>>2]=k;Sr(3090,a)|0;b=-1;m=i;return b|0}function fa(e){e=e|0;var t=0,n=0,i=0,a=0;t=e+4|0;if(!(r[t>>2]|0)){n=r[e>>2]|0;r[t>>2]=0;Cr(n);Cr(e);return}i=r[e>>2]|0;a=0;do{Cr(r[i+(a*24|0)>>2]|0);i=r[e>>2]|0;r[i+(a*24|0)>>2]=0;a=a+1|0}while(a>>>0<(r[t>>2]|0)>>>0);n=i;r[t>>2]=0;Cr(n);Cr(e);return}function ma(){return 5608}function ha(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=ka(r[e+60>>2]|0)|0;e=va(ue(6,n|0)|0)|0;m=t;return e|0}function ga(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;i=m;m=m+48|0;a=i+16|0;o=i;s=i+32|0;l=e+28|0;c=r[l>>2]|0;r[s>>2]=c;d=e+20|0;u=(r[d>>2]|0)-c|0;r[s+4>>2]=u;r[s+8>>2]=t;r[s+12>>2]=n;t=u+n|0;u=e+60|0;r[o>>2]=r[u>>2];r[o+4>>2]=s;r[o+8>>2]=2;c=va(ye(146,o|0)|0)|0;e:do if((t|0)!=(c|0)){o=c;p=s;f=2;h=t;while(1){if((o|0)<0)break;h=h-o|0;g=r[p+4>>2]|0;_=o>>>0>g>>>0;v=_?p+8|0:p;y=(_<<31>>31)+f|0;b=o-(_?g:0)|0;r[v>>2]=(r[v>>2]|0)+b;g=v+4|0;r[g>>2]=(r[g>>2]|0)-b;r[a>>2]=r[u>>2];r[a+4>>2]=v;r[a+8>>2]=y;o=va(ye(146,a|0)|0)|0;if((h|0)==(o|0)){w=3;break e}else{p=v;f=y}}r[e+16>>2]=0;r[l>>2]=0;r[d>>2]=0;r[e>>2]=r[e>>2]|32;if((f|0)==2)k=0;else k=n-(r[p+4>>2]|0)|0}else w=3;while(0);if((w|0)==3){w=r[e+44>>2]|0;r[e+16>>2]=w+(r[e+48>>2]|0);r[l>>2]=w;r[d>>2]=w;k=n}m=i;return k|0}function _a(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0;i=m;m=m+32|0;a=i;o=i+20|0;r[a>>2]=r[e+60>>2];r[a+4>>2]=0;r[a+8>>2]=t;r[a+12>>2]=o;r[a+16>>2]=n;if((va(ve(140,a|0)|0)|0)<0){r[o>>2]=-1;s=-1}else s=r[o>>2]|0;m=i;return s|0}function va(e){e=e|0;var t=0;if(e>>>0>4294963200){r[(ya()|0)>>2]=0-e;t=-1}else t=e;return t|0}function ya(){return(ba()|0)+64|0}function ba(){return wa()|0}function wa(){return 2152}function ka(e){e=e|0;return e|0}function Ma(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0;a=m;m=m+32|0;o=a;r[e+36>>2]=6;if((r[e>>2]&64|0)==0?(r[o>>2]=r[e+60>>2],r[o+4>>2]=21523,r[o+8>>2]=a+16,ge(54,o|0)|0):0)i[e+75>>0]=-1;o=ga(e,t,n)|0;m=a;return o|0}function Sa(e){e=e|0;var t=0;t=(Aa(e)|0)==0;return(t?e:e|32)|0}function Aa(e){e=e|0;return(e+-65|0)>>>0<26|0}function Ca(e,t){e=e|0;t=t|0;var n=0,a=0,r=0,o=0;n=i[e>>0]|0;a=i[t>>0]|0;if(n<<24>>24==0?1:n<<24>>24!=a<<24>>24){r=a;o=n}else{n=e;e=t;do{n=n+1|0;e=e+1|0;t=i[n>>0]|0;a=i[e>>0]|0}while(!(t<<24>>24==0?1:t<<24>>24!=a<<24>>24));r=a;o=t}return(o&255)-(r&255)|0}function Ta(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,r=0,o=0,s=0,l=0,c=0;e:do if(!n)a=0;else{r=e;o=n;s=t;while(1){l=i[r>>0]|0;c=i[s>>0]|0;if(l<<24>>24!=c<<24>>24)break;o=o+-1|0;if(!o){a=0;break e}else{r=r+1|0;s=s+1|0}}a=(l&255)-(c&255)|0}while(0);return a|0}function Ea(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;a=m;m=m+224|0;o=a+120|0;s=a+80|0;l=a;c=a+136|0;d=s;u=d+40|0;do{r[d>>2]=0;d=d+4|0}while((d|0)<(u|0));r[o>>2]=r[n>>2];if(($a(0,t,o,l,s)|0)<0)p=-1;else{if((r[e+76>>2]|0)>-1)f=Ia(e)|0;else f=0;n=r[e>>2]|0;d=n&32;if((i[e+74>>0]|0)<1)r[e>>2]=n&-33;n=e+48|0;if(!(r[n>>2]|0)){u=e+44|0;h=r[u>>2]|0;r[u>>2]=c;g=e+28|0;r[g>>2]=c;_=e+20|0;r[_>>2]=c;r[n>>2]=80;v=e+16|0;r[v>>2]=c+80;c=$a(e,t,o,l,s)|0;if(!h)y=c;else{so[r[e+36>>2]&7](e,0,0)|0;b=(r[_>>2]|0)==0?-1:c;r[u>>2]=h;r[n>>2]=0;r[v>>2]=0;r[g>>2]=0;r[_>>2]=0;y=b}}else y=$a(e,t,o,l,s)|0;s=r[e>>2]|0;r[e>>2]=s|d;if(f|0)xa(e);p=(s&32|0)==0?y:-1}m=a;return p|0}function $a(e,t,n,o,s){e=e|0;t=t|0;n=n|0;o=o|0;s=s|0;var l=0,c=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ce=0,Te=0,Ee=0,$e=0,Ie=0,xe=0,Pe=0,De=0,Re=0;l=m;m=m+64|0;c=l+16|0;u=l;p=l+24|0;f=l+8|0;h=l+20|0;r[c>>2]=t;g=(e|0)!=0;_=p+40|0;v=_;y=p+39|0;p=f+4|0;b=t;t=0;w=0;k=0;e:while(1){do if((t|0)>-1)if((w|0)>(2147483647-t|0)){r[(ya()|0)>>2]=75;M=-1;break}else{M=w+t|0;break}else M=t;while(0);S=i[b>>0]|0;if(!(S<<24>>24)){A=87;break}else{C=S;T=b}t:while(1){switch(C<<24>>24){case 37:{E=T;$=T;A=9;break t;break}case 0:{I=T;x=T;break t;break}default:{}}S=T+1|0;r[c>>2]=S;C=i[S>>0]|0;T=S}t:do if((A|0)==9)while(1){A=0;if((i[E+1>>0]|0)!=37){I=E;x=$;break t}S=$+1|0;D=E+2|0;r[c>>2]=D;if((i[D>>0]|0)==37){E=D;$=S;A=9}else{I=D;x=S;break}}while(0);S=x-b|0;if(g)Pa(e,b,S);if(S|0){b=I;t=M;w=S;continue}S=I+1|0;D=(i[S>>0]|0)+-48|0;if(D>>>0<10){R=(i[I+2>>0]|0)==36;O=R?D:-1;N=R?1:k;L=R?I+3|0:S}else{O=-1;N=k;L=S}r[c>>2]=L;S=i[L>>0]|0;R=(S<<24>>24)+-32|0;t:do if(R>>>0<32){D=S;F=0;U=L;B=R;while(1){H=1<<B;if(!(H&75913)){j=D;V=U;q=F;break t}z=H|F;H=U+1|0;r[c>>2]=H;W=i[H>>0]|0;B=(W<<24>>24)+-32|0;if(B>>>0>=32){j=W;V=H;q=z;break}else{D=W;F=z;U=H}}}else{j=S;V=L;q=0}while(0);if(j<<24>>24==42){S=V+1|0;R=(i[S>>0]|0)+-48|0;if(R>>>0<10?(i[V+2>>0]|0)==36:0){r[s+(R<<2)>>2]=10;G=1;K=V+3|0;Y=r[o+((i[S>>0]|0)+-48<<3)>>2]|0}else{if(N|0){X=-1;break}if(g){R=(r[n>>2]|0)+(4-1)&~(4-1);U=r[R>>2]|0;r[n>>2]=R+4;G=0;K=S;Y=U}else{G=0;K=S;Y=0}}r[c>>2]=K;S=(Y|0)<0;J=K;Z=S?q|8192:q;Q=G;ee=S?0-Y|0:Y}else{S=Da(c)|0;if((S|0)<0){X=-1;break}J=r[c>>2]|0;Z=q;Q=N;ee=S}do if((i[J>>0]|0)==46){if((i[J+1>>0]|0)!=42){r[c>>2]=J+1;S=Da(c)|0;te=r[c>>2]|0;ne=S;break}S=J+2|0;U=(i[S>>0]|0)+-48|0;if(U>>>0<10?(i[J+3>>0]|0)==36:0){r[s+(U<<2)>>2]=10;U=r[o+((i[S>>0]|0)+-48<<3)>>2]|0;R=J+4|0;r[c>>2]=R;te=R;ne=U;break}if(Q|0){X=-1;break e}if(g){U=(r[n>>2]|0)+(4-1)&~(4-1);R=r[U>>2]|0;r[n>>2]=U+4;ie=R}else ie=0;r[c>>2]=S;te=S;ne=ie}else{te=J;ne=-1}while(0);S=te;R=0;while(1){if(((i[S>>0]|0)+-65|0)>>>0>57){X=-1;break e}ae=S+1|0;r[c>>2]=ae;re=i[(i[S>>0]|0)+-65+(3127+(R*58|0))>>0]|0;oe=re&255;if((oe+-1|0)>>>0<8){S=ae;R=oe}else break}if(!(re<<24>>24)){X=-1;break}U=(O|0)>-1;do if(re<<24>>24==19)if(U){X=-1;break e}else A=49;else{if(U){r[s+(O<<2)>>2]=oe;F=o+(O<<3)|0;D=r[F+4>>2]|0;B=u;r[B>>2]=r[F>>2];r[B+4>>2]=D;A=49;break}if(!g){X=0;break e}Ra(u,oe,n)}while(0);if((A|0)==49?(A=0,!g):0){b=ae;t=M;w=0;k=Q;continue}U=i[S>>0]|0;D=(R|0)!=0&(U&15|0)==3?U&-33:U;U=Z&-65537;B=(Z&8192|0)==0?Z:U;t:do switch(D|0){case 110:{switch((R&255)<<24>>24){case 0:{r[r[u>>2]>>2]=M;b=ae;t=M;w=0;k=Q;continue e;break}case 1:{r[r[u>>2]>>2]=M;b=ae;t=M;w=0;k=Q;continue e;break}case 2:{F=r[u>>2]|0;r[F>>2]=M;r[F+4>>2]=((M|0)<0)<<31>>31;b=ae;t=M;w=0;k=Q;continue e;break}case 3:{a[r[u>>2]>>1]=M;b=ae;t=M;w=0;k=Q;continue e;break}case 4:{i[r[u>>2]>>0]=M;b=ae;t=M;w=0;k=Q;continue e;break}case 6:{r[r[u>>2]>>2]=M;b=ae;t=M;w=0;k=Q;continue e;break}case 7:{F=r[u>>2]|0;r[F>>2]=M;r[F+4>>2]=((M|0)<0)<<31>>31;b=ae;t=M;w=0;k=Q;continue e;break}default:{b=ae;t=M;w=0;k=Q;continue e}}break}case 112:{se=B|8;le=ne>>>0>8?ne:8;ce=120;A=61;break}case 88:case 120:{se=B;le=ne;ce=D;A=61;break}case 111:{F=u;H=r[F>>2]|0;z=r[F+4>>2]|0;F=Na(H,z,_)|0;W=v-F|0;de=H;ue=z;pe=F;fe=B;me=(B&8|0)==0|(ne|0)>(W|0)?ne:W+1|0;he=0;ge=3591;A=67;break}case 105:case 100:{W=u;F=r[W>>2]|0;z=r[W+4>>2]|0;if((z|0)<0){W=Dr(0,0,F|0,z|0)|0;H=P;_e=u;r[_e>>2]=W;r[_e+4>>2]=H;ve=W;ye=H;be=1;we=3591;A=66;break t}else{ve=F;ye=z;be=(B&2049|0)!=0&1;we=(B&2048|0)==0?(B&1|0)==0?3591:3593:3592;A=66;break t}break}case 117:{z=u;ve=r[z>>2]|0;ye=r[z+4>>2]|0;be=0;we=3591;A=66;break}case 99:{i[y>>0]=r[u>>2];ke=y;Me=U;Se=1;Ae=0;Ce=3591;Te=_;break}case 109:{Ee=Fa(r[(ya()|0)>>2]|0)|0;A=71;break}case 115:{z=r[u>>2]|0;Ee=z|0?z:3601;A=71;break}case 67:{r[f>>2]=r[u>>2];r[p>>2]=0;r[u>>2]=f;$e=f;Ie=-1;A=75;break}case 83:{z=r[u>>2]|0;if(!ne){Ba(e,32,ee,0,B);xe=0;A=84}else{$e=z;Ie=ne;A=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{b=ae;t=M;w=ja(e,+d[u>>3],ee,ne,B,D)|0;k=Q;continue e;break}default:{ke=b;Me=B;Se=ne;Ae=0;Ce=3591;Te=_}}while(0);t:do if((A|0)==61){A=0;D=u;R=r[D>>2]|0;S=r[D+4>>2]|0;D=Oa(R,S,_,ce&32)|0;z=(se&8|0)==0|(R|0)==0&(S|0)==0;de=R;ue=S;pe=D;fe=se;me=le;he=z?0:2;ge=z?3591:3591+(ce>>4)|0;A=67}else if((A|0)==66){A=0;de=ve;ue=ye;pe=La(ve,ye,_)|0;fe=B;me=ne;he=be;ge=we;A=67}else if((A|0)==71){A=0;z=Ua(Ee,0,ne)|0;D=(z|0)==0;ke=Ee;Me=U;Se=D?ne:z-Ee|0;Ae=0;Ce=3591;Te=D?Ee+ne|0:z}else if((A|0)==75){A=0;z=0;D=0;S=$e;while(1){R=r[S>>2]|0;if(!R){Pe=z;De=D;break}F=Ha(h,R)|0;if((F|0)<0|F>>>0>(Ie-z|0)>>>0){Pe=z;De=F;break}R=F+z|0;if(Ie>>>0>R>>>0){z=R;D=F;S=S+4|0}else{Pe=R;De=F;break}}if((De|0)<0){X=-1;break e}Ba(e,32,ee,Pe,B);if(!Pe){xe=0;A=84}else{S=0;D=$e;while(1){z=r[D>>2]|0;if(!z){xe=Pe;A=84;break t}F=Ha(h,z)|0;S=F+S|0;if((S|0)>(Pe|0)){xe=Pe;A=84;break t}Pa(e,h,F);if(S>>>0>=Pe>>>0){xe=Pe;A=84;break}else D=D+4|0}}}while(0);if((A|0)==67){A=0;U=(de|0)!=0|(ue|0)!=0;D=(me|0)!=0|U;S=((U^1)&1)+(v-pe)|0;ke=D?pe:_;Me=(me|0)>-1?fe&-65537:fe;Se=D?(me|0)>(S|0)?me:S:me;Ae=he;Ce=ge;Te=_}else if((A|0)==84){A=0;Ba(e,32,ee,xe,B^8192);b=ae;t=M;w=(ee|0)>(xe|0)?ee:xe;k=Q;continue}S=Te-ke|0;D=(Se|0)<(S|0)?S:Se;U=D+Ae|0;F=(ee|0)<(U|0)?U:ee;Ba(e,32,F,U,Me);Pa(e,Ce,Ae);Ba(e,48,F,U,Me^65536);Ba(e,48,D,S,0);Pa(e,ke,S);Ba(e,32,F,U,Me^8192);b=ae;t=M;w=F;k=Q}e:do if((A|0)==87)if(!e)if(!k)X=0;else{Q=1;while(1){w=r[s+(Q<<2)>>2]|0;if(!w){Re=Q;break}Ra(o+(Q<<3)|0,w,n);Q=Q+1|0;if((Q|0)>=10){X=1;break e}}while(1){if(r[s+(Re<<2)>>2]|0){X=-1;break e}Re=Re+1|0;if((Re|0)>=10){X=1;break}}}else X=M;while(0);m=l;return X|0}function Ia(e){e=e|0;return 0}function xa(e){e=e|0;return}function Pa(e,t,n){e=e|0;t=t|0;n=n|0;if(!(r[e>>2]&32))er(t,n,e)|0;return}function Da(e){e=e|0;var t=0,n=0,a=0,o=0,s=0;t=r[e>>2]|0;n=(i[t>>0]|0)+-48|0;if(n>>>0<10){a=t;t=0;o=n;while(1){n=o+(t*10|0)|0;a=a+1|0;r[e>>2]=a;o=(i[a>>0]|0)+-48|0;if(o>>>0>=10){s=n;break}else t=n}}else s=0;return s|0}function Ra(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0;e:do if(t>>>0<=20)do switch(t|0){case 9:{i=(r[n>>2]|0)+(4-1)&~(4-1);a=r[i>>2]|0;r[n>>2]=i+4;r[e>>2]=a;break e;break}case 10:{a=(r[n>>2]|0)+(4-1)&~(4-1);i=r[a>>2]|0;r[n>>2]=a+4;a=e;r[a>>2]=i;r[a+4>>2]=((i|0)<0)<<31>>31;break e;break}case 11:{i=(r[n>>2]|0)+(4-1)&~(4-1);a=r[i>>2]|0;r[n>>2]=i+4;i=e;r[i>>2]=a;r[i+4>>2]=0;break e;break}case 12:{i=(r[n>>2]|0)+(8-1)&~(8-1);a=i;o=r[a>>2]|0;s=r[a+4>>2]|0;r[n>>2]=i+8;i=e;r[i>>2]=o;r[i+4>>2]=s;break e;break}case 13:{s=(r[n>>2]|0)+(4-1)&~(4-1);i=r[s>>2]|0;r[n>>2]=s+4;s=(i&65535)<<16>>16;i=e;r[i>>2]=s;r[i+4>>2]=((s|0)<0)<<31>>31;break e;break}case 14:{s=(r[n>>2]|0)+(4-1)&~(4-1);i=r[s>>2]|0;r[n>>2]=s+4;s=e;r[s>>2]=i&65535;r[s+4>>2]=0;break e;break}case 15:{s=(r[n>>2]|0)+(4-1)&~(4-1);i=r[s>>2]|0;r[n>>2]=s+4;s=(i&255)<<24>>24;i=e;r[i>>2]=s;r[i+4>>2]=((s|0)<0)<<31>>31;break e;break}case 16:{s=(r[n>>2]|0)+(4-1)&~(4-1);i=r[s>>2]|0;r[n>>2]=s+4;s=e;r[s>>2]=i&255;r[s+4>>2]=0;break e;break}case 17:{s=(r[n>>2]|0)+(8-1)&~(8-1);l=+d[s>>3];r[n>>2]=s+8;d[e>>3]=l;break e;break}case 18:{s=(r[n>>2]|0)+(8-1)&~(8-1);l=+d[s>>3];r[n>>2]=s+8;d[e>>3]=l;break e;break}default:break e}while(0);while(0);return}function Oa(e,t,n,a){e=e|0;t=t|0;n=n|0;a=a|0;var r=0,s=0;if((e|0)==0&(t|0)==0)r=n;else{s=e;e=t;t=n;while(1){n=t+-1|0;i[n>>0]=o[3643+(s&15)>>0]|0|a;s=Nr(s|0,e|0,4)|0;e=P;if((s|0)==0&(e|0)==0){r=n;break}else t=n}}return r|0}function Na(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,r=0;if((e|0)==0&(t|0)==0)a=n;else{r=e;e=t;t=n;while(1){n=t+-1|0;i[n>>0]=r&7|48;r=Nr(r|0,e|0,3)|0;e=P;if((r|0)==0&(e|0)==0){a=n;break}else t=n}}return a|0}function La(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,r=0,o=0,s=0,l=0,c=0;if(t>>>0>0|(t|0)==0&e>>>0>4294967295){a=e;r=t;t=n;while(1){o=Gr(a|0,r|0,10,0)|0;t=t+-1|0;i[t>>0]=o&255|48;o=a;a=Hr(a|0,r|0,10,0)|0;if(!(r>>>0>9|(r|0)==9&o>>>0>4294967295))break;else r=P}s=t;l=a}else{s=n;l=e}if(!l)c=s;else{e=s;s=l;while(1){l=e+-1|0;i[l>>0]=(s>>>0)%10|0|48;if(s>>>0<10){c=l;break}else{e=l;s=(s>>>0)/10|0}}}return c|0}function Fa(e){e=e|0;return Ya(e,r[(Ka()|0)+188>>2]|0)|0}function Ua(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0;a=t&255;o=(n|0)!=0;e:do if(o&(e&3|0)!=0){s=t&255;l=n;c=e;while(1){if((i[c>>0]|0)==s<<24>>24){d=l;u=c;p=6;break e}f=c+1|0;m=l+-1|0;h=(m|0)!=0;if(h&(f&3|0)!=0){l=m;c=f}else{g=m;_=f;v=h;p=5;break}}}else{g=n;_=e;v=o;p=5}while(0);if((p|0)==5)if(v){d=g;u=_;p=6}else{y=0;b=_}e:do if((p|0)==6){_=t&255;if((i[u>>0]|0)==_<<24>>24){y=d;b=u}else{g=G(a,16843009)|0;t:do if(d>>>0>3){v=d;o=u;while(1){e=r[o>>2]^g;if((e&-2139062144^-2139062144)&e+-16843009|0)break;e=o+4|0;n=v+-4|0;if(n>>>0>3){v=n;o=e}else{w=n;k=e;p=11;break t}}M=v;S=o}else{w=d;k=u;p=11}while(0);if((p|0)==11)if(!w){y=0;b=k;break}else{M=w;S=k}while(1){if((i[S>>0]|0)==_<<24>>24){y=M;b=S;break e}g=S+1|0;M=M+-1|0;if(!M){y=0;b=g;break}else S=g}}}while(0);return(y|0?b:0)|0}function Ba(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var r=0,o=0,s=0;r=m;m=m+256|0;o=r;if((n|0)>(i|0)&(a&73728|0)==0){a=n-i|0;Or(o|0,t|0,(a>>>0<256?a:256)|0)|0;if(a>>>0>255){t=n-i|0;i=a;do{Pa(e,o,256);i=i+-256|0}while(i>>>0>255);s=t&255}else s=a;Pa(e,o,s)}m=r;return}function Ha(e,t){e=e|0;t=t|0;var n=0;if(!e)n=0;else n=Wa(e,t,0)|0;return n|0}function ja(e,t,n,a,s,l){e=e|0;t=+t;n=n|0;a=a|0;s=s|0;l=l|0;var c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ce=0,Te=0,Ee=0,$e=0,Ie=0;c=m;m=m+560|0;d=c+8|0;u=c;p=c+524|0;f=p;h=c+512|0;r[u>>2]=0;g=h+12|0;Va(t)|0;if((P|0)<0){_=1;v=3608;y=-t}else{_=(s&2049|0)!=0&1;v=(s&2048|0)==0?(s&1|0)==0?3609:3614:3611;y=t}Va(y)|0;b=P&2146435072;do if(b>>>0<2146435072|(b|0)==2146435072&0<0){t=+qa(y,u)*2;w=t!=0;if(w)r[u>>2]=(r[u>>2]|0)+-1;k=l|32;if((k|0)==97){M=l&32;S=(M|0)==0?v:v+9|0;A=_|2;C=12-a|0;do if(!(a>>>0>11|(C|0)==0)){T=C;E=8;do{T=T+-1|0;E=E*16}while((T|0)!=0);if((i[S>>0]|0)==45){$=-(E+(-t-E));break}else{$=t+E-E;break}}else $=t;while(0);C=r[u>>2]|0;T=(C|0)<0?0-C|0:C;I=La(T,((T|0)<0)<<31>>31,g)|0;if((I|0)==(g|0)){T=h+11|0;i[T>>0]=48;x=T}else x=I;i[x+-1>>0]=(C>>31&2)+43;C=x+-2|0;i[C>>0]=l+15;I=(a|0)<1;T=(s&8|0)==0;D=p;R=$;while(1){O=~~R;
N=D+1|0;i[D>>0]=o[3643+O>>0]|M;R=(R-+(O|0))*16;if((N-f|0)==1?!(T&(I&R==0)):0){i[N>>0]=46;L=D+2|0}else L=N;if(!(R!=0))break;else D=L}D=L-f|0;I=g-C|0;T=(a|0)!=0&(D+-2|0)<(a|0)?a+2|0:D;M=I+A+T|0;Ba(e,32,n,M,s);Pa(e,S,A);Ba(e,48,n,M,s^65536);Pa(e,p,D);Ba(e,48,T-D|0,0,0);Pa(e,C,I);Ba(e,32,n,M,s^8192);F=M;break}M=(a|0)<0?6:a;if(w){I=(r[u>>2]|0)+-28|0;r[u>>2]=I;U=I;B=t*268435456}else{U=r[u>>2]|0;B=t}I=(U|0)<0?d:d+288|0;R=B;D=I;do{T=~~R>>>0;r[D>>2]=T;D=D+4|0;R=(R-+(T>>>0))*1e9}while(R!=0);if((U|0)>0){w=U;C=I;A=D;while(1){S=(w|0)<29?w:29;T=A+-4|0;if(T>>>0>=C>>>0){N=0;O=T;do{T=Lr(r[O>>2]|0,0,S|0)|0;H=Rr(T|0,P|0,N|0,0)|0;T=P;j=Gr(H|0,T|0,1e9,0)|0;r[O>>2]=j;N=Hr(H|0,T|0,1e9,0)|0;O=O+-4|0}while(O>>>0>=C>>>0);if(N){O=C+-4|0;r[O>>2]=N;V=O}else V=C}else V=C;O=A;while(1){if(O>>>0<=V>>>0)break;T=O+-4|0;if(!(r[T>>2]|0))O=T;else break}N=(r[u>>2]|0)-S|0;r[u>>2]=N;if((N|0)>0){w=N;C=V;A=O}else{q=N;z=V;W=O;break}}}else{q=U;z=I;W=D}if((q|0)<0){A=((M+25|0)/9|0)+1|0;C=(k|0)==102;w=q;N=z;T=W;while(1){H=0-w|0;j=(H|0)<9?H:9;if(N>>>0<T>>>0){H=(1<<j)+-1|0;K=1e9>>>j;Y=0;X=N;do{J=r[X>>2]|0;r[X>>2]=(J>>>j)+Y;Y=G(J&H,K)|0;X=X+4|0}while(X>>>0<T>>>0);X=(r[N>>2]|0)==0?N+4|0:N;if(!Y){Z=X;Q=T}else{r[T>>2]=Y;Z=X;Q=T+4|0}}else{Z=(r[N>>2]|0)==0?N+4|0:N;Q=T}X=C?I:Z;K=(Q-X>>2|0)>(A|0)?X+(A<<2)|0:Q;w=(r[u>>2]|0)+j|0;r[u>>2]=w;if((w|0)>=0){ee=Z;te=K;break}else{N=Z;T=K}}}else{ee=z;te=W}T=I;if(ee>>>0<te>>>0){N=(T-ee>>2)*9|0;w=r[ee>>2]|0;if(w>>>0<10)ne=N;else{A=N;N=10;while(1){N=N*10|0;C=A+1|0;if(w>>>0<N>>>0){ne=C;break}else A=C}}}else ne=0;A=(k|0)==103;N=(M|0)!=0;w=M-((k|0)!=102?ne:0)+((N&A)<<31>>31)|0;if((w|0)<(((te-T>>2)*9|0)+-9|0)){C=w+9216|0;w=I+4+(((C|0)/9|0)+-1024<<2)|0;D=((C|0)%9|0)+1|0;if((D|0)<9){C=10;K=D;while(1){D=C*10|0;K=K+1|0;if((K|0)==9){ie=D;break}else C=D}}else ie=10;C=r[w>>2]|0;K=(C>>>0)%(ie>>>0)|0;k=(w+4|0)==(te|0);if(!(k&(K|0)==0)){E=(((C>>>0)/(ie>>>0)|0)&1|0)==0?9007199254740992:9007199254740994;D=(ie|0)/2|0;R=K>>>0<D>>>0?.5:k&(K|0)==(D|0)?1:1.5;if(!_){ae=E;re=R}else{D=(i[v>>0]|0)==45;ae=D?-E:E;re=D?-R:R}D=C-K|0;r[w>>2]=D;if(ae+re!=ae){K=D+ie|0;r[w>>2]=K;if(K>>>0>999999999){K=ee;D=w;while(1){C=D+-4|0;r[D>>2]=0;if(C>>>0<K>>>0){k=K+-4|0;r[k>>2]=0;oe=k}else oe=K;k=(r[C>>2]|0)+1|0;r[C>>2]=k;if(k>>>0>999999999){K=oe;D=C}else{se=oe;le=C;break}}}else{se=ee;le=w}D=(T-se>>2)*9|0;K=r[se>>2]|0;if(K>>>0<10){ce=se;de=le;ue=D}else{C=D;D=10;while(1){D=D*10|0;k=C+1|0;if(K>>>0<D>>>0){ce=se;de=le;ue=k;break}else C=k}}}else{ce=ee;de=w;ue=ne}}else{ce=ee;de=w;ue=ne}C=de+4|0;pe=ce;fe=ue;me=te>>>0>C>>>0?C:te}else{pe=ee;fe=ne;me=te}C=me;while(1){if(C>>>0<=pe>>>0){he=0;break}D=C+-4|0;if(!(r[D>>2]|0))C=D;else{he=1;break}}w=0-fe|0;do if(A){D=((N^1)&1)+M|0;if((D|0)>(fe|0)&(fe|0)>-5){ge=D+-1-fe|0;_e=l+-1|0}else{ge=D+-1|0;_e=l+-2|0}D=s&8;if(!D){if(he?(K=r[C+-4>>2]|0,(K|0)!=0):0)if(!((K>>>0)%10|0)){k=10;X=0;while(1){k=k*10|0;H=X+1|0;if((K>>>0)%(k>>>0)|0|0){ve=H;break}else X=H}}else ve=0;else ve=9;X=((C-T>>2)*9|0)+-9|0;if((_e|32|0)==102){k=X-ve|0;K=(k|0)>0?k:0;ye=0;be=(ge|0)<(K|0)?ge:K;we=_e;break}else{K=X+fe-ve|0;X=(K|0)>0?K:0;ye=0;be=(ge|0)<(X|0)?ge:X;we=_e;break}}else{ye=D;be=ge;we=_e}}else{ye=s&8;be=M;we=l}while(0);M=be|ye;T=(M|0)!=0&1;N=(we|32|0)==102;if(N){ke=0;Me=(fe|0)>0?fe:0}else{A=(fe|0)<0?w:fe;X=La(A,((A|0)<0)<<31>>31,g)|0;A=g;if((A-X|0)<2){K=X;while(1){k=K+-1|0;i[k>>0]=48;if((A-k|0)<2)K=k;else{Se=k;break}}}else Se=X;i[Se+-1>>0]=(fe>>31&2)+43;K=Se+-2|0;i[K>>0]=we;ke=K;Me=A-K|0}K=_+1+be+T+Me|0;Ba(e,32,n,K,s);Pa(e,v,_);Ba(e,48,n,K,s^65536);if(N){w=pe>>>0>I>>>0?I:pe;k=p+9|0;j=k;Y=p+8|0;H=w;do{O=La(r[H>>2]|0,0,k)|0;if((H|0)==(w|0))if((O|0)==(k|0)){i[Y>>0]=48;Ae=Y}else Ae=O;else if(O>>>0>p>>>0){Or(p|0,48,O-f|0)|0;S=O;while(1){J=S+-1|0;if(J>>>0>p>>>0)S=J;else{Ae=J;break}}}else Ae=O;Pa(e,Ae,j-Ae|0);H=H+4|0}while(H>>>0<=I>>>0);if(M|0)Pa(e,3659,1);if(H>>>0<C>>>0&(be|0)>0){I=H;j=be;while(1){Y=La(r[I>>2]|0,0,k)|0;if(Y>>>0>p>>>0){Or(p|0,48,Y-f|0)|0;w=Y;while(1){N=w+-1|0;if(N>>>0>p>>>0)w=N;else{Ce=N;break}}}else Ce=Y;Pa(e,Ce,(j|0)<9?j:9);I=I+4|0;w=j+-9|0;if(!(I>>>0<C>>>0&(j|0)>9)){Te=w;break}else j=w}}else Te=be;Ba(e,48,Te+9|0,9,0)}else{j=he?C:pe+4|0;if((be|0)>-1){I=p+9|0;k=(ye|0)==0;H=I;M=0-f|0;w=p+8|0;O=pe;N=be;while(1){T=La(r[O>>2]|0,0,I)|0;if((T|0)==(I|0)){i[w>>0]=48;Ee=w}else Ee=T;do if((O|0)==(pe|0)){T=Ee+1|0;Pa(e,Ee,1);if(k&(N|0)<1){$e=T;break}Pa(e,3659,1);$e=T}else{if(Ee>>>0<=p>>>0){$e=Ee;break}Or(p|0,48,Ee+M|0)|0;T=Ee;while(1){A=T+-1|0;if(A>>>0>p>>>0)T=A;else{$e=A;break}}}while(0);Y=H-$e|0;Pa(e,$e,(N|0)>(Y|0)?Y:N);T=N-Y|0;O=O+4|0;if(!(O>>>0<j>>>0&(T|0)>-1)){Ie=T;break}else N=T}}else Ie=be;Ba(e,48,Ie+18|0,18,0);Pa(e,ke,g-ke|0)}Ba(e,32,n,K,s^8192);F=K}else{N=(l&32|0)!=0;j=_+3|0;Ba(e,32,n,j,s&-65537);Pa(e,v,_);Pa(e,y!=y|0!=0?N?3635:3639:N?3627:3631,3);Ba(e,32,n,j,s^8192);F=j}while(0);m=c;return((F|0)<(n|0)?n:F)|0}function Va(e){e=+e;var t=0;d[p>>3]=e;t=r[p>>2]|0;P=r[p+4>>2]|0;return t|0}function qa(e,t){e=+e;t=t|0;return+ +za(e,t)}function za(e,t){e=+e;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0;d[p>>3]=e;n=r[p>>2]|0;i=r[p+4>>2]|0;a=Nr(n|0,i|0,52)|0;switch(a&2047){case 0:{if(e!=0){o=+za(e*0x10000000000000000,t);s=(r[t>>2]|0)+-64|0;l=o}else{s=0;l=e}r[t>>2]=s;c=l;break}case 2047:{c=e;break}default:{r[t>>2]=(a&2047)+-1022;r[p>>2]=n;r[p+4>>2]=i&-2146435073|1071644672;c=+d[p>>3]}}return+c}function Wa(e,t,n){e=e|0;t=t|0;n=n|0;var a=0;do if(e){if(t>>>0<128){i[e>>0]=t;a=1;break}if(!(r[r[(Ga()|0)+188>>2]>>2]|0))if((t&-128|0)==57216){i[e>>0]=t;a=1;break}else{r[(ya()|0)>>2]=84;a=-1;break}if(t>>>0<2048){i[e>>0]=t>>>6|192;i[e+1>>0]=t&63|128;a=2;break}if(t>>>0<55296|(t&-8192|0)==57344){i[e>>0]=t>>>12|224;i[e+1>>0]=t>>>6&63|128;i[e+2>>0]=t&63|128;a=3;break}if((t+-65536|0)>>>0<1048576){i[e>>0]=t>>>18|240;i[e+1>>0]=t>>>12&63|128;i[e+2>>0]=t>>>6&63|128;i[e+3>>0]=t&63|128;a=4;break}else{r[(ya()|0)>>2]=84;a=-1;break}}else a=1;while(0);return a|0}function Ga(){return wa()|0}function Ka(){return wa()|0}function Ya(e,t){e=e|0;t=t|0;var n=0,a=0,s=0,l=0,c=0,d=0;n=0;while(1){if((o[3661+n>>0]|0)==(e|0)){a=2;break}s=n+1|0;if((s|0)==87){l=87;c=3749;a=5;break}else n=s}if((a|0)==2)if(!n)d=3749;else{l=n;c=3749;a=5}if((a|0)==5)while(1){a=0;n=c;do{e=n;n=n+1|0}while((i[e>>0]|0)!=0);l=l+-1|0;if(!l){d=n;break}else{c=n;a=5}}return Xa(d,r[t+20>>2]|0)|0}function Xa(e,t){e=e|0;t=t|0;return Ja(e,t)|0}function Ja(e,t){e=e|0;t=t|0;var n=0;if(!t)n=0;else n=Za(r[t>>2]|0,r[t+4>>2]|0,e)|0;return(n|0?n:e)|0}function Za(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0;a=(r[e>>2]|0)+1794895138|0;o=Qa(r[e+8>>2]|0,a)|0;s=Qa(r[e+12>>2]|0,a)|0;l=Qa(r[e+16>>2]|0,a)|0;e:do if((o>>>0<t>>>2>>>0?(c=t-(o<<2)|0,s>>>0<c>>>0&l>>>0<c>>>0):0)?((l|s)&3|0)==0:0){c=s>>>2;d=l>>>2;u=0;p=o;while(1){f=p>>>1;m=u+f|0;h=m<<1;g=h+c|0;_=Qa(r[e+(g<<2)>>2]|0,a)|0;v=Qa(r[e+(g+1<<2)>>2]|0,a)|0;if(!(v>>>0<t>>>0&_>>>0<(t-v|0)>>>0)){y=0;break e}if(i[e+(v+_)>>0]|0){y=0;break e}_=Ca(n,e+v|0)|0;if(!_)break;v=(_|0)<0;if((p|0)==1){y=0;break e}else{u=v?u:m;p=v?f:p-f|0}}p=h+d|0;u=Qa(r[e+(p<<2)>>2]|0,a)|0;c=Qa(r[e+(p+1<<2)>>2]|0,a)|0;if(c>>>0<t>>>0&u>>>0<(t-c|0)>>>0)y=(i[e+(c+u)>>0]|0)==0?e+c|0:0;else y=0}else y=0;while(0);return y|0}function Qa(e,t){e=e|0;t=t|0;var n=0;n=Kr(e|0)|0;return((t|0)==0?e:n)|0}function er(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0;a=n+16|0;o=r[a>>2]|0;if(!o)if(!(tr(n)|0)){s=r[a>>2]|0;l=5}else c=0;else{s=o;l=5}e:do if((l|0)==5){o=n+20|0;a=r[o>>2]|0;d=a;if((s-a|0)>>>0<t>>>0){c=so[r[n+36>>2]&7](n,e,t)|0;break}t:do if((i[n+75>>0]|0)>-1){a=t;while(1){if(!a){u=d;p=0;f=t;m=e;break t}h=a+-1|0;if((i[e+h>>0]|0)==10)break;else a=h}h=so[r[n+36>>2]&7](n,e,a)|0;if(h>>>0<a>>>0){c=h;break e}u=r[o>>2]|0;p=a;f=t-a|0;m=e+a|0}else{u=d;p=0;f=t;m=e}while(0);zr(u|0,m|0,f|0)|0;r[o>>2]=(r[o>>2]|0)+f;c=p+f|0}while(0);return c|0}function tr(e){e=e|0;var t=0,n=0,a=0;t=e+74|0;n=i[t>>0]|0;i[t>>0]=n+255|n;n=r[e>>2]|0;if(!(n&8)){r[e+8>>2]=0;r[e+4>>2]=0;t=r[e+44>>2]|0;r[e+28>>2]=t;r[e+20>>2]=t;r[e+16>>2]=t+(r[e+48>>2]|0);a=0}else{r[e>>2]=n|32;a=-1}return a|0}function nr(e,t){e=e|0;t=t|0;var n=0,a=0,r=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;n=i[e>>0]|0;a=n&255;e:do if(!(n<<24>>24)){r=a;s=t}else{l=n;c=a;d=e;u=t;while(1){p=i[u>>0]|0;if(!(p<<24>>24)){r=c;s=u;break e}if(l<<24>>24!=p<<24>>24?(f=Sa(c)|0,(f|0)!=(Sa(p&255)|0)):0){r=c;s=u;break e}d=d+1|0;p=u+1|0;l=i[d>>0]|0;f=l&255;if(!(l<<24>>24)){r=f;s=p;break}else{c=f;u=p}}}while(0);t=Sa(r)|0;return t-(Sa(o[s>>0]|0)|0)|0}function ir(e){e=e|0;var t=0,n=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;t=e;e:do if(!(t&3)){n=e;a=4}else{o=t;s=e;while(1){if(!(i[s>>0]|0)){l=o;break e}c=s+1|0;o=c;if(!(o&3)){n=c;a=4;break}else s=c}}while(0);if((a|0)==4){a=n;while(1){d=r[a>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))a=a+4|0;else break}if(!((d&255)<<24>>24))u=a;else{d=a;while(1){a=d+1|0;if(!(i[a>>0]|0)){u=a;break}else d=a}}l=u}return l-t|0}function ar(e,t){e=e|0;t=t|0;rr(e,t)|0;return e|0}function rr(e,t){e=e|0;t=t|0;var n=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0;n=t;e:do if(!((n^e)&3)){if(!(n&3)){a=e;o=t}else{s=e;l=t;while(1){c=i[l>>0]|0;i[s>>0]=c;if(!(c<<24>>24)){d=s;break e}c=l+1|0;u=s+1|0;if(!(c&3)){a=u;o=c;break}else{s=u;l=c}}}l=r[o>>2]|0;if(!((l&-2139062144^-2139062144)&l+-16843009)){s=l;l=a;c=o;while(1){u=c+4|0;p=l+4|0;r[l>>2]=s;s=r[u>>2]|0;if((s&-2139062144^-2139062144)&s+-16843009|0){f=p;m=u;break}else{l=p;c=u}}}else{f=a;m=o}h=f;g=m;_=8}else{h=e;g=t;_=8}while(0);if((_|0)==8){_=i[g>>0]|0;i[h>>0]=_;if(!(_<<24>>24))d=h;else{_=h;h=g;while(1){h=h+1|0;g=_+1|0;t=i[h>>0]|0;i[g>>0]=t;if(!(t<<24>>24)){d=g;break}else _=g}}}return d|0}function or(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0;i=m;m=m+16|0;a=i;r[a>>2]=e;r[a+4>>2]=t;r[a+8>>2]=n;n=va(ce(3,a|0)|0)|0;m=i;return n|0}function sr(e){e=e|0;var t=0,n=0,i=0;if(r[e+68>>2]|0){t=r[e+116>>2]|0;n=e+112|0;if(t|0)r[t+112>>2]=r[n>>2];e=r[n>>2]|0;if(!e)i=(lr()|0)+232|0;else i=e+116|0;r[i>>2]=t}return}function lr(){return wa()|0}function cr(){de(5672);return 5680}function dr(){me(5672);return}function ur(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0;if((r[e+76>>2]|0)>-1)t=Ia(e)|0;else t=0;sr(e);n=(r[e>>2]&1|0)!=0;if(!n){i=cr()|0;a=r[e+52>>2]|0;o=e+56|0;if(a|0)r[a+56>>2]=r[o>>2];s=r[o>>2]|0;if(s|0)r[s+52>>2]=a;if((r[i>>2]|0)==(e|0))r[i>>2]=s;dr()}s=pr(e)|0;i=co[r[e+12>>2]&15](e)|0|s;s=r[e+92>>2]|0;if(s|0)Cr(s);if(n){if(t|0)xa(e)}else Cr(e);return i|0}function pr(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0;do if(e){if((r[e+76>>2]|0)<=-1){t=fr(e)|0;break}n=(Ia(e)|0)==0;i=fr(e)|0;if(n)t=i;else{xa(e);t=i}}else{if(!(r[631]|0))a=0;else a=pr(r[631]|0)|0;i=r[(cr()|0)>>2]|0;if(!i)o=a;else{n=i;i=a;while(1){if((r[n+76>>2]|0)>-1)s=Ia(n)|0;else s=0;if((r[n+20>>2]|0)>>>0>(r[n+28>>2]|0)>>>0)l=fr(n)|0|i;else l=i;if(s|0)xa(n);n=r[n+56>>2]|0;if(!n){o=l;break}else i=l}}dr();t=o}while(0);return t|0}function fr(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0;t=e+20|0;n=e+28|0;if((r[t>>2]|0)>>>0>(r[n>>2]|0)>>>0?(so[r[e+36>>2]&7](e,0,0)|0,(r[t>>2]|0)==0):0)i=-1;else{a=e+4|0;o=r[a>>2]|0;s=e+8|0;l=r[s>>2]|0;if(o>>>0<l>>>0)so[r[e+40>>2]&7](e,o-l|0,1)|0;r[e+16>>2]=0;r[n>>2]=0;r[t>>2]=0;r[s>>2]=0;r[a>>2]=0;i=0}return i|0}function mr(e){e=e|0;var t=0,n=0,i=0;if((r[e+76>>2]|0)>-1){t=(Ia(e)|0)==0;n=(r[e>>2]|0)>>>5&1;if(t)i=n;else i=n}else i=(r[e>>2]|0)>>>5&1;return i|0}function hr(e,t,n){e=e|0;t=t|0;n=n|0;return gr(e,t,n)|0}function gr(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0;if((r[e+76>>2]|0)>-1){i=(Ia(e)|0)==0;a=_r(e,t,n)|0;if(i)o=a;else{xa(e);o=a}}else o=_r(e,t,n)|0;return o|0}function _r(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0;if((n|0)==1)i=t-(r[e+8>>2]|0)+(r[e+4>>2]|0)|0;else i=t;t=e+20|0;a=e+28|0;if((r[t>>2]|0)>>>0>(r[a>>2]|0)>>>0?(so[r[e+36>>2]&7](e,0,0)|0,(r[t>>2]|0)==0):0)o=-1;else{r[e+16>>2]=0;r[a>>2]=0;r[t>>2]=0;if((so[r[e+40>>2]&7](e,i,n)|0)<0)o=-1;else{r[e+8>>2]=0;r[e+4>>2]=0;r[e>>2]=r[e>>2]&-17;o=0}}return o|0}function vr(e,t,n){e=e|0;t=t|0;n=n|0;yr(e,t,n)|0;return e|0}function yr(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0;a=t;do if(!((a^e)&3)){o=(n|0)!=0;e:do if(o&(a&3|0)!=0){s=e;l=n;c=t;while(1){d=i[c>>0]|0;i[s>>0]=d;if(!(d<<24>>24)){u=s;p=l;f=c;break e}d=l+-1|0;m=c+1|0;h=s+1|0;g=(d|0)!=0;if(g&(m&3|0)!=0){s=h;l=d;c=m}else{_=h;v=d;y=m;b=g;w=5;break}}}else{_=e;v=n;y=t;b=o;w=5}while(0);if((w|0)==5)if(b){u=_;p=v;f=y}else{k=_;M=0;break}if(!(i[f>>0]|0)){k=u;M=p}else{e:do if(p>>>0>3){o=p;c=u;l=f;while(1){s=r[l>>2]|0;if((s&-2139062144^-2139062144)&s+-16843009|0){S=o;A=c;C=l;break e}r[c>>2]=s;s=o+-4|0;g=l+4|0;m=c+4|0;if(s>>>0>3){o=s;c=m;l=g}else{S=s;A=m;C=g;break}}}else{S=p;A=u;C=f}while(0);T=A;E=S;$=C;w=11}}else{T=e;E=n;$=t;w=11}while(0);e:do if((w|0)==11)if(!E){k=T;M=0}else{t=T;n=E;e=$;while(1){C=i[e>>0]|0;i[t>>0]=C;if(!(C<<24>>24)){k=t;M=n;break e}n=n+-1|0;C=t+1|0;if(!n){k=C;M=0;break}else{t=C;e=e+1|0}}}while(0);Or(k|0,0,M|0)|0;return k|0}function br(e){e=e|0;var t=0,n=0,i=0;if((r[e+76>>2]|0)>-1){t=(Ia(e)|0)==0;n=wr(e)|0;if(t)i=n;else i=n}else i=wr(e)|0;return i|0}function wr(e){e=e|0;var t=0,n=0,i=0;if(!(r[e>>2]&128))t=1;else t=(r[e+20>>2]|0)>>>0>(r[e+28>>2]|0)>>>0?2:1;n=so[r[e+40>>2]&7](e,0,t)|0;if((n|0)<0)i=n;else i=n-(r[e+8>>2]|0)+(r[e+4>>2]|0)+(r[e+20>>2]|0)-(r[e+28>>2]|0)|0;return i|0}function kr(e){e=e|0;(r[e+76>>2]|0)>-1?Ia(e)|0:0;return r[e+60>>2]|0}function Mr(e){e=e|0;return br(e)|0}function Sr(e,t){e=e|0;t=t|0;var n=0,i=0;n=m;m=m+16|0;i=n;r[i>>2]=t;t=Ea(r[599]|0,e,i)|0;m=n;return t|0}function Ar(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,pe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ce=0,Te=0;t=m;m=m+16|0;n=t;do if(e>>>0<245){i=e>>>0<11?16:e+11&-8;a=i>>>3;o=r[1421]|0;s=o>>>a;if(s&3|0){l=(s&1^1)+a|0;c=5724+(l<<1<<2)|0;d=c+8|0;u=r[d>>2]|0;p=u+8|0;f=r[p>>2]|0;do if((c|0)!=(f|0)){if(f>>>0<(r[1425]|0)>>>0)fe();h=f+12|0;if((r[h>>2]|0)==(u|0)){r[h>>2]=c;r[d>>2]=f;break}else fe()}else r[1421]=o&~(1<<l);while(0);f=l<<3;r[u+4>>2]=f|3;d=u+f+4|0;r[d>>2]=r[d>>2]|1;g=p;m=t;return g|0}d=r[1423]|0;if(i>>>0>d>>>0){if(s|0){f=2<<a;c=s<<a&(f|0-f);f=(c&0-c)+-1|0;c=f>>>12&16;h=f>>>c;f=h>>>5&8;_=h>>>f;h=_>>>2&4;v=_>>>h;_=v>>>1&2;y=v>>>_;v=y>>>1&1;b=(f|c|h|_|v)+(y>>>v)|0;v=5724+(b<<1<<2)|0;y=v+8|0;_=r[y>>2]|0;h=_+8|0;c=r[h>>2]|0;do if((v|0)!=(c|0)){if(c>>>0<(r[1425]|0)>>>0)fe();f=c+12|0;if((r[f>>2]|0)==(_|0)){r[f>>2]=v;r[y>>2]=c;w=o;break}else fe()}else{f=o&~(1<<b);r[1421]=f;w=f}while(0);c=(b<<3)-i|0;r[_+4>>2]=i|3;y=_+i|0;r[y+4>>2]=c|1;r[y+c>>2]=c;if(d|0){v=r[1426]|0;a=d>>>3;s=5724+(a<<1<<2)|0;p=1<<a;if(w&p){a=s+8|0;u=r[a>>2]|0;if(u>>>0<(r[1425]|0)>>>0)fe();else{k=a;M=u}}else{r[1421]=w|p;k=s+8|0;M=s}r[k>>2]=v;r[M+12>>2]=v;r[v+8>>2]=M;r[v+12>>2]=s}r[1423]=c;r[1426]=y;g=h;m=t;return g|0}y=r[1422]|0;if(y){c=(y&0-y)+-1|0;s=c>>>12&16;v=c>>>s;c=v>>>5&8;p=v>>>c;v=p>>>2&4;u=p>>>v;p=u>>>1&2;a=u>>>p;u=a>>>1&1;l=r[5988+((c|s|v|p|u)+(a>>>u)<<2)>>2]|0;u=(r[l+4>>2]&-8)-i|0;a=r[l+16+(((r[l+16>>2]|0)==0&1)<<2)>>2]|0;if(!a){S=u;A=l}else{p=a;a=u;u=l;while(1){l=(r[p+4>>2]&-8)-i|0;v=l>>>0<a>>>0;s=v?l:a;l=v?p:u;p=r[p+16+(((r[p+16>>2]|0)==0&1)<<2)>>2]|0;if(!p){S=s;A=l;break}else{a=s;u=l}}}u=r[1425]|0;if(A>>>0<u>>>0)fe();a=A+i|0;if(A>>>0>=a>>>0)fe();p=r[A+24>>2]|0;h=r[A+12>>2]|0;do if((h|0)==(A|0)){_=A+20|0;b=r[_>>2]|0;if(!b){l=A+16|0;s=r[l>>2]|0;if(!s){C=0;break}else{T=s;E=l}}else{T=b;E=_}while(1){_=T+20|0;b=r[_>>2]|0;if(b|0){T=b;E=_;continue}_=T+16|0;b=r[_>>2]|0;if(!b)break;else{T=b;E=_}}if(E>>>0<u>>>0)fe();else{r[E>>2]=0;C=T;break}}else{_=r[A+8>>2]|0;if(_>>>0<u>>>0)fe();b=_+12|0;if((r[b>>2]|0)!=(A|0))fe();l=h+8|0;if((r[l>>2]|0)==(A|0)){r[b>>2]=h;r[l>>2]=_;C=h;break}else fe()}while(0);e:do if(p|0){h=r[A+28>>2]|0;u=5988+(h<<2)|0;do if((A|0)==(r[u>>2]|0)){r[u>>2]=C;if(!C){r[1422]=y&~(1<<h);break e}}else if(p>>>0>=(r[1425]|0)>>>0){r[p+16+(((r[p+16>>2]|0)!=(A|0)&1)<<2)>>2]=C;if(!C)break e;else break}else fe();while(0);h=r[1425]|0;if(C>>>0<h>>>0)fe();r[C+24>>2]=p;u=r[A+16>>2]|0;do if(u|0)if(u>>>0<h>>>0)fe();else{r[C+16>>2]=u;r[u+24>>2]=C;break}while(0);u=r[A+20>>2]|0;if(u|0)if(u>>>0<(r[1425]|0)>>>0)fe();else{r[C+20>>2]=u;r[u+24>>2]=C;break}}while(0);if(S>>>0<16){p=S+i|0;r[A+4>>2]=p|3;y=A+p+4|0;r[y>>2]=r[y>>2]|1}else{r[A+4>>2]=i|3;r[a+4>>2]=S|1;r[a+S>>2]=S;if(d|0){y=r[1426]|0;p=d>>>3;u=5724+(p<<1<<2)|0;h=1<<p;if(o&h){p=u+8|0;_=r[p>>2]|0;if(_>>>0<(r[1425]|0)>>>0)fe();else{$=p;I=_}}else{r[1421]=o|h;$=u+8|0;I=u}r[$>>2]=y;r[I+12>>2]=y;r[y+8>>2]=I;r[y+12>>2]=u}r[1423]=S;r[1426]=a}g=A+8|0;m=t;return g|0}else x=i}else x=i}else if(e>>>0<=4294967231){u=e+11|0;y=u&-8;h=r[1422]|0;if(h){_=0-y|0;p=u>>>8;if(p)if(y>>>0>16777215)P=31;else{u=(p+1048320|0)>>>16&8;l=p<<u;p=(l+520192|0)>>>16&4;b=l<<p;l=(b+245760|0)>>>16&2;s=14-(p|u|l)+(b<<l>>>15)|0;P=y>>>(s+7|0)&1|s<<1}else P=0;s=r[5988+(P<<2)>>2]|0;e:do if(!s){D=_;R=0;O=0;N=81}else{l=_;b=0;u=y<<((P|0)==31?0:25-(P>>>1)|0);p=s;v=0;while(1){c=(r[p+4>>2]&-8)-y|0;if(c>>>0<l>>>0)if(!c){L=0;F=p;U=p;N=85;break e}else{B=c;H=p}else{B=l;H=v}c=r[p+20>>2]|0;p=r[p+16+(u>>>31<<2)>>2]|0;f=(c|0)==0|(c|0)==(p|0)?b:c;c=(p|0)==0;if(c){D=B;R=f;O=H;N=81;break}else{l=B;b=f;u=u<<((c^1)&1);v=H}}}while(0);if((N|0)==81){if((R|0)==0&(O|0)==0){s=2<<P;_=h&(s|0-s);if(!_){x=y;break}s=(_&0-_)+-1|0;_=s>>>12&16;i=s>>>_;s=i>>>5&8;a=i>>>s;i=a>>>2&4;o=a>>>i;a=o>>>1&2;d=o>>>a;o=d>>>1&1;j=r[5988+((s|_|i|a|o)+(d>>>o)<<2)>>2]|0;V=0}else{j=R;V=O}if(!j){q=D;z=V}else{L=D;F=j;U=V;N=85}}if((N|0)==85)while(1){N=0;o=(r[F+4>>2]&-8)-y|0;d=o>>>0<L>>>0;a=d?o:L;o=d?F:U;F=r[F+16+(((r[F+16>>2]|0)==0&1)<<2)>>2]|0;if(!F){q=a;z=o;break}else{L=a;U=o;N=85}}if((z|0)!=0?q>>>0<((r[1423]|0)-y|0)>>>0:0){o=r[1425]|0;if(z>>>0<o>>>0)fe();a=z+y|0;if(z>>>0>=a>>>0)fe();d=r[z+24>>2]|0;i=r[z+12>>2]|0;do if((i|0)==(z|0)){_=z+20|0;s=r[_>>2]|0;if(!s){v=z+16|0;u=r[v>>2]|0;if(!u){W=0;break}else{G=u;K=v}}else{G=s;K=_}while(1){_=G+20|0;s=r[_>>2]|0;if(s|0){G=s;K=_;continue}_=G+16|0;s=r[_>>2]|0;if(!s)break;else{G=s;K=_}}if(K>>>0<o>>>0)fe();else{r[K>>2]=0;W=G;break}}else{_=r[z+8>>2]|0;if(_>>>0<o>>>0)fe();s=_+12|0;if((r[s>>2]|0)!=(z|0))fe();v=i+8|0;if((r[v>>2]|0)==(z|0)){r[s>>2]=i;r[v>>2]=_;W=i;break}else fe()}while(0);e:do if(d){i=r[z+28>>2]|0;o=5988+(i<<2)|0;do if((z|0)==(r[o>>2]|0)){r[o>>2]=W;if(!W){_=h&~(1<<i);r[1422]=_;Y=_;break e}}else if(d>>>0>=(r[1425]|0)>>>0){r[d+16+(((r[d+16>>2]|0)!=(z|0)&1)<<2)>>2]=W;if(!W){Y=h;break e}else break}else fe();while(0);i=r[1425]|0;if(W>>>0<i>>>0)fe();r[W+24>>2]=d;o=r[z+16>>2]|0;do if(o|0)if(o>>>0<i>>>0)fe();else{r[W+16>>2]=o;r[o+24>>2]=W;break}while(0);o=r[z+20>>2]|0;if(o)if(o>>>0<(r[1425]|0)>>>0)fe();else{r[W+20>>2]=o;r[o+24>>2]=W;Y=h;break}else Y=h}else Y=h;while(0);do if(q>>>0>=16){r[z+4>>2]=y|3;r[a+4>>2]=q|1;r[a+q>>2]=q;h=q>>>3;if(q>>>0<256){d=5724+(h<<1<<2)|0;o=r[1421]|0;i=1<<h;if(o&i){h=d+8|0;_=r[h>>2]|0;if(_>>>0<(r[1425]|0)>>>0)fe();else{X=h;J=_}}else{r[1421]=o|i;X=d+8|0;J=d}r[X>>2]=a;r[J+12>>2]=a;r[a+8>>2]=J;r[a+12>>2]=d;break}d=q>>>8;if(d)if(q>>>0>16777215)Z=31;else{i=(d+1048320|0)>>>16&8;o=d<<i;d=(o+520192|0)>>>16&4;_=o<<d;o=(_+245760|0)>>>16&2;h=14-(d|i|o)+(_<<o>>>15)|0;Z=q>>>(h+7|0)&1|h<<1}else Z=0;h=5988+(Z<<2)|0;r[a+28>>2]=Z;o=a+16|0;r[o+4>>2]=0;r[o>>2]=0;o=1<<Z;if(!(Y&o)){r[1422]=Y|o;r[h>>2]=a;r[a+24>>2]=h;r[a+12>>2]=a;r[a+8>>2]=a;break}o=q<<((Z|0)==31?0:25-(Z>>>1)|0);_=r[h>>2]|0;while(1){if((r[_+4>>2]&-8|0)==(q|0)){N=139;break}Q=_+16+(o>>>31<<2)|0;h=r[Q>>2]|0;if(!h){N=136;break}else{o=o<<1;_=h}}if((N|0)==136)if(Q>>>0<(r[1425]|0)>>>0)fe();else{r[Q>>2]=a;r[a+24>>2]=_;r[a+12>>2]=a;r[a+8>>2]=a;break}else if((N|0)==139){o=_+8|0;h=r[o>>2]|0;i=r[1425]|0;if(h>>>0>=i>>>0&_>>>0>=i>>>0){r[h+12>>2]=a;r[o>>2]=a;r[a+8>>2]=h;r[a+12>>2]=_;r[a+24>>2]=0;break}else fe()}}else{h=q+y|0;r[z+4>>2]=h|3;o=z+h+4|0;r[o>>2]=r[o>>2]|1}while(0);g=z+8|0;m=t;return g|0}else x=y}else x=y}else x=-1;while(0);z=r[1423]|0;if(z>>>0>=x>>>0){q=z-x|0;Q=r[1426]|0;if(q>>>0>15){Z=Q+x|0;r[1426]=Z;r[1423]=q;r[Z+4>>2]=q|1;r[Z+q>>2]=q;r[Q+4>>2]=x|3}else{r[1423]=0;r[1426]=0;r[Q+4>>2]=z|3;q=Q+z+4|0;r[q>>2]=r[q>>2]|1}g=Q+8|0;m=t;return g|0}Q=r[1424]|0;if(Q>>>0>x>>>0){q=Q-x|0;r[1424]=q;z=r[1427]|0;Z=z+x|0;r[1427]=Z;r[Z+4>>2]=q|1;r[z+4>>2]=x|3;g=z+8|0;m=t;return g|0}if(!(r[1539]|0)){r[1541]=4096;r[1540]=4096;r[1542]=-1;r[1543]=-1;r[1544]=0;r[1532]=0;z=n&-16^1431655768;r[n>>2]=z;r[1539]=z;ee=4096}else ee=r[1541]|0;z=x+48|0;n=x+47|0;q=ee+n|0;Z=0-ee|0;ee=q&Z;if(ee>>>0<=x>>>0){g=0;m=t;return g|0}Y=r[1531]|0;if(Y|0?(J=r[1529]|0,X=J+ee|0,X>>>0<=J>>>0|X>>>0>Y>>>0):0){g=0;m=t;return g|0}e:do if(!(r[1532]&4)){Y=r[1427]|0;t:do if(Y){X=6132;while(1){J=r[X>>2]|0;if(J>>>0<=Y>>>0?(te=X+4|0,(J+(r[te>>2]|0)|0)>>>0>Y>>>0):0)break;J=r[X+8>>2]|0;if(!J){N=163;break t}else X=J}_=q-Q&Z;if(_>>>0<2147483647){J=qr(_|0)|0;if((J|0)==((r[X>>2]|0)+(r[te>>2]|0)|0))if((J|0)==(-1|0))ne=_;else{ie=J;ae=_;N=180;break e}else{re=J;oe=_;N=171}}else ne=0}else N=163;while(0);do if((N|0)==163){Y=qr(0)|0;if((Y|0)!=(-1|0)?(y=Y,_=r[1540]|0,J=_+-1|0,W=((J&y|0)==0?0:(J+y&0-_)-y|0)+ee|0,y=r[1529]|0,_=W+y|0,W>>>0>x>>>0&W>>>0<2147483647):0){J=r[1531]|0;if(J|0?_>>>0<=y>>>0|_>>>0>J>>>0:0){ne=0;break}J=qr(W|0)|0;if((J|0)==(Y|0)){ie=Y;ae=W;N=180;break e}else{re=J;oe=W;N=171}}else ne=0}while(0);do if((N|0)==171){W=0-oe|0;if(!(z>>>0>oe>>>0&(oe>>>0<2147483647&(re|0)!=(-1|0))))if((re|0)==(-1|0)){ne=0;break}else{ie=re;ae=oe;N=180;break e}J=r[1541]|0;Y=n-oe+J&0-J;if(Y>>>0>=2147483647){ie=re;ae=oe;N=180;break e}if((qr(Y|0)|0)==(-1|0)){qr(W|0)|0;ne=0;break}else{ie=re;ae=Y+oe|0;N=180;break e}}while(0);r[1532]=r[1532]|4;se=ne;N=178}else{se=0;N=178}while(0);if(((N|0)==178?ee>>>0<2147483647:0)?(ne=qr(ee|0)|0,ee=qr(0)|0,oe=ee-ne|0,re=oe>>>0>(x+40|0)>>>0,!((ne|0)==(-1|0)|re^1|ne>>>0<ee>>>0&((ne|0)!=(-1|0)&(ee|0)!=(-1|0))^1)):0){ie=ne;ae=re?oe:se;N=180}if((N|0)==180){se=(r[1529]|0)+ae|0;r[1529]=se;if(se>>>0>(r[1530]|0)>>>0)r[1530]=se;se=r[1427]|0;do if(se){oe=6132;while(1){le=r[oe>>2]|0;ce=oe+4|0;de=r[ce>>2]|0;if((ie|0)==(le+de|0)){N=190;break}re=r[oe+8>>2]|0;if(!re)break;else oe=re}if(((N|0)==190?(r[oe+12>>2]&8|0)==0:0)?se>>>0<ie>>>0&se>>>0>=le>>>0:0){r[ce>>2]=de+ae;re=se+8|0;ne=(re&7|0)==0?0:0-re&7;re=se+ne|0;ee=(r[1424]|0)+(ae-ne)|0;r[1427]=re;r[1424]=ee;r[re+4>>2]=ee|1;r[re+ee+4>>2]=40;r[1428]=r[1543];break}ee=r[1425]|0;if(ie>>>0<ee>>>0){r[1425]=ie;ue=ie}else ue=ee;ee=ie+ae|0;re=6132;while(1){if((r[re>>2]|0)==(ee|0)){N=198;break}ne=r[re+8>>2]|0;if(!ne)break;else re=ne}if((N|0)==198?(r[re+12>>2]&8|0)==0:0){r[re>>2]=ie;oe=re+4|0;r[oe>>2]=(r[oe>>2]|0)+ae;oe=ie+8|0;ne=ie+((oe&7|0)==0?0:0-oe&7)|0;oe=ee+8|0;n=ee+((oe&7|0)==0?0:0-oe&7)|0;oe=ne+x|0;z=n-ne-x|0;r[ne+4>>2]=x|3;do if((n|0)!=(se|0)){if((n|0)==(r[1426]|0)){te=(r[1423]|0)+z|0;r[1423]=te;r[1426]=oe;r[oe+4>>2]=te|1;r[oe+te>>2]=te;break}te=r[n+4>>2]|0;if((te&3|0)==1){Z=te&-8;Q=te>>>3;e:do if(te>>>0>=256){q=r[n+24>>2]|0;Y=r[n+12>>2]|0;do if((Y|0)==(n|0)){W=n+16|0;J=W+4|0;_=r[J>>2]|0;if(!_){y=r[W>>2]|0;if(!y){pe=0;break}else{me=y;he=W}}else{me=_;he=J}while(1){J=me+20|0;_=r[J>>2]|0;if(_|0){me=_;he=J;continue}J=me+16|0;_=r[J>>2]|0;if(!_)break;else{me=_;he=J}}if(he>>>0<ue>>>0)fe();else{r[he>>2]=0;pe=me;break}}else{J=r[n+8>>2]|0;if(J>>>0<ue>>>0)fe();_=J+12|0;if((r[_>>2]|0)!=(n|0))fe();W=Y+8|0;if((r[W>>2]|0)==(n|0)){r[_>>2]=Y;r[W>>2]=J;pe=Y;break}else fe()}while(0);if(!q)break;Y=r[n+28>>2]|0;J=5988+(Y<<2)|0;do if((n|0)!=(r[J>>2]|0))if(q>>>0>=(r[1425]|0)>>>0){r[q+16+(((r[q+16>>2]|0)!=(n|0)&1)<<2)>>2]=pe;if(!pe)break e;else break}else fe();else{r[J>>2]=pe;if(pe|0)break;r[1422]=r[1422]&~(1<<Y);break e}while(0);Y=r[1425]|0;if(pe>>>0<Y>>>0)fe();r[pe+24>>2]=q;J=n+16|0;W=r[J>>2]|0;do if(W|0)if(W>>>0<Y>>>0)fe();else{r[pe+16>>2]=W;r[W+24>>2]=pe;break}while(0);W=r[J+4>>2]|0;if(!W)break;if(W>>>0<(r[1425]|0)>>>0)fe();else{r[pe+20>>2]=W;r[W+24>>2]=pe;break}}else{W=r[n+8>>2]|0;Y=r[n+12>>2]|0;q=5724+(Q<<1<<2)|0;do if((W|0)!=(q|0)){if(W>>>0<ue>>>0)fe();if((r[W+12>>2]|0)==(n|0))break;fe()}while(0);if((Y|0)==(W|0)){r[1421]=r[1421]&~(1<<Q);break}do if((Y|0)==(q|0))ge=Y+8|0;else{if(Y>>>0<ue>>>0)fe();J=Y+8|0;if((r[J>>2]|0)==(n|0)){ge=J;break}fe()}while(0);r[W+12>>2]=Y;r[ge>>2]=W}while(0);_e=n+Z|0;ve=Z+z|0}else{_e=n;ve=z}Q=_e+4|0;r[Q>>2]=r[Q>>2]&-2;r[oe+4>>2]=ve|1;r[oe+ve>>2]=ve;Q=ve>>>3;if(ve>>>0<256){te=5724+(Q<<1<<2)|0;X=r[1421]|0;q=1<<Q;do if(!(X&q)){r[1421]=X|q;ye=te+8|0;be=te}else{Q=te+8|0;J=r[Q>>2]|0;if(J>>>0>=(r[1425]|0)>>>0){ye=Q;be=J;break}fe()}while(0);r[ye>>2]=oe;r[be+12>>2]=oe;r[oe+8>>2]=be;r[oe+12>>2]=te;break}q=ve>>>8;do if(!q)we=0;else{if(ve>>>0>16777215){we=31;break}X=(q+1048320|0)>>>16&8;Z=q<<X;J=(Z+520192|0)>>>16&4;Q=Z<<J;Z=(Q+245760|0)>>>16&2;_=14-(J|X|Z)+(Q<<Z>>>15)|0;we=ve>>>(_+7|0)&1|_<<1}while(0);q=5988+(we<<2)|0;r[oe+28>>2]=we;te=oe+16|0;r[te+4>>2]=0;r[te>>2]=0;te=r[1422]|0;_=1<<we;if(!(te&_)){r[1422]=te|_;r[q>>2]=oe;r[oe+24>>2]=q;r[oe+12>>2]=oe;r[oe+8>>2]=oe;break}_=ve<<((we|0)==31?0:25-(we>>>1)|0);te=r[q>>2]|0;while(1){if((r[te+4>>2]&-8|0)==(ve|0)){N=265;break}ke=te+16+(_>>>31<<2)|0;q=r[ke>>2]|0;if(!q){N=262;break}else{_=_<<1;te=q}}if((N|0)==262)if(ke>>>0<(r[1425]|0)>>>0)fe();else{r[ke>>2]=oe;r[oe+24>>2]=te;r[oe+12>>2]=oe;r[oe+8>>2]=oe;break}else if((N|0)==265){_=te+8|0;q=r[_>>2]|0;Z=r[1425]|0;if(q>>>0>=Z>>>0&te>>>0>=Z>>>0){r[q+12>>2]=oe;r[_>>2]=oe;r[oe+8>>2]=q;r[oe+12>>2]=te;r[oe+24>>2]=0;break}else fe()}}else{q=(r[1424]|0)+z|0;r[1424]=q;r[1427]=oe;r[oe+4>>2]=q|1}while(0);g=ne+8|0;m=t;return g|0}oe=6132;while(1){z=r[oe>>2]|0;if(z>>>0<=se>>>0?(Me=z+(r[oe+4>>2]|0)|0,Me>>>0>se>>>0):0)break;oe=r[oe+8>>2]|0}oe=Me+-47|0;ne=oe+8|0;z=oe+((ne&7|0)==0?0:0-ne&7)|0;ne=se+16|0;oe=z>>>0<ne>>>0?se:z;z=oe+8|0;n=ie+8|0;ee=(n&7|0)==0?0:0-n&7;n=ie+ee|0;re=ae+-40-ee|0;r[1427]=n;r[1424]=re;r[n+4>>2]=re|1;r[n+re+4>>2]=40;r[1428]=r[1543];re=oe+4|0;r[re>>2]=27;r[z>>2]=r[1533];r[z+4>>2]=r[1534];r[z+8>>2]=r[1535];r[z+12>>2]=r[1536];r[1533]=ie;r[1534]=ae;r[1536]=0;r[1535]=z;z=oe+24|0;do{n=z;z=z+4|0;r[z>>2]=7}while((n+8|0)>>>0<Me>>>0);if((oe|0)!=(se|0)){z=oe-se|0;r[re>>2]=r[re>>2]&-2;r[se+4>>2]=z|1;r[oe>>2]=z;n=z>>>3;if(z>>>0<256){ee=5724+(n<<1<<2)|0;q=r[1421]|0;_=1<<n;if(q&_){n=ee+8|0;Z=r[n>>2]|0;if(Z>>>0<(r[1425]|0)>>>0)fe();else{Se=n;Ae=Z}}else{r[1421]=q|_;Se=ee+8|0;Ae=ee}r[Se>>2]=se;r[Ae+12>>2]=se;r[se+8>>2]=Ae;r[se+12>>2]=ee;break}ee=z>>>8;if(ee)if(z>>>0>16777215)Ce=31;else{_=(ee+1048320|0)>>>16&8;q=ee<<_;ee=(q+520192|0)>>>16&4;Z=q<<ee;q=(Z+245760|0)>>>16&2;n=14-(ee|_|q)+(Z<<q>>>15)|0;Ce=z>>>(n+7|0)&1|n<<1}else Ce=0;n=5988+(Ce<<2)|0;r[se+28>>2]=Ce;r[se+20>>2]=0;r[ne>>2]=0;q=r[1422]|0;Z=1<<Ce;if(!(q&Z)){r[1422]=q|Z;r[n>>2]=se;r[se+24>>2]=n;r[se+12>>2]=se;r[se+8>>2]=se;break}Z=z<<((Ce|0)==31?0:25-(Ce>>>1)|0);q=r[n>>2]|0;while(1){if((r[q+4>>2]&-8|0)==(z|0)){N=292;break}Te=q+16+(Z>>>31<<2)|0;n=r[Te>>2]|0;if(!n){N=289;break}else{Z=Z<<1;q=n}}if((N|0)==289)if(Te>>>0<(r[1425]|0)>>>0)fe();else{r[Te>>2]=se;r[se+24>>2]=q;r[se+12>>2]=se;r[se+8>>2]=se;break}else if((N|0)==292){Z=q+8|0;z=r[Z>>2]|0;ne=r[1425]|0;if(z>>>0>=ne>>>0&q>>>0>=ne>>>0){r[z+12>>2]=se;r[Z>>2]=se;r[se+8>>2]=z;r[se+12>>2]=q;r[se+24>>2]=0;break}else fe()}}}else{z=r[1425]|0;if((z|0)==0|ie>>>0<z>>>0)r[1425]=ie;r[1533]=ie;r[1534]=ae;r[1536]=0;r[1430]=r[1539];r[1429]=-1;z=0;do{Z=5724+(z<<1<<2)|0;r[Z+12>>2]=Z;r[Z+8>>2]=Z;z=z+1|0}while((z|0)!=32);z=ie+8|0;q=(z&7|0)==0?0:0-z&7;z=ie+q|0;Z=ae+-40-q|0;r[1427]=z;r[1424]=Z;r[z+4>>2]=Z|1;r[z+Z+4>>2]=40;r[1428]=r[1543]}while(0);ae=r[1424]|0;if(ae>>>0>x>>>0){ie=ae-x|0;r[1424]=ie;ae=r[1427]|0;se=ae+x|0;r[1427]=se;r[se+4>>2]=ie|1;r[ae+4>>2]=x|3;g=ae+8|0;m=t;return g|0}}r[(ya()|0)>>2]=12;g=0;m=t;return g|0}function Cr(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0;if(!e)return;t=e+-8|0;n=r[1425]|0;if(t>>>0<n>>>0)fe();i=r[e+-4>>2]|0;e=i&3;if((e|0)==1)fe();a=i&-8;o=t+a|0;e:do if(!(i&1)){s=r[t>>2]|0;if(!e)return;l=t+(0-s)|0;c=s+a|0;if(l>>>0<n>>>0)fe();if((l|0)==(r[1426]|0)){d=o+4|0;u=r[d>>2]|0;if((u&3|0)!=3){p=l;f=l;m=c;break}r[1423]=c;r[d>>2]=u&-2;r[l+4>>2]=c|1;r[l+c>>2]=c;return}u=s>>>3;if(s>>>0<256){s=r[l+8>>2]|0;d=r[l+12>>2]|0;h=5724+(u<<1<<2)|0;if((s|0)!=(h|0)){if(s>>>0<n>>>0)fe();if((r[s+12>>2]|0)!=(l|0))fe()}if((d|0)==(s|0)){r[1421]=r[1421]&~(1<<u);p=l;f=l;m=c;break}if((d|0)!=(h|0)){if(d>>>0<n>>>0)fe();h=d+8|0;if((r[h>>2]|0)==(l|0))g=h;else fe()}else g=d+8|0;r[s+12>>2]=d;r[g>>2]=s;p=l;f=l;m=c;break}s=r[l+24>>2]|0;d=r[l+12>>2]|0;do if((d|0)==(l|0)){h=l+16|0;u=h+4|0;_=r[u>>2]|0;if(!_){v=r[h>>2]|0;if(!v){y=0;break}else{b=v;w=h}}else{b=_;w=u}while(1){u=b+20|0;_=r[u>>2]|0;if(_|0){b=_;w=u;continue}u=b+16|0;_=r[u>>2]|0;if(!_)break;else{b=_;w=u}}if(w>>>0<n>>>0)fe();else{r[w>>2]=0;y=b;break}}else{u=r[l+8>>2]|0;if(u>>>0<n>>>0)fe();_=u+12|0;if((r[_>>2]|0)!=(l|0))fe();h=d+8|0;if((r[h>>2]|0)==(l|0)){r[_>>2]=d;r[h>>2]=u;y=d;break}else fe()}while(0);if(s){d=r[l+28>>2]|0;u=5988+(d<<2)|0;do if((l|0)==(r[u>>2]|0)){r[u>>2]=y;if(!y){r[1422]=r[1422]&~(1<<d);p=l;f=l;m=c;break e}}else if(s>>>0>=(r[1425]|0)>>>0){r[s+16+(((r[s+16>>2]|0)!=(l|0)&1)<<2)>>2]=y;if(!y){p=l;f=l;m=c;break e}else break}else fe();while(0);d=r[1425]|0;if(y>>>0<d>>>0)fe();r[y+24>>2]=s;u=l+16|0;h=r[u>>2]|0;do if(h|0)if(h>>>0<d>>>0)fe();else{r[y+16>>2]=h;r[h+24>>2]=y;break}while(0);h=r[u+4>>2]|0;if(h)if(h>>>0<(r[1425]|0)>>>0)fe();else{r[y+20>>2]=h;r[h+24>>2]=y;p=l;f=l;m=c;break}else{p=l;f=l;m=c}}else{p=l;f=l;m=c}}else{p=t;f=t;m=a}while(0);if(p>>>0>=o>>>0)fe();a=o+4|0;t=r[a>>2]|0;if(!(t&1))fe();if(!(t&2)){y=r[1426]|0;if((o|0)==(r[1427]|0)){n=(r[1424]|0)+m|0;r[1424]=n;r[1427]=f;r[f+4>>2]=n|1;if((f|0)!=(y|0))return;r[1426]=0;r[1423]=0;return}if((o|0)==(y|0)){y=(r[1423]|0)+m|0;r[1423]=y;r[1426]=p;r[f+4>>2]=y|1;r[p+y>>2]=y;return}y=(t&-8)+m|0;n=t>>>3;e:do if(t>>>0>=256){b=r[o+24>>2]|0;w=r[o+12>>2]|0;do if((w|0)==(o|0)){g=o+16|0;e=g+4|0;i=r[e>>2]|0;if(!i){h=r[g>>2]|0;if(!h){k=0;break}else{M=h;S=g}}else{M=i;S=e}while(1){e=M+20|0;i=r[e>>2]|0;if(i|0){M=i;S=e;continue}e=M+16|0;i=r[e>>2]|0;if(!i)break;else{M=i;S=e}}if(S>>>0<(r[1425]|0)>>>0)fe();else{r[S>>2]=0;k=M;break}}else{e=r[o+8>>2]|0;if(e>>>0<(r[1425]|0)>>>0)fe();i=e+12|0;if((r[i>>2]|0)!=(o|0))fe();g=w+8|0;if((r[g>>2]|0)==(o|0)){r[i>>2]=w;r[g>>2]=e;k=w;break}else fe()}while(0);if(b|0){w=r[o+28>>2]|0;c=5988+(w<<2)|0;do if((o|0)==(r[c>>2]|0)){r[c>>2]=k;if(!k){r[1422]=r[1422]&~(1<<w);break e}}else if(b>>>0>=(r[1425]|0)>>>0){r[b+16+(((r[b+16>>2]|0)!=(o|0)&1)<<2)>>2]=k;if(!k)break e;else break}else fe();while(0);w=r[1425]|0;if(k>>>0<w>>>0)fe();r[k+24>>2]=b;c=o+16|0;l=r[c>>2]|0;do if(l|0)if(l>>>0<w>>>0)fe();else{r[k+16>>2]=l;r[l+24>>2]=k;break}while(0);l=r[c+4>>2]|0;if(l|0)if(l>>>0<(r[1425]|0)>>>0)fe();else{r[k+20>>2]=l;r[l+24>>2]=k;break}}}else{l=r[o+8>>2]|0;w=r[o+12>>2]|0;b=5724+(n<<1<<2)|0;if((l|0)!=(b|0)){if(l>>>0<(r[1425]|0)>>>0)fe();if((r[l+12>>2]|0)!=(o|0))fe()}if((w|0)==(l|0)){r[1421]=r[1421]&~(1<<n);break}if((w|0)!=(b|0)){if(w>>>0<(r[1425]|0)>>>0)fe();b=w+8|0;if((r[b>>2]|0)==(o|0))A=b;else fe()}else A=w+8|0;r[l+12>>2]=w;r[A>>2]=l}while(0);r[f+4>>2]=y|1;r[p+y>>2]=y;if((f|0)==(r[1426]|0)){r[1423]=y;return}else C=y}else{r[a>>2]=t&-2;r[f+4>>2]=m|1;r[p+m>>2]=m;C=m}m=C>>>3;if(C>>>0<256){p=5724+(m<<1<<2)|0;t=r[1421]|0;a=1<<m;if(t&a){m=p+8|0;y=r[m>>2]|0;if(y>>>0<(r[1425]|0)>>>0)fe();else{T=m;E=y}}else{r[1421]=t|a;T=p+8|0;E=p}r[T>>2]=f;r[E+12>>2]=f;r[f+8>>2]=E;r[f+12>>2]=p;return}p=C>>>8;if(p)if(C>>>0>16777215)$=31;else{E=(p+1048320|0)>>>16&8;T=p<<E;p=(T+520192|0)>>>16&4;a=T<<p;T=(a+245760|0)>>>16&2;t=14-(p|E|T)+(a<<T>>>15)|0;$=C>>>(t+7|0)&1|t<<1}else $=0;t=5988+($<<2)|0;r[f+28>>2]=$;r[f+20>>2]=0;r[f+16>>2]=0;T=r[1422]|0;a=1<<$;do if(T&a){E=C<<(($|0)==31?0:25-($>>>1)|0);p=r[t>>2]|0;while(1){if((r[p+4>>2]&-8|0)==(C|0)){I=124;break}x=p+16+(E>>>31<<2)|0;y=r[x>>2]|0;if(!y){I=121;break}else{E=E<<1;p=y}}if((I|0)==121)if(x>>>0<(r[1425]|0)>>>0)fe();else{r[x>>2]=f;r[f+24>>2]=p;r[f+12>>2]=f;r[f+8>>2]=f;break}else if((I|0)==124){E=p+8|0;c=r[E>>2]|0;y=r[1425]|0;if(c>>>0>=y>>>0&p>>>0>=y>>>0){r[c+12>>2]=f;r[E>>2]=f;r[f+8>>2]=c;r[f+12>>2]=p;r[f+24>>2]=0;break}else fe()}}else{r[1422]=T|a;r[t>>2]=f;r[f+24>>2]=t;r[f+12>>2]=f;r[f+8>>2]=f}while(0);f=(r[1429]|0)+-1|0;r[1429]=f;if(!f)P=6140;else return;while(1){f=r[P>>2]|0;if(!f)break;else P=f+8|0}r[1429]=-1;return}function Tr(e,t){e=e|0;t=t|0;var n=0,i=0;if(e){n=G(t,e)|0;if((t|e)>>>0>65535)i=((n>>>0)/(e>>>0)|0|0)==(t|0)?n:-1;else i=n}else i=0;n=Ar(i)|0;
if(!n)return n|0;if(!(r[n+-4>>2]&3))return n|0;Or(n|0,0,i|0)|0;return n|0}function Er(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;if(!e){n=Ar(t)|0;return n|0}if(t>>>0>4294967231){r[(ya()|0)>>2]=12;n=0;return n|0}i=$r(e+-8|0,t>>>0<11?16:t+11&-8)|0;if(i|0){n=i+8|0;return n|0}i=Ar(t)|0;if(!i){n=0;return n|0}a=r[e+-4>>2]|0;o=(a&-8)-((a&3|0)==0?8:4)|0;zr(i|0,e|0,(o>>>0<t>>>0?o:t)|0)|0;Cr(e);n=i;return n|0}function $r(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;n=e+4|0;i=r[n>>2]|0;a=i&-8;o=e+a|0;s=r[1425]|0;l=i&3;if(!((l|0)!=1&e>>>0>=s>>>0&e>>>0<o>>>0))fe();c=r[o+4>>2]|0;if(!(c&1))fe();if(!l){if(t>>>0<256){d=0;return d|0}if(a>>>0>=(t+4|0)>>>0?(a-t|0)>>>0<=r[1541]<<1>>>0:0){d=e;return d|0}d=0;return d|0}if(a>>>0>=t>>>0){l=a-t|0;if(l>>>0<=15){d=e;return d|0}u=e+t|0;r[n>>2]=i&1|t|2;r[u+4>>2]=l|3;p=u+l+4|0;r[p>>2]=r[p>>2]|1;Ir(u,l);d=e;return d|0}if((o|0)==(r[1427]|0)){l=(r[1424]|0)+a|0;u=l-t|0;p=e+t|0;if(l>>>0<=t>>>0){d=0;return d|0}r[n>>2]=i&1|t|2;r[p+4>>2]=u|1;r[1427]=p;r[1424]=u;d=e;return d|0}if((o|0)==(r[1426]|0)){u=(r[1423]|0)+a|0;if(u>>>0<t>>>0){d=0;return d|0}p=u-t|0;l=i&1;if(p>>>0>15){f=e+t|0;m=f+p|0;r[n>>2]=l|t|2;r[f+4>>2]=p|1;r[m>>2]=p;h=m+4|0;r[h>>2]=r[h>>2]&-2;g=f;_=p}else{r[n>>2]=l|u|2;l=e+u+4|0;r[l>>2]=r[l>>2]|1;g=0;_=0}r[1423]=_;r[1426]=g;d=e;return d|0}if(c&2|0){d=0;return d|0}g=(c&-8)+a|0;if(g>>>0<t>>>0){d=0;return d|0}a=g-t|0;_=c>>>3;e:do if(c>>>0>=256){l=r[o+24>>2]|0;u=r[o+12>>2]|0;do if((u|0)==(o|0)){p=o+16|0;f=p+4|0;h=r[f>>2]|0;if(!h){m=r[p>>2]|0;if(!m){v=0;break}else{y=m;b=p}}else{y=h;b=f}while(1){f=y+20|0;h=r[f>>2]|0;if(h|0){y=h;b=f;continue}f=y+16|0;h=r[f>>2]|0;if(!h)break;else{y=h;b=f}}if(b>>>0<s>>>0)fe();else{r[b>>2]=0;v=y;break}}else{f=r[o+8>>2]|0;if(f>>>0<s>>>0)fe();h=f+12|0;if((r[h>>2]|0)!=(o|0))fe();p=u+8|0;if((r[p>>2]|0)==(o|0)){r[h>>2]=u;r[p>>2]=f;v=u;break}else fe()}while(0);if(l|0){u=r[o+28>>2]|0;f=5988+(u<<2)|0;do if((o|0)==(r[f>>2]|0)){r[f>>2]=v;if(!v){r[1422]=r[1422]&~(1<<u);break e}}else if(l>>>0>=(r[1425]|0)>>>0){r[l+16+(((r[l+16>>2]|0)!=(o|0)&1)<<2)>>2]=v;if(!v)break e;else break}else fe();while(0);u=r[1425]|0;if(v>>>0<u>>>0)fe();r[v+24>>2]=l;f=o+16|0;p=r[f>>2]|0;do if(p|0)if(p>>>0<u>>>0)fe();else{r[v+16>>2]=p;r[p+24>>2]=v;break}while(0);p=r[f+4>>2]|0;if(p|0)if(p>>>0<(r[1425]|0)>>>0)fe();else{r[v+20>>2]=p;r[p+24>>2]=v;break}}}else{p=r[o+8>>2]|0;u=r[o+12>>2]|0;l=5724+(_<<1<<2)|0;if((p|0)!=(l|0)){if(p>>>0<s>>>0)fe();if((r[p+12>>2]|0)!=(o|0))fe()}if((u|0)==(p|0)){r[1421]=r[1421]&~(1<<_);break}if((u|0)!=(l|0)){if(u>>>0<s>>>0)fe();l=u+8|0;if((r[l>>2]|0)==(o|0))w=l;else fe()}else w=u+8|0;r[p+12>>2]=u;r[w>>2]=p}while(0);w=i&1;if(a>>>0<16){r[n>>2]=g|w|2;i=e+g+4|0;r[i>>2]=r[i>>2]|1;d=e;return d|0}else{i=e+t|0;r[n>>2]=w|t|2;r[i+4>>2]=a|3;t=i+a+4|0;r[t>>2]=r[t>>2]|1;Ir(i,a);d=e;return d|0}return 0}function Ir(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0;n=e+t|0;i=r[e+4>>2]|0;e:do if(!(i&1)){a=r[e>>2]|0;if(!(i&3))return;o=e+(0-a)|0;s=a+t|0;l=r[1425]|0;if(o>>>0<l>>>0)fe();if((o|0)==(r[1426]|0)){c=n+4|0;d=r[c>>2]|0;if((d&3|0)!=3){u=o;p=s;break}r[1423]=s;r[c>>2]=d&-2;r[o+4>>2]=s|1;r[o+s>>2]=s;return}d=a>>>3;if(a>>>0<256){a=r[o+8>>2]|0;c=r[o+12>>2]|0;f=5724+(d<<1<<2)|0;if((a|0)!=(f|0)){if(a>>>0<l>>>0)fe();if((r[a+12>>2]|0)!=(o|0))fe()}if((c|0)==(a|0)){r[1421]=r[1421]&~(1<<d);u=o;p=s;break}if((c|0)!=(f|0)){if(c>>>0<l>>>0)fe();f=c+8|0;if((r[f>>2]|0)==(o|0))m=f;else fe()}else m=c+8|0;r[a+12>>2]=c;r[m>>2]=a;u=o;p=s;break}a=r[o+24>>2]|0;c=r[o+12>>2]|0;do if((c|0)==(o|0)){f=o+16|0;d=f+4|0;h=r[d>>2]|0;if(!h){g=r[f>>2]|0;if(!g){_=0;break}else{v=g;y=f}}else{v=h;y=d}while(1){d=v+20|0;h=r[d>>2]|0;if(h|0){v=h;y=d;continue}d=v+16|0;h=r[d>>2]|0;if(!h)break;else{v=h;y=d}}if(y>>>0<l>>>0)fe();else{r[y>>2]=0;_=v;break}}else{d=r[o+8>>2]|0;if(d>>>0<l>>>0)fe();h=d+12|0;if((r[h>>2]|0)!=(o|0))fe();f=c+8|0;if((r[f>>2]|0)==(o|0)){r[h>>2]=c;r[f>>2]=d;_=c;break}else fe()}while(0);if(a){c=r[o+28>>2]|0;l=5988+(c<<2)|0;do if((o|0)==(r[l>>2]|0)){r[l>>2]=_;if(!_){r[1422]=r[1422]&~(1<<c);u=o;p=s;break e}}else if(a>>>0>=(r[1425]|0)>>>0){r[a+16+(((r[a+16>>2]|0)!=(o|0)&1)<<2)>>2]=_;if(!_){u=o;p=s;break e}else break}else fe();while(0);c=r[1425]|0;if(_>>>0<c>>>0)fe();r[_+24>>2]=a;l=o+16|0;d=r[l>>2]|0;do if(d|0)if(d>>>0<c>>>0)fe();else{r[_+16>>2]=d;r[d+24>>2]=_;break}while(0);d=r[l+4>>2]|0;if(d)if(d>>>0<(r[1425]|0)>>>0)fe();else{r[_+20>>2]=d;r[d+24>>2]=_;u=o;p=s;break}else{u=o;p=s}}else{u=o;p=s}}else{u=e;p=t}while(0);t=r[1425]|0;if(n>>>0<t>>>0)fe();e=n+4|0;_=r[e>>2]|0;if(!(_&2)){v=r[1426]|0;if((n|0)==(r[1427]|0)){y=(r[1424]|0)+p|0;r[1424]=y;r[1427]=u;r[u+4>>2]=y|1;if((u|0)!=(v|0))return;r[1426]=0;r[1423]=0;return}if((n|0)==(v|0)){v=(r[1423]|0)+p|0;r[1423]=v;r[1426]=u;r[u+4>>2]=v|1;r[u+v>>2]=v;return}v=(_&-8)+p|0;y=_>>>3;e:do if(_>>>0>=256){m=r[n+24>>2]|0;i=r[n+12>>2]|0;do if((i|0)==(n|0)){d=n+16|0;c=d+4|0;a=r[c>>2]|0;if(!a){f=r[d>>2]|0;if(!f){b=0;break}else{w=f;k=d}}else{w=a;k=c}while(1){c=w+20|0;a=r[c>>2]|0;if(a|0){w=a;k=c;continue}c=w+16|0;a=r[c>>2]|0;if(!a)break;else{w=a;k=c}}if(k>>>0<t>>>0)fe();else{r[k>>2]=0;b=w;break}}else{c=r[n+8>>2]|0;if(c>>>0<t>>>0)fe();a=c+12|0;if((r[a>>2]|0)!=(n|0))fe();d=i+8|0;if((r[d>>2]|0)==(n|0)){r[a>>2]=i;r[d>>2]=c;b=i;break}else fe()}while(0);if(m|0){i=r[n+28>>2]|0;s=5988+(i<<2)|0;do if((n|0)==(r[s>>2]|0)){r[s>>2]=b;if(!b){r[1422]=r[1422]&~(1<<i);break e}}else if(m>>>0>=(r[1425]|0)>>>0){r[m+16+(((r[m+16>>2]|0)!=(n|0)&1)<<2)>>2]=b;if(!b)break e;else break}else fe();while(0);i=r[1425]|0;if(b>>>0<i>>>0)fe();r[b+24>>2]=m;s=n+16|0;o=r[s>>2]|0;do if(o|0)if(o>>>0<i>>>0)fe();else{r[b+16>>2]=o;r[o+24>>2]=b;break}while(0);o=r[s+4>>2]|0;if(o|0)if(o>>>0<(r[1425]|0)>>>0)fe();else{r[b+20>>2]=o;r[o+24>>2]=b;break}}}else{o=r[n+8>>2]|0;i=r[n+12>>2]|0;m=5724+(y<<1<<2)|0;if((o|0)!=(m|0)){if(o>>>0<t>>>0)fe();if((r[o+12>>2]|0)!=(n|0))fe()}if((i|0)==(o|0)){r[1421]=r[1421]&~(1<<y);break}if((i|0)!=(m|0)){if(i>>>0<t>>>0)fe();m=i+8|0;if((r[m>>2]|0)==(n|0))M=m;else fe()}else M=i+8|0;r[o+12>>2]=i;r[M>>2]=o}while(0);r[u+4>>2]=v|1;r[u+v>>2]=v;if((u|0)==(r[1426]|0)){r[1423]=v;return}else S=v}else{r[e>>2]=_&-2;r[u+4>>2]=p|1;r[u+p>>2]=p;S=p}p=S>>>3;if(S>>>0<256){_=5724+(p<<1<<2)|0;e=r[1421]|0;v=1<<p;if(e&v){p=_+8|0;M=r[p>>2]|0;if(M>>>0<(r[1425]|0)>>>0)fe();else{A=p;C=M}}else{r[1421]=e|v;A=_+8|0;C=_}r[A>>2]=u;r[C+12>>2]=u;r[u+8>>2]=C;r[u+12>>2]=_;return}_=S>>>8;if(_)if(S>>>0>16777215)T=31;else{C=(_+1048320|0)>>>16&8;A=_<<C;_=(A+520192|0)>>>16&4;v=A<<_;A=(v+245760|0)>>>16&2;e=14-(_|C|A)+(v<<A>>>15)|0;T=S>>>(e+7|0)&1|e<<1}else T=0;e=5988+(T<<2)|0;r[u+28>>2]=T;r[u+20>>2]=0;r[u+16>>2]=0;A=r[1422]|0;v=1<<T;if(!(A&v)){r[1422]=A|v;r[e>>2]=u;r[u+24>>2]=e;r[u+12>>2]=u;r[u+8>>2]=u;return}v=S<<((T|0)==31?0:25-(T>>>1)|0);T=r[e>>2]|0;while(1){if((r[T+4>>2]&-8|0)==(S|0)){E=121;break}$=T+16+(v>>>31<<2)|0;e=r[$>>2]|0;if(!e){E=118;break}else{v=v<<1;T=e}}if((E|0)==118){if($>>>0<(r[1425]|0)>>>0)fe();r[$>>2]=u;r[u+24>>2]=T;r[u+12>>2]=u;r[u+8>>2]=u;return}else if((E|0)==121){E=T+8|0;$=r[E>>2]|0;v=r[1425]|0;if(!($>>>0>=v>>>0&T>>>0>=v>>>0))fe();r[$+12>>2]=u;r[E>>2]=u;r[u+8>>2]=$;r[u+12>>2]=T;r[u+24>>2]=0;return}}function xr(){}function Pr(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){P=t>>n;return e>>>n|(t&(1<<n)-1)<<32-n}P=(t|0)<0?-1:0;return t>>n-32|0}function Dr(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0;a=t-i>>>0;a=t-i-(n>>>0>e>>>0|0)>>>0;return(P=a,e-n>>>0|0)|0}function Rr(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0;a=e+n>>>0;return(P=t+i+(a>>>0<e>>>0|0)>>>0,a|0)|0}function Or(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0;a=e+n|0;t=t&255;if((n|0)>=67){while(e&3){i[e>>0]=t;e=e+1|0}o=a&-4|0;s=o-64|0;l=t|t<<8|t<<16|t<<24;while((e|0)<=(s|0)){r[e>>2]=l;r[e+4>>2]=l;r[e+8>>2]=l;r[e+12>>2]=l;r[e+16>>2]=l;r[e+20>>2]=l;r[e+24>>2]=l;r[e+28>>2]=l;r[e+32>>2]=l;r[e+36>>2]=l;r[e+40>>2]=l;r[e+44>>2]=l;r[e+48>>2]=l;r[e+52>>2]=l;r[e+56>>2]=l;r[e+60>>2]=l;e=e+64|0}while((e|0)<(o|0)){r[e>>2]=l;e=e+4|0}}while((e|0)<(a|0)){i[e>>0]=t;e=e+1|0}return a-n|0}function Nr(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){P=t>>>n;return e>>>n|(t&(1<<n)-1)<<32-n}P=0;return t>>>n-32|0}function Lr(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){P=t<<n|(e&(1<<n)-1<<32-n)>>>32-n;return e<<n}P=e<<n-32;return 0}function Fr(e){e=e|0;var t=0;t=i[g+(e&255)>>0]|0;if((t|0)<8)return t|0;t=i[g+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=i[g+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(i[g+(e>>>24)>>0]|0)+24|0}function Ur(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,D=0;o=e;s=t;l=s;c=n;d=i;u=d;if(!l){p=(a|0)!=0;if(!u){if(p){r[a>>2]=(o>>>0)%(c>>>0);r[a+4>>2]=0}f=0;m=(o>>>0)/(c>>>0)>>>0;return(P=f,m)|0}else{if(!p){f=0;m=0;return(P=f,m)|0}r[a>>2]=e|0;r[a+4>>2]=t&0;f=0;m=0;return(P=f,m)|0}}p=(u|0)==0;do if(c){if(!p){h=(X(u|0)|0)-(X(l|0)|0)|0;if(h>>>0<=31){g=h+1|0;_=31-h|0;v=h-31>>31;y=g;b=o>>>(g>>>0)&v|l<<_;w=l>>>(g>>>0)&v;k=0;M=o<<_;break}if(!a){f=0;m=0;return(P=f,m)|0}r[a>>2]=e|0;r[a+4>>2]=s|t&0;f=0;m=0;return(P=f,m)|0}_=c-1|0;if(_&c|0){v=(X(c|0)|0)+33-(X(l|0)|0)|0;g=64-v|0;h=32-v|0;S=h>>31;A=v-32|0;C=A>>31;y=v;b=h-1>>31&l>>>(A>>>0)|(l<<h|o>>>(v>>>0))&C;w=C&l>>>(v>>>0);k=o<<g&S;M=(l<<g|o>>>(A>>>0))&S|o<<h&v-33>>31;break}if(a|0){r[a>>2]=_&o;r[a+4>>2]=0}if((c|0)==1){f=s|t&0;m=e|0|0;return(P=f,m)|0}else{_=Fr(c|0)|0;f=l>>>(_>>>0)|0;m=l<<32-_|o>>>(_>>>0)|0;return(P=f,m)|0}}else{if(p){if(a|0){r[a>>2]=(l>>>0)%(c>>>0);r[a+4>>2]=0}f=0;m=(l>>>0)/(c>>>0)>>>0;return(P=f,m)|0}if(!o){if(a|0){r[a>>2]=0;r[a+4>>2]=(l>>>0)%(u>>>0)}f=0;m=(l>>>0)/(u>>>0)>>>0;return(P=f,m)|0}_=u-1|0;if(!(_&u)){if(a|0){r[a>>2]=e|0;r[a+4>>2]=_&l|t&0}f=0;m=l>>>((Fr(u|0)|0)>>>0);return(P=f,m)|0}_=(X(u|0)|0)-(X(l|0)|0)|0;if(_>>>0<=30){v=_+1|0;h=31-_|0;y=v;b=l<<h|o>>>(v>>>0);w=l>>>(v>>>0);k=0;M=o<<h;break}if(!a){f=0;m=0;return(P=f,m)|0}r[a>>2]=e|0;r[a+4>>2]=s|t&0;f=0;m=0;return(P=f,m)|0}while(0);if(!y){T=M;E=k;$=w;I=b;x=0;D=0}else{t=n|0|0;n=d|i&0;i=Rr(t|0,n|0,-1,-1)|0;d=P;s=M;M=k;k=w;w=b;b=y;y=0;do{e=s;s=M>>>31|s<<1;M=y|M<<1;o=w<<1|e>>>31|0;e=w>>>31|k<<1|0;Dr(i|0,d|0,o|0,e|0)|0;l=P;u=l>>31|((l|0)<0?-1:0)<<1;y=u&1;w=Dr(o|0,e|0,u&t|0,(((l|0)<0?-1:0)>>31|((l|0)<0?-1:0)<<1)&n|0)|0;k=P;b=b-1|0}while((b|0)!=0);T=s;E=M;$=k;I=w;x=0;D=y}y=E;E=0;if(a|0){r[a>>2]=I;r[a+4>>2]=$}f=(y|0)>>>31|(T|E)<<1|(E<<1|y>>>31)&0|x;m=(y<<1|0>>>31)&-2|D;return(P=f,m)|0}function Br(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,r=0,o=0,s=0,l=0;a=t>>31|((t|0)<0?-1:0)<<1;r=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;o=i>>31|((i|0)<0?-1:0)<<1;s=((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1;l=Dr(a^e|0,r^t|0,a|0,r|0)|0;t=P;e=o^a;a=s^r;return Dr((Ur(l,t,Dr(o^n|0,s^i|0,o|0,s|0)|0,P,0)|0)^e|0,P^a|0,e|0,a|0)|0}function Hr(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;return Ur(e,t,n,i,0)|0}function jr(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,r=0;n=e&65535;i=t&65535;a=G(i,n)|0;r=e>>>16;e=(a>>>16)+(G(i,r)|0)|0;i=t>>>16;t=G(i,n)|0;return(P=(e>>>16)+(G(i,r)|0)+(((e&65535)+t|0)>>>16)|0,e+t<<16|a&65535|0)|0}function Vr(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,r=0;a=e;e=n;n=jr(a,e)|0;r=P;return(P=(G(t,e)|0)+(G(i,a)|0)+r|r&0,n|0|0)|0}function qr(e){e=e|0;var t=0,n=0;e=e+15&-16|0;t=r[u>>2]|0;n=t+e|0;if((e|0)>0&(n|0)<(t|0)|(n|0)<0){te()|0;pe(12);return-1}r[u>>2]=n;if((n|0)>(ee()|0)?(Q()|0)==0:0){pe(12);r[u>>2]=t;return-1}return t|0}function zr(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0;if((n|0)>=8192)return he(e|0,t|0,n|0)|0;a=e|0;o=e+n|0;if((e&3)==(t&3)){while(e&3){if(!n)return a|0;i[e>>0]=i[t>>0]|0;e=e+1|0;t=t+1|0;n=n-1|0}s=o&-4|0;n=s-64|0;while((e|0)<=(n|0)){r[e>>2]=r[t>>2];r[e+4>>2]=r[t+4>>2];r[e+8>>2]=r[t+8>>2];r[e+12>>2]=r[t+12>>2];r[e+16>>2]=r[t+16>>2];r[e+20>>2]=r[t+20>>2];r[e+24>>2]=r[t+24>>2];r[e+28>>2]=r[t+28>>2];r[e+32>>2]=r[t+32>>2];r[e+36>>2]=r[t+36>>2];r[e+40>>2]=r[t+40>>2];r[e+44>>2]=r[t+44>>2];r[e+48>>2]=r[t+48>>2];r[e+52>>2]=r[t+52>>2];r[e+56>>2]=r[t+56>>2];r[e+60>>2]=r[t+60>>2];e=e+64|0;t=t+64|0}while((e|0)<(s|0)){r[e>>2]=r[t>>2];e=e+4|0;t=t+4|0}}else{s=o-4|0;while((e|0)<(s|0)){i[e>>0]=i[t>>0]|0;i[e+1>>0]=i[t+1>>0]|0;i[e+2>>0]=i[t+2>>0]|0;i[e+3>>0]=i[t+3>>0]|0;e=e+4|0;t=t+4|0}}while((e|0)<(o|0)){i[e>>0]=i[t>>0]|0;e=e+1|0;t=t+1|0}return a|0}function Wr(e,t,n){e=e|0;t=t|0;n=n|0;var a=0;if((t|0)<(e|0)&(e|0)<(t+n|0)){a=e;t=t+n|0;e=e+n|0;while((n|0)>0){e=e-1|0;t=t-1|0;n=n-1|0;i[e>>0]=i[t>>0]|0}e=a}else zr(e,t,n)|0;return e|0}function Gr(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0;a=m;m=m+16|0;o=a|0;Ur(e,t,n,i,o)|0;m=a;return(P=r[o+4>>2]|0,r[o>>2]|0)|0}function Kr(e){e=e|0;return(e&255)<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function Yr(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;return so[e&7](t|0,n|0,i|0)|0}function Xr(e,t){e=e|0;t=t|0;lo[e&1](t|0)}function Jr(e,t){e=e|0;t=t|0;return co[e&15](t|0)|0}function Zr(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;return uo[e&15](t|0,n|0,i|0,a|0)|0}function Qr(e,t,n){e=e|0;t=t|0;n=n|0;return po[e&1](t|0,n|0)|0}function eo(e,t,n,i,a,r){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;r=r|0;return fo[e&31](t|0,n|0,i|0,a|0,r|0)|0}function to(e,t,n){e=e|0;t=t|0;n=n|0;J(0);return 0}function no(e){e=e|0;J(1)}function io(e){e=e|0;J(2);return 0}function ao(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;J(3);return 0}function ro(e,t){e=e|0;t=t|0;J(4);return 0}function oo(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;J(5);return 0}var so=[to,Ma,_a,ri,Wi,Gi,ga,to];var lo=[no,sn];var co=[io,ha,Jt,en,xn,Dn,kn,wn,Ki,io,io,io,io,io,io,io];var uo=[ao,We,Ye,Ze,at,lt,pt,ht,zi,ao,ao,ao,ao,ao,ao,ao];var po=[ro,wt];var fo=[oo,ze,Ge,Ke,Xe,Je,Qe,et,tt,nt,it,rt,ot,st,ct,dt,ut,ft,mt,St,Tt,Et,$t,oo,oo,oo,oo,oo,oo,oo,oo,oo];return{_ogv_demuxer_receive_input:Ji,stackSave:Me,getTempRet0:Ee,___udivdi3:Hr,setThrew:Ce,_bitshift64Lshr:Nr,_bitshift64Shl:Lr,_ogv_demuxer_keypoint_offset:ia,_ogv_demuxer_process:Zi,_bitshift64Ashr:Pr,_llvm_cttz_i32:Fr,_ogv_demuxer_destroy:Qi,_sbrk:qr,_ogv_demuxer_media_duration:ta,stackAlloc:ke,___muldi3:Vr,___uremdi3:Gr,___divdi3:Br,_i64Subtract:Dr,___udivmoddi4:Ur,setTempRet0:Te,_i64Add:Rr,_ogv_demuxer_seekable:na,_ogv_demuxer_media_length:ea,_free:Cr,stackRestore:Se,_llvm_bswap_i32:Kr,___muldsi3:jr,_ogv_demuxer_seek_to_keypoint:aa,runPostSets:xr,establishStackSpace:Ae,_ogv_demuxer_flush:ra,_ogv_demuxer_init:qi,_emscripten_get_global_libc:ma,_malloc:Ar,_memcpy:zr,_memmove:Wr,_memset:Or,stackAlloc:ke,stackSave:Me,stackRestore:Se,establishStackSpace:Ae,setThrew:Ce,setTempRet0:Te,getTempRet0:Ee,dynCall_iiii:Yr,dynCall_vi:Xr,dynCall_ii:Jr,dynCall_iiiii:Zr,dynCall_iii:Qr,dynCall_iiiiii:eo}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_ogv_demuxer_receive_input=Module._ogv_demuxer_receive_input=asm._ogv_demuxer_receive_input,stackSave=Module.stackSave=asm.stackSave,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_ogv_demuxer_keypoint_offset=Module._ogv_demuxer_keypoint_offset=asm._ogv_demuxer_keypoint_offset,_ogv_demuxer_process=Module._ogv_demuxer_process=asm._ogv_demuxer_process,_bitshift64Ashr=Module._bitshift64Ashr=asm._bitshift64Ashr,_llvm_cttz_i32=Module._llvm_cttz_i32=asm._llvm_cttz_i32,_ogv_demuxer_destroy=Module._ogv_demuxer_destroy=asm._ogv_demuxer_destroy,_sbrk=Module._sbrk=asm._sbrk,_ogv_demuxer_media_duration=Module._ogv_demuxer_media_duration=asm._ogv_demuxer_media_duration,stackAlloc=Module.stackAlloc=asm.stackAlloc,___muldi3=Module.___muldi3=asm.___muldi3,___uremdi3=Module.___uremdi3=asm.___uremdi3,___divdi3=Module.___divdi3=asm.___divdi3,_i64Subtract=Module._i64Subtract=asm._i64Subtract,___udivmoddi4=Module.___udivmoddi4=asm.___udivmoddi4,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_ogv_demuxer_seekable=Module._ogv_demuxer_seekable=asm._ogv_demuxer_seekable,_ogv_demuxer_media_length=Module._ogv_demuxer_media_length=asm._ogv_demuxer_media_length,_free=Module._free=asm._free,stackRestore=Module.stackRestore=asm.stackRestore,_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,___muldsi3=Module.___muldsi3=asm.___muldsi3,_ogv_demuxer_seek_to_keypoint=Module._ogv_demuxer_seek_to_keypoint=asm._ogv_demuxer_seek_to_keypoint,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_ogv_demuxer_flush=Module._ogv_demuxer_flush=asm._ogv_demuxer_flush,_ogv_demuxer_init=Module._ogv_demuxer_init=asm._ogv_demuxer_init,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,_malloc=Module._malloc=asm._malloc,_memcpy=Module._memcpy=asm._memcpy,_memmove=Module._memmove=asm._memmove,_memset=Module._memset=asm._memset,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_iiiii=Module.dynCall_iiiii=asm.dynCall_iiiii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm,Module.then=function(e){if(Module.calledRun)e(Module);else{var t=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){t&&t(),e(Module)}}return Module},ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){function t(){for(var e=0;e<3;e++)i.push(0)}e=e||[],ensureInitRuntime();var n=e.length+1,i=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];t();for(var a=0;a<n-1;a+=1)i.push(allocate(intArrayFromString(e[a]),"i8",ALLOC_NORMAL)),t();i.push(0),i=allocate(i,"i32",ALLOC_NORMAL);try{var r=Module._main(n,i,0);exit(r,!0)}catch(o){if(o instanceof ExitStatus)return;if("SimulateInfiniteLoop"==o)return void(Module.noExitRuntime=!0);var s=o;o&&"object"==typeof o&&o.stack&&(s=[o,o.stack]),Module.printErr("exception thrown: "+s),Module.quit(1,o)}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit;var abortDecorators=[];if(Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!1;Module.noInitialRun&&(shouldRunNow=!1),Module.noExitRuntime=!0,run();var inputBuffer,inputBufferSize,getTimestamp;return getTimestamp="undefined"==typeof performance||"undefined"==typeof performance.now?Date.now:performance.now.bind(performance),Module.loadedMetadata=!1,Module.videoCodec=null,Module.audioCodec=null,Module.duration=NaN,Module.onseek=null,Module.cpuTime=0,Module.audioPackets=[],Object.defineProperty(Module,"hasAudio",{get:function(){return Module.loadedMetadata&&Module.audioCodec}}),Object.defineProperty(Module,"audioReady",{get:function(){return Module.audioPackets.length>0}}),Object.defineProperty(Module,"audioTimestamp",{get:function(){return Module.audioPackets.length>0?Module.audioPackets[0].timestamp:-1}}),Module.videoPackets=[],Object.defineProperty(Module,"hasVideo",{get:function(){return Module.loadedMetadata&&Module.videoCodec}}),Object.defineProperty(Module,"frameReady",{get:function(){return Module.videoPackets.length>0}}),Object.defineProperty(Module,"frameTimestamp",{get:function(){return Module.videoPackets.length>0?Module.videoPackets[0].timestamp:-1}}),Object.defineProperty(Module,"keyframeTimestamp",{get:function(){return Module.videoPackets.length>0?Module.videoPackets[0].keyframeTimestamp:-1}}),Object.defineProperty(Module,"nextKeyframeTimestamp",{get:function(){for(var e=0;e<Module.videoPackets.length;e++){var t=Module.videoPackets[e];if(t.isKeyframe)return t.timestamp}return-1}}),Object.defineProperty(Module,"processing",{get:function(){return!1}}),Object.defineProperty(Module,"seekable",{get:function(){return!!Module._ogv_demuxer_seekable()}}),Module.init=function(e){function t(){time(function(){Module._ogv_demuxer_init()}),e()}Module.wasmBinary?Module.onRuntimeInitialized=function(){t()}:t()},Module.receiveInput=function(e,t){time(function(){var t=e.byteLength,n=reallocInputBuffer(t);Module.HEAPU8.set(new Uint8Array(e),n),Module._ogv_demuxer_receive_input(n,t)});t()},Module.process=function(e){var t=time(function(){return Module._ogv_demuxer_process()});e(!!t)},Module.dequeueVideoPacket=function(e){if(Module.videoPackets.length){var t=Module.videoPackets.shift().data;e(t)}else e(null)},Module.dequeueAudioPacket=function(e){if(Module.audioPackets.length){var t=Module.audioPackets.shift().data;e(t)}else e(null)},Module.getKeypointOffset=function(e,t){var n=time(function(){return Module._ogv_demuxer_keypoint_offset(1e3*e)});t(n)},Module.seekToKeypoint=function(e,t){var n=time(function(){return Module._ogv_demuxer_seek_to_keypoint(1e3*e)});n&&(Module.audioPackets.splice(0,Module.audioPackets.length),Module.videoPackets.splice(0,Module.videoPackets.length)),t(!!n)},Module.flush=function(e){time(function(){Module.audioPackets.splice(0,Module.audioPackets.length),Module.videoPackets.splice(0,Module.videoPackets.length),Module._ogv_demuxer_flush()}),e()},Module.close=function(){},Math.imul=Math_imul_orig,OGVDemuxerOgg}}();var OGVDecoderAudioOpus;!function(){var scriptSrc;"undefined"!=typeof document&&document.currentScript&&(scriptSrc=document.currentScript.src),OGVDecoderAudioOpus=function(OGVDecoderAudioOpus){function globalEval(e){eval.call(null,e)}function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,n,i){switch(n=n||"i8","*"===n.charAt(n.length-1)&&(n="i32"),n){case"i1":HEAP8[e>>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+n)}}function getValue(e,t,n){switch(t=t||"i8","*"===t.charAt(t.length-1)&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}function allocate(e,t,n,i){var a,r;"number"==typeof e?(a=!0,r=e):(a=!1,r=e.length);var o,s="string"==typeof t?t:null;if(o=n==ALLOC_NONE?i:["function"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===n?ALLOC_STATIC:n](Math.max(r,s?1:t.length)),a){var l,i=o;for(assert(0==(3&o)),l=o+(r&-4);i<l;i+=4)HEAP32[i>>2]=0;for(l=o+r;i<l;)HEAP8[i++>>0]=0;return o}if("i8"===s)return e.subarray||e.slice?HEAPU8.set(e,o):HEAPU8.set(new Uint8Array(e),o),o;for(var c,d,u,p=0;p<r;){var f=e[p];"function"==typeof f&&(f=Runtime.getFunctionIndex(f)),c=s||t[p],0!==c?("i64"==c&&(c="i32"),setValue(o+p,f,c),u!==c&&(d=Runtime.getNativeTypeSize(c),u=c),p+=d):p++}return o}function getMemory(e){return staticSealed?runtimeInitialized?_malloc(e):Runtime.dynamicAlloc(e):Runtime.staticAlloc(e)}function Pointer_stringify(e,t){if(0===t||!e)return"";for(var n,i=0,a=0;;){if(n=HEAPU8[e+a>>0],i|=n,0==n&&!t)break;if(a++,t&&a==t)break}t||(t=a);var r="";if(i<128){for(var o,s=1024;t>0;)o=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,s))),r=r?r+o:o,e+=s,t-=s;return r}return Module.UTF8ToString(e)}function AsciiToString(e){for(var t="";;){var n=HEAP8[e++>>0];if(!n)return t;t+=String.fromCharCode(n)}}function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}function UTF8ArrayToString(e,t){for(var n=t;e[n];)++n;if(n-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,n));for(var i,a,r,o,s,l,c="";;){if(i=e[t++],!i)return c;if(128&i)if(a=63&e[t++],192!=(224&i))if(r=63&e[t++],224==(240&i)?i=(15&i)<<12|a<<6|r:(o=63&e[t++],240==(248&i)?i=(7&i)<<18|a<<12|r<<6|o:(s=63&e[t++],248==(252&i)?i=(3&i)<<24|a<<18|r<<12|o<<6|s:(l=63&e[t++],i=(1&i)<<30|a<<24|r<<18|o<<12|s<<6|l))),i<65536)c+=String.fromCharCode(i);else{var d=i-65536;c+=String.fromCharCode(55296|d>>10,56320|1023&d)}else c+=String.fromCharCode((31&i)<<6|a);else c+=String.fromCharCode(i)}}function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}function stringToUTF8Array(e,t,n,i){if(!(i>0))return 0;for(var a=n,r=n+i-1,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o)),s<=127){if(n>=r)break;t[n++]=s}else if(s<=2047){if(n+1>=r)break;t[n++]=192|s>>6,t[n++]=128|63&s}else if(s<=65535){if(n+2>=r)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|63&s}else if(s<=2097151){if(n+3>=r)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}else if(s<=67108863){if(n+4>=r)break;t[n++]=248|s>>24,t[n++]=128|s>>18&63,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}else{if(n+5>=r)break;t[n++]=252|s>>30,t[n++]=128|s>>24&63,t[n++]=128|s>>18&63,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}}return t[n]=0,n-a}function stringToUTF8(e,t,n){return stringToUTF8Array(e,HEAPU8,t,n)}function lengthBytesUTF8(e){for(var t=0,n=0;n<e.length;++n){var i=e.charCodeAt(n);i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++n)),i<=127?++t:t+=i<=2047?2:i<=65535?3:i<=2097151?4:i<=67108863?5:6}return t}function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var n=e.substr(1),i=lengthBytesUTF8(n)+1,a=_malloc(i);stringToUTF8(n,a,i);var r=_malloc(4),o=t(a,0,0,r);if(0===getValue(r,"i32")&&o)return Pointer_stringify(o)}catch(s){}finally{a&&_free(a),r&&_free(r),o&&_free(o)}return e}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){var t=/__Z[\w\d_]+/g;return e.replace(t,function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}function getTotalMemory(){return TOTAL_MEMORY}function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?Module.dynCall_v(n):Module.dynCall_vi(n,t.arg):n(void 0===t.arg?null:t.arg)}else t()}}function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,n){var i=n>0?n:lengthBytesUTF8(e)+1,a=new Array(i),r=stringToUTF8Array(e,a,0,a.length);return t&&(a.length=r),a}function intArrayToString(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];i>255&&(i&=255),t.push(String.fromCharCode(i))}return t.join("")}function writeStringToMemory(e,t,n){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var i,a;n&&(a=t+lengthBytesUTF8(e),i=HEAP8[a]),stringToUTF8(e,t,1/0),n&&(HEAP8[a]=i)}function writeArrayToMemory(e,t){HEAP8.set(e,t)}function writeAsciiToMemory(e,t,n){for(var i=0;i<e.length;++i)HEAP8[t++>>0]=e.charCodeAt(i);n||(HEAP8[t>>0]=0)}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}function _abort(){Module.abort()}function _emscripten_memcpy_big(e,t,n){return HEAPU8.set(HEAPU8.subarray(t,t+n),e),e}function _llvm_stackrestore(e){var t=_llvm_stacksave,n=t.LLVM_SAVEDSTACKS[e];t.LLVM_SAVEDSTACKS.splice(e,1),Runtime.stackRestore(n)}function _ogvjs_callback_audio(e,t,n){var i=Module.HEAPU32,a=Module.HEAPF32,r=[];if(0!==e)for(var o,s,l,c,d=0;d<t;d++)o=i[e/4+d],a.buffer.slice?(l=a.buffer.slice(o,o+4*n),c=new Float32Array(l)):(s=a.subarray(o/4,o/4+n),c=new Float32Array(s)),r.push(c);Module.audioBuffer=r}function _llvm_stacksave(){var e=_llvm_stacksave;return e.LLVM_SAVEDSTACKS||(e.LLVM_SAVEDSTACKS=[]),e.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),e.LLVM_SAVEDSTACKS.length-1}function _ogvjs_callback_init_audio(e,t){Module.audioFormat={channels:e,rate:t},Module.loadedMetadata=!0}function ___setErrNo(e){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=e),e}function invoke_viiiiii(e,t,n,i,a,r,o){try{Module.dynCall_viiiiii(e,t,n,i,a,r,o)}catch(s){if("number"!=typeof s&&"longjmp"!==s)throw s;Module.setThrew(1,0)}}function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),t()},1)):t()))}function exit(e,t){t&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE&&process.exit(e),Module.quit(e,new ExitStatus(e)))}function abort(e){void 0!==e?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var t="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.",n="abort("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(t){n=t(n,e)}),n;
}function reallocInputBuffer(e){return inputBuffer&&inputBufferSize>=e?inputBuffer:(inputBuffer&&Module._free(inputBuffer),inputBufferSize=e,inputBuffer=Module._malloc(inputBufferSize))}function time(e){var t,n=getTimestamp();return t=e(),Module.cpuTime+=getTimestamp()-n,t}OGVDecoderAudioOpus=OGVDecoderAudioOpus||{},OGVDecoderAudioOpus.currentScriptUrl||(OGVDecoderAudioOpus.currentScriptUrl=scriptSrc);var Module=OGVDecoderAudioOpus,options=Module;Module={print:function(e){console.log(e)}},"undefined"!=typeof OGVLoader&&(Module.pthreadMainPrefixURL=OGVLoader.base+"/"),options.memoryLimit&&!options.wasmBinary&&(Module.TOTAL_MEMORY=options.memoryLimit);for(option in options)options.hasOwnProperty(option)&&(Module[option]=options[option]);var Math_imul_orig=Math.imul,OGVDecoderAudioOpus=Module,Module;Module||(Module=("undefined"!=typeof OGVDecoderAudioOpus?OGVDecoderAudioOpus:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else if("SHELL"===Module.ENVIRONMENT)ENVIRONMENT_IS_SHELL=!0;else{if("PTHREAD"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_WORKER=!0,ENVIRONMENT_IS_PTHREAD=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,t){nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require("path")),e=nodePath.normalize(e);var n=nodeFS.readFileSync(e);return t?n:n.toString()},Module.readBinary=function(e){var t=Module.read(e,!0);return t.buffer||(t=new Uint8Array(t)),assert(t.buffer),t},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:"undefined"!=typeof arguments&&(Module.arguments=arguments),"function"==typeof quit&&(Module.quit=function(e,t){quit(e)});else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),t.response}),Module.readAsync=function(e,t,n){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=function(){200==i.status||0==i.status&&i.response?t(i.response):n()},i.onerror=n,i.send(null)},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return"double"===t||"i64"===t?7&e&&(assert(4===(7&e)),e+=4):assert(0===(3&e)),e},getAlignSize:function(e,t,n){return n||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,n){return n&&n.length?Module["dynCall_"+e].apply(null,[t].concat(n)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t<Runtime.functionPointers.length;t++)if(!Runtime.functionPointers[t])return Runtime.functionPointers[t]=e,2*(1+t);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,t){assert(t),Runtime.funcWrappers[t]||(Runtime.funcWrappers[t]={});var n=Runtime.funcWrappers[t];return n[e]||(1===t.length?n[e]=function(){return Runtime.dynCall(t,e)}:2===t.length?n[e]=function(n){return Runtime.dynCall(t,e,[n])}:n[e]=function(){return Runtime.dynCall(t,e,Array.prototype.slice.call(arguments))}),n[e]},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var t=STACKTOP;return STACKTOP=STACKTOP+e|0,STACKTOP=STACKTOP+15&-16,t},staticAlloc:function(e){var t=STATICTOP;return STATICTOP=STATICTOP+e|0,STATICTOP=STATICTOP+15&-16,t},dynamicAlloc:function(e){var t=HEAP32[DYNAMICTOP_PTR>>2],n=(t+e+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=n,n>=TOTAL_MEMORY){var i=enlargeMemory();if(!i)return HEAP32[DYNAMICTOP_PTR>>2]=t,0}return t},alignMemory:function(e,t){var n=e=Math.ceil(e/(t?t:16))*(t?t:16);return n},makeBigInt:function(e,t,n){var i=n?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t);return i},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0,cwrap,ccall;!function(){function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}function ensureJSsource(){if(!JSsource){JSsource={};for(var e in JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}}var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(null!==e&&void 0!==e&&0!==e){var n=(e.length<<2)+1;t=Runtime.stackAlloc(n),stringToUTF8(e,t,n)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,n,i,a){var r=getCFunc(e),o=[],s=0;if(i)for(var l=0;l<i.length;l++){var c=toC[n[l]];c?(0===s&&(s=Runtime.stackSave()),o[l]=c(i[l])):o[l]=i[l]}var d=r.apply(null,o);if("string"===t&&(d=Pointer_stringify(d)),0!==s){if(a&&a.async)return void EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(s)});Runtime.stackRestore(s)}return d};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,JSsource=null;cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(e){return"number"===e}),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(e,t){return"$"+t}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}}(),Module.ccall=ccall,Module.cwrap=cwrap,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||16777216;if(TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),buffer=Module.buffer?Module.buffer:new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews(),HEAP32[0]=1668509029,HEAP16[1]=25459,115!==HEAPU8[2]||99!==HEAPU8[3])throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=addOnPreRun,Module.addOnInit=addOnInit,Module.addOnPreMain=addOnPreMain,Module.addOnExit=addOnExit,Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&Math.imul(4294967295,5)===-5||(Math.imul=function(e,t){var n=e>>>16,i=65535&e,a=t>>>16,r=65535&t;return i*r+(n*r+i*a<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var t=0;t<32;t++)if(e&1<<31-t)return t;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+25808,__ATINIT__.push(),allocate([0,0,206,64,0,0,200,64,0,0,184,64,0,0,170,64,0,0,162,64,0,0,154,64,0,0,144,64,0,0,140,64,0,0,156,64,0,0,150,64,0,0,146,64,0,0,142,64,0,0,156,64,0,0,148,64,0,0,138,64,0,0,144,64,0,0,140,64,0,0,148,64,0,0,152,64,0,0,142,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,146,80,0,0,154,80,0,0,170,80,0,0,202,80,0,0,242,80,0,0,66,81,0,0,32,0,10,0,20,46,100,1,226,81,0,0,34,83,0,0,98,83,0,0,116,83,0,0,20,84,0,0,92,84,0,0,24,69,0,0,32,0,16,0,102,38,171,1,164,84,0,0,164,86,0,0,228,86,0,0,2,87,0,0,2,88,0,0,74,88,0,0,46,69,0,0,173,88,0,0,176,88,0,0,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,12,0,0,0,3,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,1,0,0,0,9,0,0,0,6,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,5,0,0,0,15,0,0,0,10,0,0,0,5,0,0,0,148,1,0,0,84,4,0,0,16,7,0,0,200,9,0,0,124,12,0,0,44,15,0,0,216,17,0,0,64,19,0,0,252,19,0,0,112,20,0,0,188,20,0,0,244,20,0,0,20,21,0,0,44,21,0,0,56,21,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,21,0,0,0,23,0,0,0,25,0,0,0,27,0,0,0,29,0,0,0,31,0,0,0,33,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,41,0,0,0,43,0,0,0,45,0,0,0,47,0,0,0,49,0,0,0,51,0,0,0,53,0,0,0,55,0,0,0,57,0,0,0,59,0,0,0,61,0,0,0,63,0,0,0,65,0,0,0,67,0,0,0,69,0,0,0,71,0,0,0,73,0,0,0,75,0,0,0,77,0,0,0,79,0,0,0,81,0,0,0,83,0,0,0,85,0,0,0,87,0,0,0,89,0,0,0,91,0,0,0,93,0,0,0,95,0,0,0,97,0,0,0,99,0,0,0,101,0,0,0,103,0,0,0,105,0,0,0,107,0,0,0,109,0,0,0,111,0,0,0,113,0,0,0,115,0,0,0,117,0,0,0,119,0,0,0,121,0,0,0,123,0,0,0,125,0,0,0,127,0,0,0,129,0,0,0,131,0,0,0,133,0,0,0,135,0,0,0,137,0,0,0,139,0,0,0,141,0,0,0,143,0,0,0,145,0,0,0,147,0,0,0,149,0,0,0,151,0,0,0,153,0,0,0,155,0,0,0,157,0,0,0,159,0,0,0,161,0,0,0,163,0,0,0,165,0,0,0,167,0,0,0,169,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,177,0,0,0,179,0,0,0,181,0,0,0,183,0,0,0,185,0,0,0,187,0,0,0,189,0,0,0,191,0,0,0,193,0,0,0,195,0,0,0,197,0,0,0,199,0,0,0,201,0,0,0,203,0,0,0,205,0,0,0,207,0,0,0,209,0,0,0,211,0,0,0,213,0,0,0,215,0,0,0,217,0,0,0,219,0,0,0,221,0,0,0,223,0,0,0,225,0,0,0,227,0,0,0,229,0,0,0,231,0,0,0,233,0,0,0,235,0,0,0,237,0,0,0,239,0,0,0,241,0,0,0,243,0,0,0,245,0,0,0,247,0,0,0,249,0,0,0,251,0,0,0,253,0,0,0,255,0,0,0,1,1,0,0,3,1,0,0,5,1,0,0,7,1,0,0,9,1,0,0,11,1,0,0,13,1,0,0,15,1,0,0,17,1,0,0,19,1,0,0,21,1,0,0,23,1,0,0,25,1,0,0,27,1,0,0,29,1,0,0,31,1,0,0,33,1,0,0,35,1,0,0,37,1,0,0,39,1,0,0,41,1,0,0,43,1,0,0,45,1,0,0,47,1,0,0,49,1,0,0,51,1,0,0,53,1,0,0,55,1,0,0,57,1,0,0,59,1,0,0,61,1,0,0,63,1,0,0,65,1,0,0,67,1,0,0,69,1,0,0,71,1,0,0,73,1,0,0,75,1,0,0,77,1,0,0,79,1,0,0,81,1,0,0,83,1,0,0,85,1,0,0,87,1,0,0,89,1,0,0,91,1,0,0,93,1,0,0,95,1,0,0,13,0,0,0,25,0,0,0,41,0,0,0,61,0,0,0,85,0,0,0,113,0,0,0,145,0,0,0,181,0,0,0,221,0,0,0,9,1,0,0,57,1,0,0,109,1,0,0,165,1,0,0,225,1,0,0,33,2,0,0,101,2,0,0,173,2,0,0,249,2,0,0,73,3,0,0,157,3,0,0,245,3,0,0,81,4,0,0,177,4,0,0,21,5,0,0,125,5,0,0,233,5,0,0,89,6,0,0,205,6,0,0,69,7,0,0,193,7,0,0,65,8,0,0,197,8,0,0,77,9,0,0,217,9,0,0,105,10,0,0,253,10,0,0,149,11,0,0,49,12,0,0,209,12,0,0,117,13,0,0,29,14,0,0,201,14,0,0,121,15,0,0,45,16,0,0,229,16,0,0,161,17,0,0,97,18,0,0,37,19,0,0,237,19,0,0,185,20,0,0,137,21,0,0,93,22,0,0,53,23,0,0,17,24,0,0,241,24,0,0,213,25,0,0,189,26,0,0,169,27,0,0,153,28,0,0,141,29,0,0,133,30,0,0,129,31,0,0,129,32,0,0,133,33,0,0,141,34,0,0,153,35,0,0,169,36,0,0,189,37,0,0,213,38,0,0,241,39,0,0,17,41,0,0,53,42,0,0,93,43,0,0,137,44,0,0,185,45,0,0,237,46,0,0,37,48,0,0,97,49,0,0,161,50,0,0,229,51,0,0,45,53,0,0,121,54,0,0,201,55,0,0,29,57,0,0,117,58,0,0,209,59,0,0,49,61,0,0,149,62,0,0,253,63,0,0,105,65,0,0,217,66,0,0,77,68,0,0,197,69,0,0,65,71,0,0,193,72,0,0,69,74,0,0,205,75,0,0,89,77,0,0,233,78,0,0,125,80,0,0,21,82,0,0,177,83,0,0,81,85,0,0,245,86,0,0,157,88,0,0,73,90,0,0,249,91,0,0,173,93,0,0,101,95,0,0,33,97,0,0,225,98,0,0,165,100,0,0,109,102,0,0,57,104,0,0,9,106,0,0,221,107,0,0,181,109,0,0,145,111,0,0,113,113,0,0,85,115,0,0,61,117,0,0,41,119,0,0,25,121,0,0,13,123,0,0,5,125,0,0,1,127,0,0,1,129,0,0,5,131,0,0,13,133,0,0,25,135,0,0,41,137,0,0,61,139,0,0,85,141,0,0,113,143,0,0,145,145,0,0,181,147,0,0,221,149,0,0,9,152,0,0,57,154,0,0,109,156,0,0,165,158,0,0,225,160,0,0,33,163,0,0,101,165,0,0,173,167,0,0,249,169,0,0,73,172,0,0,157,174,0,0,245,176,0,0,81,179,0,0,177,181,0,0,21,184,0,0,125,186,0,0,233,188,0,0,89,191,0,0,205,193,0,0,69,196,0,0,193,198,0,0,65,201,0,0,197,203,0,0,77,206,0,0,217,208,0,0,105,211,0,0,253,213,0,0,149,216,0,0,49,219,0,0,209,221,0,0,117,224,0,0,29,227,0,0,201,229,0,0,121,232,0,0,45,235,0,0,229,237,0,0,161,240,0,0,63,0,0,0,129,0,0,0,231,0,0,0,121,1,0,0,63,2,0,0,65,3,0,0,135,4,0,0,25,6,0,0,255,7,0,0,65,10,0,0,231,12,0,0,249,15,0,0,127,19,0,0,129,23,0,0,7,28,0,0,25,33,0,0,191,38,0,0,1,45,0,0,231,51,0,0,121,59,0,0,191,67,0,0,193,76,0,0,135,86,0,0,25,97,0,0,127,108,0,0,193,120,0,0,231,133,0,0,249,147,0,0,255,162,0,0,1,179,0,0,7,196,0,0,25,214,0,0,63,233,0,0,129,253,0,0,231,18,1,0,121,41,1,0,63,65,1,0,65,90,1,0,135,116,1,0,25,144,1,0,255,172,1,0,65,203,1,0,231,234,1,0,249,11,2,0,127,46,2,0,129,82,2,0,7,120,2,0,25,159,2,0,191,199,2,0,1,242,2,0,231,29,3,0,121,75,3,0,191,122,3,0,193,171,3,0,135,222,3,0,25,19,4,0,127,73,4,0,193,129,4,0,231,187,4,0,249,247,4,0,255,53,5,0,1,118,5,0,7,184,5,0,25,252,5,0,63,66,6,0,129,138,6,0,231,212,6,0,121,33,7,0,63,112,7,0,65,193,7,0,135,20,8,0,25,106,8,0,255,193,8,0,65,28,9,0,231,120,9,0,249,215,9,0,127,57,10,0,129,157,10,0,7,4,11,0,25,109,11,0,191,216,11,0,1,71,12,0,231,183,12,0,121,43,13,0,191,161,13,0,193,26,14,0,135,150,14,0,25,21,15,0,127,150,15,0,193,26,16,0,231,161,16,0,249,43,17,0,255,184,17,0,1,73,18,0,7,220,18,0,25,114,19,0,63,11,20,0,129,167,20,0,231,70,21,0,121,233,21,0,63,143,22,0,65,56,23,0,135,228,23,0,25,148,24,0,255,70,25,0,65,253,25,0,231,182,26,0,249,115,27,0,127,52,28,0,129,248,28,0,7,192,29,0,25,139,30,0,191,89,31,0,1,44,32,0,231,1,33,0,121,219,33,0,191,184,34,0,193,153,35,0,135,126,36,0,25,103,37,0,127,83,38,0,193,67,39,0,231,55,40,0,249,47,41,0,255,43,42,0,1,44,43,0,7,48,44,0,25,56,45,0,63,68,46,0,129,84,47,0,231,104,48,0,121,129,49,0,63,158,50,0,65,191,51,0,135,228,52,0,25,14,54,0,255,59,55,0,65,110,56,0,231,164,57,0,249,223,58,0,127,31,60,0,129,99,61,0,7,172,62,0,25,249,63,0,191,74,65,0,1,161,66,0,231,251,67,0,121,91,69,0,191,191,70,0,193,40,72,0,135,150,73,0,25,9,75,0,127,128,76,0,193,252,77,0,231,125,79,0,249,3,81,0,255,142,82,0,1,31,84,0,7,180,85,0,25,78,87,0,63,237,88,0,129,145,90,0,231,58,92,0,121,233,93,0,63,157,95,0,65,86,97,0,135,20,99,0,25,216,100,0,255,160,102,0,65,111,104,0,231,66,106,0,249,27,108,0,127,250,109,0,65,1,0,0,169,2,0,0,9,5,0,0,193,8,0,0,65,14,0,0,9,22,0,0,169,32,0,0,193,46,0,0,1,65,0,0,41,88,0,0,9,117,0,0,129,152,0,0,129,195,0,0,9,247,0,0,41,52,1,0,1,124,1,0,193,207,1,0,169,48,2,0,9,160,2,0,65,31,3,0,193,175,3,0,9,83,4,0,169,10,5,0,65,216,5,0,129,189,6,0,41,188,7,0,9,214,8,0,1,13,10,0,1,99,11,0,9,218,12,0,41,116,14,0,129,51,16,0,65,26,18,0,169,42,20,0,9,103,22,0,193,209,24,0,65,109,27,0,9,60,30,0,169,64,33,0,193,125,36,0,1,246,39,0,41,172,43,0,9,163,47,0,129,221,51,0,129,94,56,0,9,41,61,0,41,64,66,0,1,167,71,0,193,96,77,0,169,112,83,0,9,218,89,0,65,160,96,0,193,198,103,0,9,81,111,0,169,66,119,0,65,159,127,0,129,106,136,0,41,168,145,0,9,92,155,0,1,138,165,0,1,54,176,0,9,100,187,0,41,24,199,0,129,86,211,0,65,35,224,0,169,130,237,0,9,121,251,0,193,10,10,1,65,60,25,1,9,18,41,1,169,144,57,1,193,188,74,1,1,155,92,1,41,48,111,1,9,129,130,1,129,146,150,1,129,105,171,1,9,11,193,1,41,124,215,1,1,194,238,1,193,225,6,2,169,224,31,2,9,196,57,2,65,145,84,2,193,77,112,2,9,255,140,2,169,170,170,2,65,86,201,2,129,7,233,2,41,196,9,3,9,146,43,3,1,119,78,3,1,121,114,3,9,158,151,3,41,236,189,3,129,105,229,3,65,28,14,4,169,10,56,4,9,59,99,4,193,179,143,4,65,123,189,4,9,152,236,4,169,16,29,5,193,235,78,5,1,48,130,5,41,228,182,5,9,15,237,5,129,183,36,6,129,228,93,6,9,157,152,6,41,232,212,6,1,205,18,7,193,82,82,7,169,128,147,7,9,94,214,7,65,242,26,8,193,68,97,8,9,93,169,8,169,66,243,8,65,253,62,9,129,148,140,9,41,16,220,9,9,120,45,10,1,212,128,10,1,44,214,10,9,136,45,11,41,240,134,11,129,108,226,11,65,5,64,12,169,194,159,12,9,173,1,13,193,204,101,13,65,42,204,13,9,206,52,14,169,192,159,14,193,10,13,15,1,181,124,15,41,200,238,15,9,77,99,16,129,76,218,16,129,207,83,17,9,223,207,17,41,132,78,18,1,200,207,18,193,179,83,19,169,80,218,19,9,168,99,20,65,195,239,20,193,171,126,21,9,107,16,22,169,10,165,22,65,148,60,23,129,17,215,23,41,140,116,24,9,14,21,25,1,161,184,25,1,79,95,26,9,34,9,27,41,36,182,27,129,95,102,28,65,222,25,29,169,170,208,29,9,207,138,30,193,85,72,31,65,73,9,32,9,180,205,32,169,160,149,33,193,25,97,34,1,42,48,35,41,220,2,36,9,59,217,36,129,81,179,37,147,6,0,0,69,14,0,0,15,28,0,0,17,51,0,0,91,87,0,0,13,142,0,0,119,221,0,0,57,77,1,0,99,230,1,0,149,179,2,0,31,193,3,0,33,29,5,0,171,215,6,0,221,2,9,0,7,179,11,0,201,254,14,0,51,255,18,0,229,207,23,0,47,143,29,0,49,94,36,0,251,96,44,0,173,190,53,0,151,161,64,0,89,55,77,0,3,177,91,0,53,67,108,0,63,38,127,0,65,150,148,0,75,211,172,0,125,33,200,0,39,201,230,0,233,22,9,1,211,91,47,1,133,237,89,1,79,38,137,1,81,101,189,1,155,14,247,1,77,139,54,2,183,73,124,2,121,189,200,2,163,95,28,3,213,174,119,3,95,47,219,3,97,107,71,4,235,242,188,4,29,92,60,5,71,67,198,5,9,75,91,6,115,28,252,6,37,103,169,7,111,225,99,8,113,72,44,9,59,96,3,10,237,243,233,10,215,213,224,11,153,223,232,12,67,242,2,14,117,246,47,15,127,220,112,16,129,156,198,17,139,54,50,19,189,178,180,20,103,33,79,22,41,155,2,24,19,65,208,25,197,60,185,27,143,192,190,29,145,7,226,31,219,85,36,34,141,248,134,36,247,69,11,39,185,157,178,41,227,104,126,44,21,26,112,47,159,45,137,50,161,41,203,53,43,158,55,57,93,37,208,60,135,99,150,64,73,7,140,68,179,201,178,72,101,110,12,77,175,195,154,81,177,162,95,86,123,239,92,91,45,153,148,96,23,154,8,102,217,247,186,107,131,195,173,113,181,25,227,119,191,34,93,126,29,35,0,0,113,77,0,0,145,156,0,0,253,38,1,0,101,12,2,0,233,119,3,0,153,162,5,0,53,214,8,0,45,112,13,0,225,228,19,0,33,195,28,0,237,183,40,0,117,146,56,0,89,72,77,0,41,250,103,0,37,248,137,0,61,199,180,0,81,38,234,0,177,19,44,1,221,210,124,1,133,242,222,1,201,82,85,2,185,43,227,2,21,20,140,3,77,8,84,4,193,113,63,5,65,46,83,6,205,151,148,7,149,140,9,9,57,119,184,10,73,87,168,12,5,202,224,14,93,19,106,17,49,39,77,20,209,178,147,23,189,38,72,27,165,192,117,31,169,149,40,36,217,156,109,41,245,185,82,47,109,200,230,53,161,166,57,61,97,65,92,69,173,159,96,78,181,238,89,88,25,142,92,99,105,28,126,111,229,131,213,124,255,189,0,0,1,168,1,0,143,107,3,0,241,158,6,0,63,35,12,0,193,61,21,0,143,182,35,0,241,252,57,0,255,81,91,0,1,250,139,0,15,117,209,0,113,191,50,1,63,154,184,1,193,220,109,2,15,207,95,3,113,142,158,4,255,123,61,6,1,182,83,8,143,156,252,10,241,97,88,14,63,167,140,18,193,37,197,23,143,101,52,30,241,129,20,38,255,251,167,47,1,156,58,59,15,98,34,73,113,134,192,89,63,138,130,109,193,88,227,132,1,14,4,0,145,33,9,0,17,44,19,0,65,238,37,0,65,79,71,0,145,67,128,0,17,247,221,0,1,70,115,1,1,146,90,2,17,1,184,3,145,53,188,5,65,143,167,8,65,6,206,12,17,178,155,18,145,15,154,26,1,26,118,37,1,76,7,52,145,158,87,71,17,157,172,96,65,166,145,129,35,81,22,0,197,158,50,0,23,185,107,0,153,246,216,0,107,137,160,1,13,196,254,2,31,1,80,5,33,217,29,9,51,108,48,15,213,162,164,24,167,103,8,39,41,253,125,60,123,181,231,91,29,119,29,137,175,160,45,201,173,142,123,0,137,230,25,1,57,150,94,2,61,22,216,4,181,99,119,9,225,40,198,17,33,3,52,32,117,72,130,56,125,87,87,96,191,91,175,2,129,216,39,6,247,132,94,13,233,254,173,27,127,139,235,54,129,183,229,104,23,3,156,193,193,12,255,14,57,106,133,34,25,238,145,75,129,120,43,158,51,225,9,84,149,139,0,0,55,152,0,0,255,165,0,0,4,181,0,0,103,197,0,0,69,215,0,0,193,234,0,0,255,255,0,0,0,0,157,62,0,64,94,62,0,192,4,62,0,128,237,62,0,64,137,62,0,0,0,0,0,192,76,63,0,0,205,61,0,0,0,0,188,21,0,0,128,187,0,0,120,0,0,0,21,0,0,0,21,0,0,0,0,154,89,63,0,0,0,0,0,0,128,63,0,0,128,63,230,71,0,0,3,0,0,0,8,0,0,0,120,0,0,0,11,0,0,0,172,93,0,0,18,72,0,0,40,22,0,0,128,7,0,0,3,0,0,0,8,24,0,0,60,24,0,0,112,24,0,0,164,24,0,0,216,24,0,0,136,1,0,0,60,72,0,0,147,94,0,0,27,96,0,0,106,28,141,56,82,187,30,58,8,105,220,58,130,237,87,59,137,99,178,59,3,42,5,60,48,220,57,60,180,62,119,60,28,163,158,60,209,242,197,60,254,134,241,60,155,171,16,61,5,173,42,61,132,194,70,61,83,230,100,61,17,137,130,61,135,159,147,61,203,178,165,61,209,190,184,61,58,191,204,61,84,175,225,61,20,138,247,61,14,37,7,62,217,244,18,62,95,49,31,62,104,215,43,62,138,227,56,62,48,82,70,62,148,31,84,62,191,71,98,62,142,198,112,62,176,151,127,62,82,91,135,62,96,15,143,62,152,229,150,62,121,219,158,62,112,238,166,62,216,27,175,62,251,96,183,62,17,187,191,62,70,39,200,62,183,162,208,62,120,42,217,62,148,187,225,62,12,83,234,62,222,237,242,62,6,137,251,62,190,16,2,63,31,90,6,63,36,159,10,63,80,222,14,63,43,22,19,63,65,69,23,63,37,106,27,63,115,131,31,63,206,143,35,63,230,141,39,63,116,124,43,63,63,90,47,63,25,38,51,63,231,222,54,63,153,131,58,63,51,19,62,63,197,140,65,63,119,239,68,63,127,58,72,63,39,109,75,63,206,134,78,63,229,134,81,63,241,108,84,63,142,56,87,63,105,233,89,63,69,127,92,63,250,249,94,63,115,89,97,63,175,157,99,63,193,198,101,63,207,212,103,63,17,200,105,63,210,160,107,63,110,95,109,63,80,4,111,63,244,143,112,63,230,2,114,63,189,93,115,63,31,161,116,63,191,205,117,63,87,228,118,63,176,229,119,63,151,210,120,63,227,171,121,63,115,114,122,63,39,39,123,63,231,202,123,63,157,94,124,63,53,227,124,63,156,89,125,63,189,194,125,63,134,31,126,63,222,112,126,63,171,183,126,63,207,244,126,63,38,41,127,63,134,85,127,63,190,122,127,63,150,153,127,63,204,178,127,63,20,199,127,63,28,215,127,63,130,227,127,63,221,236,127,63,182,243,127,63,138,248,127,63,200,251,127,63,214,253,127,63,7,255,127,63,165,255,127,63,232,255,127,63,253,255,127,63,0,0,128,63,224,1,0,0,135,136,8,59,255,255,255,255,5,0,96,0,3,0,32,0,4,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,86,76,0,0,248,52,0,0,240,0,0,0,137,136,136,59,1,0,0,0,5,0,48,0,3,0,16,0,4,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,74,0,0,248,52,0,0,120,0,0,0,136,136,8,60,2,0,0,0,5,0,24,0,3,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134,73,0,0,248,52,0,0,60,0,0,0,137,136,136,60,3,0,0,0,5,0,12,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,73,0,0,248,52,0,0,255,255,127,63,142,255,127,63,106,254,127,63,147,252,127,63,7,250,127,63,200,246,127,63,214,242,127,63,48,238,127,63,214,232,127,63,200,226,127,63,7,220,127,63,147,212,127,63,107,204,127,63,143,195,127,63,0,186,127,63,189,175,127,63,199,164,127,63,29,153,127,63,192,140,127,63,176,127,127,63,236,113,127,63,118,99,127,63,75,84,127,63,110,68,127,63,222,51,127,63,154,34,127,63,163,16,127,63,250,253,126,63,157,234,126,63,141,214,126,63,203,193,126,63,86,172,126,63,46,150,126,63,83,127,126,63,198,103,126,63,134,79,126,63,148,54,126,63,239,28,126,63,152,2,126,63,143,231,125,63,211,203,125,63,102,175,125,63,70,146,125,63,116,116,125,63,241,85,125,63,188,54,125,63,213,22,125,63,60,246,124,63,242,212,124,63,246,178,124,63,73,144,124,63,235,108,124,63,219,72,124,63,27,36,124,63,169,254,123,63,135,216,123,63,180,177,123,63,48,138,123,63,252,97,123,63,23,57,123,63,130,15,123,63,61,229,122,63,72,186,122,63,162,142,122,63,77,98,122,63,72,53,122,63,148,7,122,63,48,217,121,63,29,170,121,63,90,122,121,63,233,73,121,63,200,24,121,63,249,230,120,63,123,180,120,63,78,129,120,63,115,77,120,63,234,24,120,63,178,227,119,63,205,173,119,63,58,119,119,63,249,63,119,63,10,8,119,63,110,207,118,63,37,150,118,63,47,92,118,63,140,33,118,63,60,230,117,63,64,170,117,63,151,109,117,63,66,48,117,63,65,242,116,63,148,179,116,63,59,116,116,63,55,52,116,63,135,243,115,63,44,178,115,63,38,112,115,63,118,45,115,63,26,234,114,63,20,166,114,63,100,97,114,63,10,28,114,63,5,214,113,63,87,143,113,63,0,72,113,63,255,255,112,63,85,183,112,63,2,110,112,63,6,36,112,63,98,217,111,63,21,142,111,63,32,66,111,63,132,245,110,63,63,168,110,63,83,90,110,63,192,11,110,63,134,188,109,63,165,108,109,63,29,28,109,63,239,202,108,63,27,121,108,63,161,38,108,63,128,211,107,63,187,127,107,63,80,43,107,63,64,214,106,63,140,128,106,63,50,42,106,63,53,211,105,63,147,123,105,63,77,35,105,63,100,202,104,63,216,112,104,63,168,22,104,63,213,187,103,63,96,96,103,63,72,4,103,63,143,167,102,63,51,74,102,63,54,236,101,63,151,141,101,63,87,46,101,63,119,206,100,63,245,109,100,63,212,12,100,63,18,171,99,63,177,72,99,63,176,229,98,63,16,130,98,63,209,29,98,63,243,184,97,63,119,83,97,63,92,237,96,63,164,134,96,63,78,31,96,63,91,183,95,63,203,78,95,63,158,229,94,63,213,123,94,63,112,17,94,63,110,166,93,63,210,58,93,63,154,206,92,63,198,97,92,63,89,244,91,63,81,134,91,63,174,23,91,63,114,168,90,63,157,56,90,63,46,200,89,63,39,87,89,63,135,229,88,63,79,115,88,63,127,0,88,63,23,141,87,63,24,25,87,63,130,164,86,63,86,47,86,63,147,185,85,63,58,67,85,63,75,204,84,63,199,84,84,63,174,220,83,63,1,100,83,63,191,234,82,63,233,112,82,63,127,246,81,63,130,123,81,63,242,255,80,63,207,131,80,63,26,7,80,63,210,137,79,63,250,11,79,63,144,141,78,63,148,14,78,63,9,143,77,63,237,14,77,63,65,142,76,63,5,13,76,63,59,139,75,63,225,8,75,63,249,133,74,63,131,2,74,63,127,126,73,63,238,249,72,63,207,116,72,63,36,239,71,63,237,104,71,63,41,226,70,63,218,90,70,63,0,211,69,63,155,74,69,63,172,193,68,63,50,56,68,63,47,174,67,63,162,35,67,63,141,152,66,63,239,12,66,63,200,128,65,63,26,244,64,63,229,102,64,63,40,217,63,63,229,74,63,63,27,188,62,63,204,44,62,63,247,156,61,63,157,12,61,63,190,123,60,63,92,234,59,63,117,88,59,63,10,198,58,63,29,51,58,63,173,159,57,63,187,11,57,63,71,119,56,63,81,226,55,63,218,76,55,63,227,182,54,63,107,32,54,63,116,137,53,63,253,241,52,63,7,90,52,63,147,193,51,63,160,40,51,63,48,143,50,63,66,245,49,63,216,90,49,63,241,191,48,63,142,36,48,63,175,136,47,63,85,236,46,63,129,79,46,63,50,178,45,63,105,20,45,63,39,118,44,63,107,215,43,63,55,56,43,63,139,152,42,63,103,248,41,63,204,87,41,63,186,182,40,63,50,21,40,63,51,115,39,63,191,208,38,63,214,45,38,63,121,138,37,63,167,230,36,63,97,66,36,63,169,157,35,63,125,248,34,63,223,82,34,63,207,172,33,63,77,6,33,63,91,95,32,63,248,183,31,63,37,16,31,63,226,103,30,63,48,191,29,63,16,22,29,63,129,108,28,63,132,194,27,63,26,24,27,63,67,109,26,63,0,194,25,63,81,22,25,63,54,106,24,63,177,189,23,63,193,16,23,63,103,99,22,63,163,181,21,63,118,7,21,63,225,88,20,63,228,169,19,63,127,250,18,63,179,74,18,63,128,154,17,63,231,233,16,63,232,56,16,63,132,135,15,63,187,213,14,63,142,35,14,63,254,112,13,63,10,190,12,63,179,10,12,63,250,86,11,63,223,162,10,63,99,238,9,63,134,57,9,63,73,132,8,63,172,206,7,63,175,24,7,63,84,98,6,63,155,171,5,63,131,244,4,63,15,61,4,63,61,133,3,63,15,205,2,63,134,20,2,63,161,91,1,63,97,162,0,63,143,209,255,62,167,93,254,62,14,233,252,62,194,115,251,62,198,253,249,62,27,135,248,62,193,15,247,62,186,151,245,62,6,31,244,62,168,165,242,62,158,43,241,62,236,176,239,62,145,53,238,62,144,185,236,62,232,60,235,62,154,191,233,62,169,65,232,62,21,195,230,62,223,67,229,62,8,196,227,62,145,67,226,62,124,194,224,62,200,64,223,62,120,190,221,62,140,59,220,62,6,184,218,62,230,51,217,62,46,175,215,62,223,41,214,62,249,163,212,62,125,29,211,62,110,150,209,62,204,14,208,62,151,134,206,62,210,253,204,62,125,116,203,62,153,234,201,62,39,96,200,62,40,213,198,62,159,73,197,62,138,189,195,62,236,48,194,62,198,163,192,62,25,22,191,62,230,135,189,62,45,249,187,62,241,105,186,62,50,218,184,62,241,73,183,62,47,185,181,62,238,39,180,62,47,150,178,62,242,3,177,62,57,113,175,62,4,222,173,62,86,74,172,62,47,182,170,62,144,33,169,62,122,140,167,62,239,246,165,62,239,96,164,62,124,202,162,62,151,51,161,62,64,156,159,62,122,4,158,62,68,108,156,62,161,211,154,62,145,58,153,62,22,161,151,62,48,7,150,62,225,108,148,62,41,210,146,62,11,55,145,62,135,155,143,62,158,255,141,62,81,99,140,62,162,198,138,62,145,41,137,62,32,140,135,62,80,238,133,62,34,80,132,62,151,177,130,62,176,18,129,62,222,230,126,62,169,167,123,62,195,103,120,62,47,39,117,62,238,229,113,62,4,164,110,62,115,97,107,62,60,30,104,62,98,218,100,62,232,149,97,62,207,80,94,62,26,11,91,62,204,196,87,62,230,125,84,62,107,54,81,62,93,238,77,62,191,165,74,62,146,92,71,62,218,18,68,62,151,200,64,62,206,125,61,62,128,50,58,62,174,230,54,62,93,154,51,62,141,77,48,62,66,0,45,62,125,178,41,62,66,100,38,62,145,21,35,62,110,198,31,62,219,118,28,62,218,38,25,62,109,214,21,62,152,133,18,62,91,52,15,62,186,226,11,62,183,144,8,62,84,62,5,62,148,235,1,62,240,48,253,61,6,138,246,61,113,226,239,61,51,58,233,61,79,145,226,61,207,231,219,61,181,61,213,61,3,147,206,61,192,231,199,61,242,59,193,61,156,143,186,61,195,226,179,61,108,53,173,61,155,135,166,61,85,217,159,61,159,42,153,61,126,123,146,61,246,203,139,61,11,28,133,61,135,215,124,61,70,118,111,61,93,20,98,61,214,177,84,61,185,78,71,61,16,235,57,61,229,134,44,61,64,34,31,61,44,189,17,61,178,87,4,61,181,227,237,60,96,23,211,60,118,74,184,60,11,125,157,60,50,175,130,60,250,193,79,60,254,36,26,60,42,15,201,59,153,167,59,59,46,125,214,185,210,70,113,187,171,222,227,187,166,140,39,188,129,41,93,188,225,98,137,188,160,48,164,188,236,253,190,188,179,202,217,188,224,150,244,188,49,177,7,189,147,22,21,189,140,123,34,189,19,224,47,189,30,68,61,189,165,167,74,189,157,10,88,189,254,108,101,189,190,206,114,189,234,23,128,189,27,200,134,189,237,119,141,189,92,39,148,189,99,214,154,189,253,132,161,189,38,51,168,189,217,224,174,189,17,142,181,189,202,58,188,189,254,230,194,189,170,146,201,189,200,61,208,189,84,232,214,189,74,146,221,189,164,59,228,189,93,228,234,189,114,140,241,189,221,51,248,189,154,218,254,189,82,192,2,190,252,18,6,190,71,101,9,190,50,183,12,190,186,8,16,190,221,89,19,190,152,170,22,190,234,250,25,190,208,74,29,190,71,154,32,190,78,233,35,190,225,55,39,190,0,134,42,190,166,211,45,190,211,32,49,190,131,109,52,190,181,185,55,190,101,5,59,190,147,80,62,190,58,155,65,190,90,229,68,190,240,46,72,190,249,119,75,190,116,192,78,190,93,8,82,190,179,79,85,190,115,150,88,190,156,220,91,190,42,34,95,190,27,103,98,190,109,171,101,190,31,239,104,190,44,50,108,190,148,116,111,190,84,182,114,190,106,247,117,190,211,55,121,190,141,119,124,190,150,182,127,190,117,122,129,190,69,25,131,190,185,183,132,190,208,85,134,190,136,243,135,190,225,144,137,190,218,45,139,190,112,202,140,190,164,102,142,190,116,2,144,190,223,157,145,190,228,56,147,190,129,211,148,190,182,109,150,190,129,7,152,190,226,160,153,190,215,57,155,190,95,210,156,190,121,106,158,190,35,2,160,190,94,153,161,190,38,48,163,190,125,198,164,190,96,92,166,190,206,241,167,190,198,134,169,190,71,27,171,190,80,175,172,190,224,66,174,190,245,213,175,190,143,104,177,190,173,250,178,190,77,140,180,190,110,29,182,190,16,174,183,190,48,62,185,190,207,205,186,190,234,92,188,190,130,235,189,190,148,121,191,190,31,7,193,190,35,148,194,190,159,32,196,190,145,172,197,190,248,55,199,190,211,194,200,190,34,77,202,190,226,214,203,190,19,96,205,190,181,232,206,190,197,112,208,190,66,248,209,190,45,127,211,190,131,5,213,190,67,139,214,190,109,16,216,190,255,148,217,190,249,24,219,190,89,156,220,190,29,31,222,190,70,161,223,190,211,34,225,190,193,163,226,190,16,36,228,190,190,163,229,190,204,34,231,190,56,161,232,190,0,31,234,190,36,156,235,190,162,24,237,190,122,148,238,190,171,15,240,190,51,138,241,190,18,4,243,190,70,125,244,190,207,245,245,190,170,109,247,190,217,228,248,190,88,91,250,190,40,209,251,190,71,70,253,190,181,186,254,190,56,23,0,191,187,208,0,191,228,137,1,191,178,66,2,191,37,251,2,191,59,179,3,191,246,106,4,191,83,34,5,191,83,217,5,191,245,143,6,191,56,70,7,191,29,252,7,191,162,177,8,191,199,102,9,191,140,27,10,191,240,207,10,191,243,131,11,191,147,55,12,191,209,234,12,191,172,157,13,191,36,80,14,191,56,2,15,191,232,179,15,191,50,101,16,191,24,22,17,191,151,198,17,191,176,118,18,191,99,38,19,191,174,213,19,191,145,132,20,191,13,51,21,191,31,225,21,191,200,142,22,191,8,60,23,191,221,232,23,191,72,149,24,191,72,65,25,191,220,236,25,191,4,152,26,191,192,66,27,191,15,237,27,191,240,150,28,191,99,64,29,191,104,233,29,191,254,145,30,191,37,58,31,191,220,225,31,191,35,137,32,191,250,47,33,191,95,214,33,191,82,124,34,191,212,33,35,191,227,198,35,191,127,107,36,191,167,15,37,191,92,179,37,191,157,86,38,191,104,249,38,191,191,155,39,191,160,61,40,191,11,223,40,191,255,127,41,191,125,32,42,191,131,192,42,191,17,96,43,191,39,255,43,191,196,157,44,191,232,59,45,191,146,217,45,191,195,118,46,191,121,19,47,191,180,175,47,191,115,75,48,191,183,230,48,191,127,129,49,191,203,27,50,191,153,181,50,191,234,78,51,191,189,231,51,191,18,128,52,191,232,23,53,191,63,175,53,191,22,70,54,191,110,220,54,191,69,114,55,191,156,7,56,191,113,156,56,191,197,48,57,191,150,196,57,191,230,87,58,191,178,234,58,191,252,124,59,191,194,14,60,191,3,160,60,191,193,48,61,191,250,192,61,191,173,80,62,191,219,223,62,191,131,110,63,191,165,252,63,191,64,138,64,191,83,23,65,191,224,163,65,191,228,47,66,191,96,187,66,191,83,70,67,191,190,208,67,191,158,90,68,191,246,227,68,191,194,108,69,191,5,245,69,191,188,124,70,191,232,3,71,191,137,138,71,191,157,16,72,191,37,150,72,191,32,27,73,191,142,159,73,191,111,35,74,191,193,166,74,191,134,41,75,191,188,171,75,191,99,45,76,191,122,174,76,191,2,47,77,191,250,174,77,191,98,46,78,191,57,173,78,191,126,43,79,191,51,169,79,191,85,38,80,191,230,162,80,191,228,30,81,191,80,154,81,191,40,21,82,191,109,143,82,191,30,9,83,191,59,130,83,191,195,250,83,191,183,114,84,191,22,234,84,191,223,96,85,191,18,215,85,191,176,76,86,191,183,193,86,191,39,54,87,191,0,170,87,191,66,29,88,191,236,143,88,191,254,1,89,191,120,115,89,191,89,228,89,191,162,84,90,191,81,196,90,191,102,51,91,191,226,161,91,191,195,15,92,191,10,125,92,191,183,233,92,191,200,85,93,191,62,193,93,191,24,44,94,191,87,150,94,191,249,255,94,191,255,104,95,191,104,209,95,191,51,57,96,191,98,160,96,191,243,6,97,191,229,108,97,191,58,210,97,191,240,54,98,191,8,155,98,191,128,254,98,191,89,97,99,191,146,195,99,191,44,37,100,191,37,134,100,191,126,230,100,191,55,70,101,191,78,165,101,191,197,3,102,191,154,97,102,191,205,190,102,191,94,27,103,191,77,119,103,191,154,210,103,191,68,45,104,191,75,135,104,191,174,224,104,191,111,57,105,191,139,145,105,191,4,233,105,191,217,63,106,191,9,150,106,191,148,235,106,191,123,64,107,191,188,148,107,191,89,232,107,191,79,59,108,191,160,141,108,191,75,223,108,191,79,48,109,191,173,128,109,191,101,208,109,191,117,31,110,191,223,109,110,191,161,187,110,191,187,8,111,191,46,85,111,191,248,160,111,191,27,236,111,191,149,54,112,191,103,128,112,191,144,201,112,191,15,18,113,191,230,89,113,191,19,161,113,191,151,231,113,191,113,45,114,191,160,114,114,191,38,183,114,191,1,251,114,191,50,62,115,191,184,128,115,191,148,194,115,191,196,3,116,191,73,68,116,191,34,132,116,191,80,195,116,191,210,1,117,191,168,63,117,191,210,124,117,191,80,185,117,191,33,245,117,191,69,48,118,191,189,106,118,191,136,164,118,191,166,221,118,191,22,22,119,191,217,77,119,191,239,132,119,191,87,187,119,191,17,241,119,191,29,38,120,191,122,90,120,191,42,142,120,191,43,193,120,191,125,243,120,191,33,37,121,191,22,86,121,191,92,134,121,191,242,181,121,191,218,228,121,191,18,19,122,191,154,64,122,191,115,109,122,191,157,153,122,191,22,197,122,191,223,239,122,191,248,25,123,191,97,67,123,191,26,108,123,191,34,148,123,191,122,187,123,191,32,226,123,191,23,8,124,191,92,45,124,191,240,81,124,191,211,117,124,191,5,153,124,191,134,187,124,191,85,221,124,191,115,254,124,191,223,30,125,191,154,62,125,191,163,93,125,191,250,123,125,191,159,153,125,191,146,182,125,191,211,210,125,191,98,238,125,191,63,9,126,191,105,35,126,191,225,60,126,191,167,85,126,191,186,109,126,191,27,133,126,191,201,155,126,191,196,177,126,191,13,199,126,191,162,219,126,191,133,239,126,191,181,2,127,191,50,21,127,191,252,38,127,191,19,56,127,191,118,72,127,191,39,88,127,191,36,103,127,191,110,117,127,191,5,131,127,191,232,143,127,191,25,156,127,191,149,167,127,191,95,178,127,191,116,188,127,191,215,197,127,191,133,206,127,191,129,214,127,191,200,221,127,191,93,228,127,191,61,234,127,191,106,239,127,191,227,243,127,191,169,247,127,191,187,250,127,191,25,253,127,191,196,254,127,191,187,255,127,191,250,255,127,63,57,254,127,63,169,249,127,63,75,242,127,63,30,232,127,63,35,219,127,63,89,203,127,63,193,184,127,63,91,163,127,63,40,139,127,63,39,112,127,63,90,82,127,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE),
allocate([191,49,127,63,88,14,127,63,37,232,126,63,38,191,126,63,92,147,126,63,200,100,126,63,105,51,126,63,65,255,125,63,79,200,125,63,150,142,125,63,20,82,125,63,203,18,125,63,188,208,124,63,231,139,124,63,77,68,124,63,239,249,123,63,205,172,123,63,233,92,123,63,67,10,123,63,221,180,122,63,182,92,122,63,209,1,122,63,46,164,121,63,206,67,121,63,178,224,120,63,220,122,120,63,76,18,120,63,4,167,119,63,4,57,119,63,79,200,118,63,228,84,118,63,198,222,117,63,246,101,117,63,117,234,116,63,68,108,116,63,101,235,115,63,218,103,115,63,163,225,114,63,194,88,114,63,57,205,113,63,9,63,113,63,52,174,112,63,187,26,112,63,160,132,111,63,228,235,110,63,138,80,110,63,147,178,109,63,1,18,109,63,213,110,108,63,17,201,107,63,183,32,107,63,201,117,106,63,73,200,105,63,57,24,105,63,155,101,104,63,111,176,103,63,186,248,102,63,124,62,102,63,184,129,101,63,111,194,100,63,164,0,100,63,90,60,99,63,145,117,98,63,76,172,97,63,142,224,96,63,89,18,96,63,174,65,95,63,145,110,94,63,3,153,93,63,8,193,92,63,160,230,91,63,207,9,91,63,152,42,90,63,251,72,89,63,253,100,88,63,159,126,87,63,229,149,86,63,208,170,85,63,99,189,84,63,161,205,83,63,140,219,82,63,39,231,81,63,117,240,80,63,121,247,79,63,52,252,78,63,171,254,77,63,223,254,76,63,212,252,75,63,140,248,74,63,10,242,73,63,82,233,72,63,101,222,71,63,71,209,70,63,251,193,69,63,132,176,68,63,229,156,67,63,32,135,66,63,58,111,65,63,52,85,64,63,19,57,63,63,216,26,62,63,136,250,60,63,38,216,59,63,180,179,58,63,54,141,57,63,175,100,56,63,34,58,55,63,147,13,54,63,5,223,52,63,124,174,51,63,249,123,50,63,130,71,49,63,25,17,48,63,194,216,46,63,127,158,45,63,86,98,44,63,72,36,43,63,90,228,41,63,144,162,40,63,235,94,39,63,113,25,38,63,37,210,36,63,9,137,35,63,35,62,34,63,117,241,32,63,4,163,31,63,210,82,30,63,228,0,29,63,61,173,27,63,225,87,26,63,211,0,25,63,25,168,23,63,180,77,22,63,170,241,20,63,253,147,19,63,178,52,18,63,204,211,16,63,80,113,15,63,66,13,14,63,164,167,12,63,124,64,11,63,205,215,9,63,154,109,8,63,233,1,7,63,189,148,5,63,25,38,4,63,3,182,2,63,126,68,1,63,28,163,255,62,110,186,252,62,250,206,249,62,202,224,246,62,228,239,243,62,81,252,240,62,26,6,238,62,71,13,235,62,224,17,232,62,237,19,229,62,119,19,226,62,135,16,223,62,36,11,220,62,88,3,217,62,42,249,213,62,164,236,210,62,205,221,207,62,175,204,204,62,82,185,201,62,191,163,198,62,254,139,195,62,24,114,192,62,22,86,189,62,0,56,186,62,224,23,183,62,189,245,179,62,161,209,176,62,149,171,173,62,162,131,170,62,207,89,167,62,39,46,164,62,178,0,161,62,121,209,157,62,133,160,154,62,223,109,151,62,143,57,148,62,160,3,145,62,26,204,141,62,5,147,138,62,107,88,135,62,86,28,132,62,205,222,128,62,182,63,123,62,16,191,116,62,187,59,110,62,201,181,103,62,77,45,97,62,89,162,90,62,255,20,84,62,81,133,77,62,99,243,70,62,70,95,64,62,13,201,57,62,202,48,51,62,144,150,44,62,114,250,37,62,130,92,31,62,210,188,24,62,118,27,18,62,127,120,11,62,1,212,4,62,29,92,252,61,114,13,239,61,41,188,225,61,102,104,212,61,78,18,199,61,8,186,185,61,184,95,172,61,132,3,159,61,146,165,145,61,7,70,132,61,18,202,109,61,122,5,83,61,145,62,56,61,164,117,29,61,252,170,2,61,202,189,207,60,86,35,154,60,97,14,73,60,197,167,187,59,61,122,86,186,9,70,241,187,18,221,99,188,80,138,167,188,65,36,221,188,227,93,9,189,35,40,36,189,150,240,62,189,242,182,89,189,234,122,116,189,26,158,135,189,66,253,148,189,200,90,162,189,134,182,175,189,87,16,189,189,22,104,202,189,155,189,215,189,195,16,229,189,105,97,242,189,101,175,255,189,74,125,6,190,104,33,13,190,250,195,19,190,237,100,26,190,46,4,33,190,172,161,39,190,83,61,46,190,16,215,52,190,210,110,59,190,134,4,66,190,25,152,72,190,121,41,79,190,148,184,85,190,86,69,92,190,174,207,98,190,137,87,105,190,214,220,111,190,128,95,118,190,120,223,124,190,84,174,129,190,129,235,132,190,56,39,136,190,114,97,139,190,36,154,142,190,69,209,145,190,205,6,149,190,179,58,152,190,238,108,155,190,116,157,158,190,61,204,161,190,64,249,164,190,115,36,168,190,207,77,171,190,73,117,174,190,218,154,177,190,120,190,180,190,27,224,183,190,186,255,186,190,75,29,190,190,199,56,193,190,37,82,196,190,91,105,199,190,97,126,202,190,48,145,205,190,188,161,208,190,0,176,211,190,241,187,214,190,135,197,217,190,186,204,220,190,129,209,223,190,211,211,226,190,169,211,229,190,250,208,232,190,189,203,235,190,234,195,238,190,120,185,241,190,96,172,244,190,154,156,247,190,28,138,250,190,223,116,253,190,109,46,0,191,3,161,1,191,45,18,3,191,230,129,4,191,44,240,5,191,250,92,7,191,76,200,8,191,30,50,10,191,108,154,11,191,50,1,13,191,108,102,14,191,23,202,15,191,45,44,17,191,172,140,18,191,144,235,19,191,213,72,21,191,118,164,22,191,113,254,23,191,192,86,25,191,98,173,26,191,81,2,28,191,138,85,29,191,9,167,30,191,203,246,31,191,204,68,33,191,9,145,34,191,124,219,35,191,36,36,37,191,253,106,38,191,2,176,39,191,48,243,40,191,132,52,42,191,250,115,43,191,143,177,44,191,63,237,45,191,7,39,47,191,227,94,48,191,208,148,49,191,202,200,50,191,206,250,51,191,218,42,53,191,232,88,54,191,247,132,55,191,2,175,56,191,7,215,57,191,3,253,58,191,241,32,60,191,207,66,61,191,154,98,62,191,79,128,63,191,233,155,64,191,104,181,65,191,198,204,66,191,1,226,67,191,23,245,68,191,3,6,70,191,196,20,71,191,86,33,72,191,182,43,73,191,225,51,74,191,212,57,75,191,141,61,76,191,9,63,77,191,68,62,78,191,61,59,79,191,240,53,80,191,90,46,81,191,121,36,82,191,74,24,83,191,202,9,84,191,247,248,84,191,206,229,85,191,77,208,86,191,112,184,87,191,55,158,88,191,156,129,89,191,160,98,90,191,62,65,91,191,117,29,92,191,65,247,92,191,162,206,93,191,148,163,94,191,20,118,95,191,34,70,96,191,186,19,97,191,217,222,97,191,127,167,98,191,169,109,99,191,84,49,100,191,126,242,100,191,38,177,101,191,73,109,102,191,229,38,103,191,248,221,103,191,128,146,104,191,123,68,105,191,232,243,105,191,195,160,106,191,12,75,107,191,192,242,107,191,222,151,108,191,100,58,109,191,80,218,109,191,160,119,110,191,83,18,111,191,102,170,111,191,217,63,112,191,169,210,112,191,213,98,113,191,91,240,113,191,58,123,114,191,113,3,115,191,253,136,115,191,222,11,116,191,17,140,116,191,150,9,117,191,107,132,117,191,143,252,117,191,0,114,118,191,189,228,118,191,198,84,119,191,24,194,119,191,178,44,120,191,147,148,120,191,187,249,120,191,40,92,121,191,217,187,121,191,205,24,122,191,2,115,122,191,121,202,122,191,47,31,123,191,36,113,123,191,88,192,123,191,201,12,124,191,118,86,124,191,95,157,124,191,130,225,124,191,224,34,125,191,119,97,125,191,71,157,125,191,79,214,125,191,142,12,126,191,4,64,126,191,176,112,126,191,146,158,126,191,169,201,126,191,245,241,126,191,117,23,127,191,41,58,127,191,16,90,127,191,43,119,127,191,120,145,127,191,248,168,127,191,170,189,127,191,143,207,127,191,165,222,127,191,237,234,127,191,102,244,127,191,17,251,127,191,237,254,127,191,234,255,127,63,229,248,127,63,166,230,127,63,45,201,127,63,124,160,127,63,149,108,127,63,121,45,127,63,44,227,126,63,177,141,126,63,11,45,126,63,63,193,125,63,82,74,125,63,72,200,124,63,40,59,124,63,247,162,123,63,189,255,122,63,128,81,122,63,72,152,121,63,30,212,120,63,9,5,120,63,19,43,119,63,70,70,118,63,172,86,117,63,78,92,116,63,56,87,115,63,118,71,114,63,19,45,113,63,28,8,112,63,158,216,110,63,165,158,109,63,64,90,108,63,126,11,107,63,107,178,105,63,25,79,104,63,150,225,102,63,242,105,101,63,62,232,99,63,139,92,98,63,234,198,96,63,109,39,95,63,38,126,93,63,40,203,91,63,133,14,90,63,83,72,88,63,163,120,86,63,139,159,84,63,32,189,82,63,118,209,80,63,163,220,78,63,189,222,76,63,219,215,74,63,19,200,72,63,124,175,70,63,46,142,68,63,65,100,66,63,206,49,64,63,236,246,61,63,180,179,59,63,66,104,57,63,173,20,55,63,16,185,52,63,134,85,50,63,41,234,47,63,21,119,45,63,101,252,42,63,53,122,40,63,161,240,37,63,198,95,35,63,192,199,32,63,172,40,30,63,169,130,27,63,212,213,24,63,74,34,22,63,42,104,19,63,147,167,16,63,164,224,13,63,123,19,11,63,57,64,8,63,253,102,5,63,231,135,2,63,45,70,255,62,91,113,249,62,151,145,243,62,36,167,237,62,69,178,231,62,60,179,225,62,76,170,219,62,186,151,213,62,201,123,207,62,190,86,201,62,223,40,195,62,112,242,188,62,183,179,182,62,251,108,176,62,129,30,170,62,146,200,163,62,115,107,157,62,108,7,151,62,197,156,144,62,199,43,138,62,185,180,131,62,199,111,122,62,33,107,109,62,17,92,96,62,41,67,83,62,253,32,70,62,32,246,56,62,38,195,43,62,164,136,30,62,45,71,17,62,87,255,3,62,110,99,237,61,194,189,210,61,218,14,184,61,222,87,157,61,251,153,130,61,188,172,79,61,101,28,26,61,153,10,201,60,42,167,59,60,193,120,214,186,45,68,113,188,87,215,227,188,76,129,39,189,148,15,93,189,21,74,137,189,90,6,164,189,109,187,190,189,34,104,217,189,78,11,244,189,227,81,7,190,47,152,20,190,247,215,33,190,165,16,47,190,166,65,60,190,100,106,73,190,77,138,86,190,205,160,99,190,80,173,112,190,69,175,125,190,13,83,133,190,158,200,139,190,13,56,146,190,18,161,152,190,102,3,159,190,191,94,165,190,216,178,171,190,105,255,177,190,43,68,184,190,216,128,190,190,42,181,196,190,219,224,202,190,165,3,209,190,69,29,215,190,117,45,221,190,241,51,227,190,118,48,233,190,192,34,239,190,141,10,245,190,155,231,250,190,211,92,0,191,56,64,3,191,219,29,6,191,155,245,8,191,90,199,11,191,247,146,14,191,84,88,17,191,80,23,20,191,205,207,22,191,172,129,25,191,208,44,28,191,26,209,30,191,109,110,33,191,171,4,36,191,183,147,38,191,116,27,41,191,199,155,43,191,147,20,46,191,187,133,48,191,38,239,50,191,183,80,53,191,85,170,55,191,227,251,57,191,74,69,60,191,110,134,62,191,55,191,64,191,139,239,66,191,83,23,69,191,117,54,71,191,218,76,73,191,107,90,75,191,16,95,77,191,179,90,79,191,62,77,81,191,154,54,83,191,179,22,85,191,114,237,86,191,197,186,88,191,149,126,90,191,208,56,92,191,98,233,93,191,56,144,95,191,64,45,97,191,103,192,98,191,156,73,100,191,206,200,101,191,235,61,103,191,227,168,104,191,167,9,106,191,39,96,107,191,84,172,108,191,31,238,109,191,122,37,111,191,88,82,112,191,171,116,113,191,103,140,114,191,127,153,115,191,231,155,116,191,149,147,117,191,126,128,118,191,150,98,119,191,212,57,120,191,47,6,121,191,158,199,121,191,23,126,122,191,148,41,123,191,13,202,123,191,122,95,124,191,213,233,124,191,24,105,125,191,62,221,125,191,64,70,126,191,28,164,126,191,204,246,126,191,77,62,127,191,156,122,127,191,182,171,127,191,153,209,127,191,67,236,127,191,180,251,127,191,166,255,127,63,148,227,127,63,156,154,127,63,204,36,127,63,56,130,126,63,253,178,125,63,63,183,124,63,42,143,123,63,243,58,122,63,212,186,120,63,17,15,119,63,246,55,117,63,213,53,115,63,8,9,113,63,241,177,110,63,249,48,108,63,144,134,105,63,47,179,102,63,83,183,99,63,132,147,96,63,78,72,93,63,69,214,89,63,3,62,86,63,43,128,82,63,101,157,78,63,94,150,74,63,204,107,70,63,106,30,66,63,249,174,61,63,64,30,57,63,13,109,52,63,50,156,47,63,135,172,42,63,235,158,37,63,63,116,32,63,109,45,27,63,97,203,21,63,13,79,16,63,104,185,10,63,107,11,5,63,46,140,254,62,221,212,242,62,241,242,230,62,127,232,218,62,166,183,206,62,136,98,194,62,78,235,181,62,42,84,169,62,81,159,156,62,253,206,143,62,109,229,130,62,206,201,107,62,98,159,81,62,48,80,55,62,211,224,28,62,241,85,2,62,98,104,207,61,124,0,154,61,36,251,72,61,27,164,187,60,243,119,86,187,100,61,241,188,187,192,99,189,103,93,167,189,20,189,220,189,3,251,8,190,115,127,35,190,52,231,61,190,164,45,88,190,38,78,114,190,18,34,134,190,137,5,147,190,52,207,159,190,213,124,172,190,51,12,185,190,26,123,197,190,91,199,209,190,205,238,221,190,80,239,233,190,199,198,245,190,144,185,0,191,38,121,6,191,36,33,12,191,141,176,17,191,102,38,23,191,186,129,28,191,152,193,33,191,21,229,38,191,74,235,43,191,86,211,48,191,91,156,53,191,131,69,58,191,253,205,62,191,252,52,67,191,188,121,71,191,125,155,75,191,132,153,79,191,31,115,83,191,161,39,87,191,99,182,90,191,198,30,94,191,48,96,97,191,15,122,100,191,216,107,103,191,7,53,106,191,31,213,108,191,169,75,111,191,55,152,113,191,98,186,115,191,201,177,117,191,22,126,119,191,246,30,121,191,33,148,122,191,85,221,123,191,89,250,124,191,250,234,125,191,14,175,126,191,116,70,127,191,15,177,127,191,206,238,127,191,0,0,128,63,0,0,0,128,99,250,127,63,191,117,86,188,139,233,127,63,10,113,214,188,121,205,127,63,231,206,32,189,47,166,127,63,58,94,86,189,175,115,127,63,19,242,133,189,249,53,127,63,42,175,160,189,18,237,126,63,51,101,187,189,253,152,126,63,4,19,214,189,188,57,126,63,115,183,240,189,85,207,125,63,168,168,5,190,203,89,125,63,187,239,18,190,37,217,124,63,92,48,32,190,103,77,124,63,245,105,45,190,152,182,123,63,243,155,58,190,190,20,123,63,194,197,71,190,226,103,122,63,205,230,84,190,9,176,121,63,130,254,97,190,60,237,120,63,77,12,111,190,132,31,120,63,156,15,124,190,234,70,119,63,238,131,132,190,119,99,118,63,62,250,138,190,54,117,117,63,117,106,145,190,48,124,116,63,76,212,151,190,113,120,115,63,122,55,158,190,3,106,114,63,183,147,164,190,244,80,113,63,188,232,170,190,79,45,112,63,65,54,177,190,33,255,110,63,1,124,183,190,118,198,109,63,180,185,189,190,94,131,108,63,21,239,195,190,231,53,107,63,222,27,202,190,30,222,105,63,201,63,208,190,18,124,104,63,146,90,214,190,212,15,103,63,243,107,220,190,116,153,101,63,170,115,226,190,1,25,100,63,113,113,232,190,141,142,98,63,7,101,238,190,40,250,96,63,39,78,244,190,230,91,95,63,144,44,250,190,215,179,93,63,0,0,0,191,15,2,92,63,27,228,2,191,160,70,90,63,119,194,5,191,158,129,88,63,246,154,8,191,29,179,86,63,119,109,11,191,49,219,84,63,218,57,14,191,239,249,82,63,0,0,17,191,108,15,81,63,202,191,19,191,189,27,79,63,24,121,22,191,248,30,77,63,205,43,25,191,52,25,75,63,202,215,27,191,136,10,73,63,241,124,30,191,10,243,70,63,36,27,33,191,209,210,68,63,70,178,35,191,247,169,66,63,58,66,38,191,147,120,64,63,227,202,40,191,189,62,62,63,37,76,43,191,143,252,59,63,227,197,45,191,34,178,57,63,1,56,48,191,144,95,55,63,101,162,50,191,243,4,53,63,243,4,53,191,101,162,50,63,144,95,55,191,1,56,48,63,34,178,57,191,227,197,45,63,143,252,59,191,37,76,43,63,189,62,62,191,227,202,40,63,147,120,64,191,58,66,38,63,247,169,66,191,70,178,35,63,209,210,68,191,36,27,33,63,10,243,70,191,241,124,30,63,136,10,73,191,202,215,27,63,52,25,75,191,205,43,25,63,248,30,77,191,24,121,22,63,189,27,79,191,202,191,19,63,108,15,81,191,0,0,17,63,239,249,82,191,218,57,14,63,49,219,84,191,119,109,11,63,29,179,86,191,246,154,8,63,158,129,88,191,119,194,5,63,160,70,90,191,27,228,2,63,15,2,92,191,0,0,0,63,215,179,93,191,144,44,250,62,230,91,95,191,39,78,244,62,40,250,96,191,7,101,238,62,141,142,98,191,113,113,232,62,1,25,100,191,170,115,226,62,116,153,101,191,243,107,220,62,212,15,103,191,146,90,214,62,18,124,104,191,201,63,208,62,30,222,105,191,222,27,202,62,231,53,107,191,21,239,195,62,94,131,108,191,180,185,189,62,118,198,109,191,1,124,183,62,33,255,110,191,65,54,177,62,79,45,112,191,188,232,170,62,244,80,113,191,183,147,164,62,3,106,114,191,122,55,158,62,113,120,115,191,76,212,151,62,48,124,116,191,117,106,145,62,54,117,117,191,62,250,138,62,119,99,118,191,238,131,132,62,234,70,119,191,156,15,124,62,132,31,120,191,77,12,111,62,60,237,120,191,130,254,97,62,9,176,121,191,205,230,84,62,226,103,122,191,194,197,71,62,190,20,123,191,243,155,58,62,152,182,123,191,245,105,45,62,103,77,124,191,92,48,32,62,37,217,124,191,187,239,18,62,203,89,125,191,168,168,5,62,85,207,125,191,115,183,240,61,188,57,126,191,4,19,214,61,253,152,126,191,51,101,187,61,18,237,126,191,42,175,160,61,249,53,127,191,19,242,133,61,175,115,127,191,58,94,86,61,47,166,127,191,231,206,32,61,121,205,127,191,10,113,214,60,139,233,127,191,191,117,86,60,99,250,127,191,0,48,141,36,0,0,128,191,191,117,86,188,99,250,127,191,10,113,214,188,139,233,127,191,231,206,32,189,121,205,127,191,58,94,86,189,47,166,127,191,19,242,133,189,175,115,127,191,42,175,160,189,249,53,127,191,51,101,187,189,18,237,126,191,4,19,214,189,253,152,126,191,115,183,240,189,188,57,126,191,168,168,5,190,85,207,125,191,187,239,18,190,203,89,125,191,92,48,32,190,37,217,124,191,245,105,45,190,103,77,124,191,243,155,58,190,152,182,123,191,194,197,71,190,190,20,123,191,205,230,84,190,226,103,122,191,130,254,97,190,9,176,121,191,77,12,111,190,60,237,120,191,156,15,124,190,132,31,120,191,238,131,132,190,234,70,119,191,62,250,138,190,119,99,118,191,117,106,145,190,54,117,117,191,76,212,151,190,48,124,116,191,122,55,158,190,113,120,115,191,183,147,164,190,3,106,114,191,188,232,170,190,244,80,113,191,65,54,177,190,79,45,112,191,1,124,183,190,33,255,110,191,180,185,189,190,118,198,109,191,21,239,195,190,94,131,108,191,222,27,202,190,231,53,107,191,201,63,208,190,30,222,105,191,146,90,214,190,18,124,104,191,243,107,220,190,212,15,103,191,170,115,226,190,116,153,101,191,113,113,232,190,1,25,100,191,7,101,238,190,141,142,98,191,39,78,244,190,40,250,96,191,144,44,250,190,230,91,95,191,0,0,0,191,215,179,93,191,27,228,2,191,15,2,92,191,119,194,5,191,160,70,90,191,246,154,8,191,158,129,88,191,119,109,11,191,29,179,86,191,218,57,14,191,49,219,84,191,0,0,17,191,239,249,82,191,202,191,19,191,108,15,81,191,24,121,22,191,189,27,79,191,205,43,25,191,248,30,77,191,202,215,27,191,52,25,75,191,241,124,30,191,136,10,73,191,36,27,33,191,10,243,70,191,70,178,35,191,209,210,68,191,58,66,38,191,247,169,66,191,227,202,40,191,147,120,64,191,37,76,43,191,189,62,62,191,227,197,45,191,143,252,59,191,1,56,48,191,34,178,57,191,101,162,50,191,144,95,55,191,243,4,53,191,243,4,53,191,144,95,55,191,101,162,50,191,34,178,57,191,1,56,48,191,143,252,59,191,227,197,45,191,189,62,62,191,37,76,43,191,147,120,64,191,227,202,40,191,247,169,66,191,58,66,38,191,209,210,68,191,70,178,35,191,10,243,70,191,36,27,33,191,136,10,73,191,241,124,30,191,52,25,75,191,202,215,27,191,248,30,77,191,205,43,25,191,189,27,79,191,24,121,22,191,108,15,81,191,202,191,19,191,239,249,82,191,0,0,17,191,49,219,84,191,218,57,14,191,29,179,86,191,119,109,11,191,158,129,88,191,246,154,8,191,160,70,90,191,119,194,5,191,15,2,92,191,27,228,2,191,215,179,93,191,0,0,0,191,230,91,95,191,144,44,250,190,40,250,96,191,39,78,244,190,141,142,98,191,7,101,238,190,1,25,100,191,113,113,232,190,116,153,101,191,170,115,226,190,212,15,103,191,243,107,220,190,18,124,104,191,146,90,214,190,30,222,105,191,201,63,208,190,231,53,107,191,222,27,202,190,94,131,108,191,21,239,195,190,118,198,109,191,180,185,189,190,33,255,110,191,1,124,183,190,79,45,112,191,65,54,177,190,244,80,113,191,188,232,170,190,3,106,114,191,183,147,164,190,113,120,115,191,122,55,158,190,48,124,116,191,76,212,151,190,54,117,117,191,117,106,145,190,119,99,118,191,62,250,138,190,234,70,119,191,238,131,132,190,132,31,120,191,156,15,124,190,60,237,120,191,77,12,111,190,9,176,121,191,130,254,97,190,226,103,122,191,205,230,84,190,190,20,123,191,194,197,71,190,152,182,123,191,243,155,58,190,103,77,124,191,245,105,45,190,37,217,124,191,92,48,32,190,203,89,125,191,187,239,18,190,85,207,125,191,168,168,5,190,188,57,126,191,115,183,240,189,253,152,126,191,4,19,214,189,18,237,126,191,51,101,187,189,249,53,127,191,42,175,160,189,175,115,127,191,19,242,133,189,47,166,127,191,58,94,86,189,121,205,127,191,231,206,32,189,139,233,127,191,10,113,214,188,99,250,127,191,191,117,86,188,0,0,128,191,0,48,13,165,99,250,127,191,191,117,86,60,139,233,127,191,10,113,214,60,121,205,127,191,231,206,32,61,47,166,127,191,58,94,86,61,175,115,127,191,19,242,133,61,249,53,127,191,42,175,160,61,18,237,126,191,51,101,187,61,253,152,126,191,4,19,214,61,188,57,126,191,115,183,240,61,85,207,125,191,168,168,5,62,203,89,125,191,187,239,18,62,37,217,124,191,92,48,32,62,103,77,124,191,245,105,45,62,152,182,123,191,243,155,58,62,190,20,123,191,194,197,71,62,226,103,122,191,205,230,84,62,9,176,121,191,130,254,97,62,60,237,120,191,77,12,111,62,132,31,120,191,156,15,124,62,234,70,119,191,238,131,132,62,119,99,118,191,62,250,138,62,54,117,117,191,117,106,145,62,48,124,116,191,76,212,151,62,113,120,115,191,122,55,158,62,3,106,114,191,183,147,164,62,244,80,113,191,188,232,170,62,79,45,112,191,65,54,177,62,33,255,110,191,1,124,183,62,118,198,109,191,180,185,189,62,94,131,108,191,21,239,195,62,231,53,107,191,222,27,202,62,30,222,105,191,201,63,208,62,18,124,104,191,146,90,214,62,212,15,103,191,243,107,220,62,116,153,101,191,170,115,226,62,1,25,100,191,113,113,232,62,141,142,98,191,7,101,238,62,40,250,96,191,39,78,244,62,230,91,95,191,144,44,250,62,215,179,93,191,0,0,0,63,15,2,92,191,27,228,2,63,160,70,90,191,119,194,5,63,158,129,88,191,246,154,8,63,29,179,86,191,119,109,11,63,49,219,84,191,218,57,14,63,239,249,82,191,0,0,17,63,108,15,81,191,202,191,19,63,189,27,79,191,24,121,22,63,248,30,77,191,205,43,25,63,52,25,75,191,202,215,27,63,136,10,73,191,241,124,30,63,10,243,70,191,36,27,33,63,209,210,68,191,70,178,35,63,247,169,66,191,58,66,38,63,147,120,64,191,227,202,40,63,189,62,62,191,37,76,43,63,143,252,59,191,227,197,45,63,34,178,57,191,1,56,48,63,144,95,55,191,101,162,50,63,243,4,53,191,243,4,53,63,101,162,50,191,144,95,55,63,1,56,48,191,34,178,57,63,227,197,45,191,143,252,59,63,37,76,43,191,189,62,62,63,227,202,40,191,147,120,64,63,58,66,38,191,247,169,66,63,70,178,35,191,209,210,68,63,36,27,33,191,10,243,70,63,241,124,30,191,136,10,73,63,202,215,27,191,52,25,75,63,205,43,25,191,248,30,77,63,24,121,22,191,189,27,79,63,202,191,19,191,108,15,81,63,0,0,17,191,239,249,82,63,218,57,14,191,49,219,84,63,119,109,11,191,29,179,86,63,246,154,8,191,158,129,88,63,119,194,5,191,160,70,90,63,27,228,2,191,15,2,92,63,0,0,0,191,215,179,93,63,144,44,250,190,230,91,95,63,39,78,244,190,40,250,96,63,7,101,238,190,141,142,98,63,113,113,232,190,1,25,100,63,170,115,226,190,116,153,101,63,243,107,220,190,212,15,103,63,146,90,214,190,18,124,104,63,201,63,208,190,30,222,105,63,222,27,202,190,231,53,107,63,21,239,195,190,94,131,108,63,180,185,189,190,118,198,109,63,1,124,183,190,33,255,110,63,65,54,177,190,79,45,112,63,188,232,170,190,244,80,113,63,183,147,164,190,3,106,114,63,122,55,158,190,113,120,115,63,76,212,151,190,48,124,116,63,117,106,145,190,54,117,117,63,62,250,138,190,119,99,118,63,238,131,132,190,234,70,119,63,156,15,124,190,132,31,120,63,77,12,111,190,60,237,120,63,130,254,97,190,9,176,121,63,205,230,84,190,226,103,122,63,194,197,71,190,190,20,123,63,243,155,58,190,152,182,123,63,245,105,45,190,103,77,124,63,92,48,32,190,37,217,124,63,187,239,18,190,203,89,125,63,168,168,5,190,85,207,125,63,115,183,240,189,188,57,126,63,4,19,214,189,253,152,126,63,51,101,187,189,18,237,126,63,42,175,160,189,249,53,127,63,19,242,133,189,175,115,127,63,58,94,86,189,47,166,127,63,231,206,32,189,121,205,127,63,10,113,214,188,139,233,127,63,191,117,86,188,99,250,127,63,0,200,83,165,0,0,128,63,191,117,86,60,99,250,127,63,10,113,214,60,139,233,127,63,231,206,32,61,121,205,127,63,58,94,86,61,47,166,127,63,19,242,133,61,175,115,127,63,42,175,160,61,249,53,127,63,51,101,187,61,18,237,126,63,4,19,214,61,253,152,126,63,115,183,240,61,188,57,126,63,168,168,5,62,85,207,125,63,187,239,18,62,203,89,125,63,92,48,32,62,37,217,124,63,245,105,45,62,103,77,124,63,243,155,58,62,152,182,123,63,194,197,71,62,190,20,123,63,205,230,84,62,226,103,122,63,130,254,97,62,9,176,121,63,77,12,111,62,60,237,120,63,156,15,124,62,132,31,120,63,238,131,132,62,234,70,119,63,62,250,138,62,119,99,118,63,117,106,145,62,54,117,117,63,76,212,151,62,48,124,116,63,122,55,158,62,113,120,115,63,183,147,164,62,3,106,114,63,188,232,170,62,244,80,113,63,65,54,177,62,79,45,112,63,1,124,183,62,33,255,110,63,180,185,189,62,118,198,109,63,21,239,195,62,94,131,108,63,222,27,202,62,231,53,107,63,201,63,208,62,30,222,105,63,146,90,214,62,18,124,104,63,243,107,220,62,212,15,103,63,170,115,226,62,116,153,101,63,113,113,232,62,1,25,100,63,7,101,238,62,141,142,98,63,39,78,244,62,40,250,96,63,144,44,250,62,230,91,95,63,0,0,0,63,215,179,93,63,27,228,2,63,15,2,92,63,119,194,5,63,160,70,90,63,246,154,8,63,158,129,88,63,119,109,11,63,29,179,86,63,218,57,14,63,49,219,84,63,0,0,17,63,239,249,82,63,202,191,19,63,108,15,81,63,24,121,22,63,189,27,79,63,205,43,25,63,248,30,77,63,202,215,27,63,52,25,75,63,241,124,30,63,136,10,73,63,36,27,33,63,10,243,70,63,70,178,35,63,209,210,68,63,58,66,38,63,247,169,66,63,227,202,40,63,147,120,64,63,37,76,43,63,189,62,62,63,227,197,45,63,143,252,59,63,1,56,48,63,34,178,57,63,101,162,50,63,144,95,55,63,243,4,53,63,243,4,53,63,144,95,55,63,101,162,50,63,34,178,57,63,1,56,48,63,143,252,59,63,227,197,45,63,189,62,62,63,37,76,43,63,147,120,64,63,227,202,40,63,247,169,66,63,58,66,38,63,209,210,68,63,70,178,35,63,10,243,70,63,36,27,33,63,136,10,73,63,241,124,30,63,52,25,75,63,202,215,27,63,248,30,77,63,205,43,25,63,189,27,79,63,24,121,22,63,108,15,81,63,202,191,19,63,239,249,82,63,0,0,17,63,49,219,84,63,218,57,14,63,29,179,86,63,119,109,11,63,158,129,88,63,246,154,8,63,160,70,90,63,119,194,5,63,15,2,92,63,27,228,2,63,215,179,93,63,0,0,0,63,230,91,95,63,144,44,250,62,40,250,96,63,39,78,244,62,141,142,98,63,7,101,238,62,1,25,100,63,113,113,232,62,116,153,101,63,170,115,226,62,212,15,103,63,243,107,220,62,18,124,104,63,146,90,214,62,30,222,105,63,201,63,208,62,231,53,107,63,222,27,202,62,94,131,108,63,21,239,195,62,118,198,109,63,180,185,189,62,33,255,110,63,1,124,183,62,79,45,112,63,65,54,177,62,244,80,113,63,188,232,170,62,3,106,114,63,183,147,164,62,113,120,115,63,122,55,158,62,48,124,116,63,76,212,151,62,54,117,117,63,117,106,145,62,119,99,118,63,62,250,138,62,234,70,119,63,238,131,132,62,132,31,120,63,156,15,124,62,60,237,120,63,77,12,111,62,9,176,121,63,130,254,97,62,226,103,122,63,205,230,84,62,190,20,123,63,194,197,71,62,152,182,123,63,243,155,58,62,103,77,124,63,245,105,45,62,37,217,124,63,92,48,32,62,203,89,125,63,187,239,18,62,85,207,125,63,168,168,5,62,188,57,126,63,115,183,240,61,253,152,126,63,4,19,214,61,18,237,126,63,51,101,187,61,249,53,127,63,42,175,160,61,175,115,127,63,19,242,133,61,47,166,127,63,58,94,86,61,121,205,127,63,231,206,32,61,139,233,127,63,10,113,214,60,99,250,127,63,191,117,86,60,0,0,102,63,0,0,76,63,0,0,38,63,0,0,0,63,0,134,107,63,0,20,46,63,0,112,189,62,0,208,76,62,6,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,0,3,0,6,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,205,1,100,0,3,0,40,0,3,0,3,0,3,0,5,0,14,0,14,0,10,0,11,0,3,0,8,0,9,0,7,0,3,0,91,1,92,202,190,216,182,223,154,226,156,230,120,236,122,244,204,252,52,3,134,11,136,19,100,25,102,29,74,32,66,39,164,53,100,0,240,0,32,0,100,0,205,60,0,48,0,32,0,32,254,31,246,31,234,31,216,31,194,31,168,31,136,31,98,31,58,31,10,31,216,30,160,30,98,30,34,30,220,29,144,29,66,29,238,28,150,28,58,28,216,27,114,27,10,27,156,26,42,26,180,25,58,25,188,24,60,24,182,23,46,23,160,22,16,22,126,21,232,20,78,20,176,19,16,19,110,18,200,17,30,17,116,16,198,15,22,15,100,14,174,13,248,12,64,12,132,11,200,10,10,10,74,9,138,8,198,7,2,7,62,6,120,5,178,4,234,3,34,3,90,2,146,1,202,0,0,0,54,255,110,254,166,253,222,252,22,252,78,251,136,250,194,249,254,248,58,248,118,247,182,246,246,245,56,245,124,244,192,243,8,243,82,242,156,241,234,240,58,240,140,239,226,238,56,238,146,237,240,236,80,236,178,235,24,235,130,234,240,233,96,233,210,232,74,232,196,231,68,231,198,230,76,230,214,229,100,229,246,228,142,228,40,228,198,227,106,227,18,227,190,226,112,226,36,226,222,225,158,225,96,225,40,225,246,224,198,224,158,224,120,224,88,224,62,224,40,224,22,224,10,224,2,224,0,224,42,175,213,201,207,255,64,0,17,0,99,255,97,1,16,254,163,0,39,43,189,86,217,255,6,0,91,0,86,255,186,0,23,0,128,252,192,24,216,77,237,255,220,255,102,0,167,255,232,255,72,1,73,252,8,10,37,62,135,199,61,201,64,0,128,0,134,255,36,0,54,1,0,253,72,2,51,36,69,69,12,0,128,0,18,0,114,255,32,1,139,255,159,252,27,16,123,56,104,2,13,200,246,255,39,0,58,0,210,255,172,255,120,0,184,0,197,254,227,253,4,5,4,21,64,35,230,62,198,196,243,255,0,0,20,0,26,0,5,0,225,255,213,255,252,255,65,0,90,0,7,0,99,255,8,255,212,255,81,2,47,6,52,10,199,12,228,87,5,197,3,0,242,255,236,255,241,255,2,0,25,0,37,0,25,0,240,255,185,255,149,255,177,255,50,0,36,1,111,2,214,3,8,5,184,5,148,107,103,196,17,0,12,0,8,0,1,0,246,255,234,255,226,255,224,255,234,255,3,0,44,0,100,0,168,0,243,0,61,1,125,1,173,1,199,1,189,0,168,253,105,2,103,119,117,0,97,255,210,251,8,116,52,0,221,0,168,246,116,110,252,255,17,2,234,242,229,102,208,255,246,2,140,240,165,93,176,255,137,3,117,239,6,83,157,255,204,3,130,239,102,71,149,255,199,3,139,240,39,59,153,255,128,3,97,242,174,46,165,255,5,3,207,244,94,34,185,255,99,2,161,247,152,22,210,255,169,1,161,250,180,11,0,64,202,69,27,76,255,82,130,90,179,98,162,107,96,117,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,12,0,14,0,16,0,20,0,24,0,28,0,34,0,40,0,48,0,60,0,78,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,16,0,16,0,16,0,21,0,21,0,24,0,29,0,34,0,36,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,41,0,41,0,41,0,82,0,82,0,123,0,164,0,200,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,164,0,164,0,240,0,10,1,27,1,39,1,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,10,1,10,1,49,1,62,1,72,1,80,1,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,62,1,62,1,87,1,95,1,102,1,108,1,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,49,1,87,1,87,1,87,1,95,1,95,1,114,1,120,1,126,1,131,1,0,0,12,0,24,0,36,0,48,0,4,0,16,0,28,0,40,0,52,0,8,0,20,0,32,0,44,0,56,0,1,0,13,0,25,0,37,0,49,0,5,0,17,0,29,0,41,0,53,0,9,0,21,0,33,0,45,0,57,0,2,0,14,0,26,0,38,0,50,0,6,0,18,0,30,0,42,0,54,0,10,0,22,0,34,0,46,0,58,0,3,0,15,0,27,0,39,0,51,0,7,0,19,0,31,0,43,0,55,0,11,0,23,0,35,0,47,0,59,0,0,0,24,0,48,0,72,0,96,0,8,0,32,0,56,0,80,0,104,0,16,0,40,0,64,0,88,0,112,0,4,0,28,0,52,0,76,0,100,0,12,0,36,0,60,0,84,0,108,0,20,0,44,0,68,0,92,0,116,0,1,0,25,0,49,0,73,0,97,0,9,0,33,0,57,0,81,0,105,0,17,0,41,0,65,0,89,0,113,0,5,0,29,0,53,0,77,0,101,0,13,0,37,0,61,0,85,0,109,0,21,0,45,0,69,0,93,0,117,0,2,0,26,0,50,0,74,0,98,0,10,0,34,0,58,0,82,0,106,0,18,0,42,0,66,0,90,0,114,0,6,0,30,0,54,0,78,0,102,0,14,0,38,0,62,0,86,0,110,0,22,0,46,0,70,0,94,0,118,0,3,0,27,0,51,0,75,0,99,0,11,0,35,0,59,0,83,0,107,0,19,0,43,0,67,0,91,0,115,0,7,0,31,0,55,0,79,0,103,0,15,0,39,0,63,0,87,0,111,0,23,0,47,0,71,0,95,0,119,0,0,0,48,0,96,0,144,0,192,0,16,0,64,0,112,0,160,0,208,0,32,0,80,0,128,0,176,0,224,0,4,0,52,0,100,0,148,0,196,0,20,0,68,0,116,0,164,0,212,0,36,0,84,0,132,0,180,0,228,0,8,0,56,0,104,0,152,0,200,0,24,0,72,0,120,0,168,0,216,0,40,0,88,0,136,0,184,0,232,0,12,0,60,0,108,0,156,0,204,0,28,0,76,0,124,0,172,0,220,0,44,0,92,0,140,0,188,0,236,0,1,0,49,0,97,0,145,0,193,0,17,0,65,0,113,0,161,0,209,0,33,0,81,0,129,0,177,0,225,0,5,0,53,0,101,0,149,0,197,0,21,0,69,0,117,0,165,0,213,0,37,0,85,0,133,0,181,0,229,0,9,0,57,0,105,0,153,0,201,0,25,0,73,0,121,0,169,0,217,0,41,0,89,0,137,0,185,0,233,0,13,0,61,0,109,0,157,0,205,0,29,0,77,0,125,0,173,0,221,0,45,0,93,0,141,0,189,0,237,0,2,0,50,0,98,0,146,0,194,0,18,0,66,0,114,0,162,0,210,0,34,0,82,0,130,0,178,0,226,0,6,0,54,0,102,0,150,0,198,0,22,0,70,0,118,0,166,0,214,0,38,0,86,0,134,0,182,0,230,0,10,0,58,0,106,0,154,0,202,0,26,0,74,0,122,0,170,0,218,0,42,0,90,0,138,0,186,0,234,0,14,0,62,0,110,0,158,0,206,0,30,0,78,0,126,0,174,0,222,0,46,0,94,0,142,0,190,0,238,0,3,0,51,0,99,0,147,0,195,0,19,0,67,0,115,0,163,0,211,0,35,0,83,0,131,0,179,0,227,0,7,0,55,0,103,0,151,0,199,0,23,0,71,0,119,0,167,0,215,0,39,0,87,0,135,0,183,0,231,0,11,0,59,0,107,0,155,0,203,0,27,0,75,0,123,0,171,0,219,0,43,0,91,0,139,0,187,0,235,0,15,0,63,0,111,0,159,0,207,0,31,0,79,0,127,0,175,0,223,0,47,0,95,0,143,0,191,0,239,0,0,0,96,0,192,0,32,1,128,1,32,0,128,0,224,0,64,1,160,1,64,0,160,0,0,1,96,1,192,1,8,0,104,0,200,0,40,1,136,1,40,0,136,0,232,0,72,1,168,1,72,0,168,0,8,1,104,1,200,1,16,0,112,0,208,0,48,1,144,1,48,0,144,0,240,0,80,1,176,1,80,0,176,0,16,1,112,1,208,1,24,0,120,0,216,0,56,1,152,1,56,0,152,0,248,0,88,1,184,1,88,0,184,0,24,1,120,1,216,1,4,0,100,0,196,0,36,1,132,1,36,0,132,0,228,0,68,1,164,1,68,0,164,0,4,1,100,1,196,1,12,0,108,0,204,0,44,1,140,1,44,0,140,0,236,0,76,1,172,1,76,0,172,0,12,1,108,1,204,1,20,0,116,0,212,0,52,1,148,1,52,0,148,0,244,0,84,1,180,1,84,0,180,0,20,1,116,1,212,1,28,0,124,0,220,0,60,1,156,1,60,0,156,0,252,0,92,1,188,1,92,0,188,0,28,1,124,1,220,1,1,0,97,0,193,0,33,1,129,1,33,0,129,0,225,0,65,1,161,1,65,0,161,0,1,1,97,1,193,1,9,0,105,0,201,0,41,1,137,1,41,0,137,0,233,0,73,1,169,1,73,0,169,0,9,1,105,1,201,1,17,0,113,0,209,0,49,1,145,1,49,0,145,0,241,0,81,1,177,1,81,0,177,0,17,1,113,1,209,1,25,0,121,0,217,0,57,1,153,1,57,0,153,0,249,0,89,1,185,1,89,0,185,0,25,1,121,1,217,1,5,0,101,0,197,0,37,1,133,1,37,0,133,0,229,0,69,1,165,1,69,0,165,0,5,1,101,1,197,1,13,0,109,0,205,0,45,1,141,1,45,0,141,0,237,0,77,1,173,1,77,0,173,0,13,1,109,1,205,1,21,0,117,0,213,0,53,1,149,1,53,0,149,0,245,0,85,1,181,1,85,0,181,0,21,1,117,1,213,1,29,0,125,0,221,0,61,1,157,1,61,0,157,0,253,0,93,1,189,1,93,0,189,0,29,1,125,1,221,1,2,0,98,0,194,0,34,1,130,1,34,0,130,0,226,0,66,1,162,1,66,0,162,0,2,1,98,1,194,1,10,0,106,0,202,0,42,1,138,1,42,0,138,0,234,0,74,1,170,1,74,0,170,0,10,1,106,1,202,1,18,0,114,0,210,0,50,1,146,1,50,0,146,0,242,0,82,1,178,1,82,0,178,0,18,1,114,1,210,1,26,0,122,0,218,0,58,1,154,1,58,0,154,0,250,0,90,1,186,1,90,0,186,0,26,1,122,1,218,1,6,0,102,0,198,0,38,1,134,1,38,0,134,0,230,0,70,1,166,1,70,0,166,0,6,1,102,1,198,1,14,0,110,0,206,0,46,1,142,1,46,0,142,0,238,0,78,1,174,1,78,0,174,0,14,1,110,1,206,1,22,0,118,0,214,0,54,1,150,1,54,0,150,0,246,0,86,1,182,1,86,0,182,0,22,1,118,1,214,1,30,0,126,0,222,0,62,1,158,1,62,0,158,0,254,0,94,1,190,1,94,0,190,0,30,1,126,1,222,1,3,0,99,0,195,0,35,1,131,1,35,0,131,0,227,0,67,1,163,1,67,0,163,0,3,1,99,1,195,1,11,0,107,0,203,0,43,1,139,1,43,0,139,0,235,0,75,1,171,1,75,0,171,0,11,1,107,1,203,1,19,0,115,0,211,0,51,1,147,1,51,0,147,0,243,0,83,1,179,1,83,0,179,0,19,1,115,1,211,1,27,0,123,0,219,0,59,1,155,1,59,0,155,0,251,0,91,1,187,1,91,0,187,0,27,1,123,1,219,1,7,0,103,0,199,0,39,1,135,1,39,0,135,0,231,0,71,1,167,1,71,0,167,0,7,1,103,1,199,1,15,0,111,0,207,0,47,1,143,1,47,0,143,0,239,0,79,1,175,1,79,0,175,0,15,1,111,1,207,1,23,0,119,0,215,0,55,1,151,1,55,0,151,0,247,0,87,1,183,1,87,0,183,0,23,1,119,1,215,1,31,0,127,0,223,0,63,1,159,1,63,0,159,0,255],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240),
allocate([95,1,191,1,95,0,191,0,31,1,127,1,223,1,184,126,154,121,154,121,102,102,184,126,51,115,210,6,138,58,171,152,198,26,169,100,246,216,0,255,0,255,0,255,0,255,0,255,0,254,1,0,1,255,0,254,0,253,2,0,1,255,0,254,0,253,3,0,1,255,224,112,44,15,3,2,1,0,254,237,192,132,70,23,4,0,255,252,226,155,61,11,2,0,250,245,234,203,71,50,42,38,35,33,31,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,179,99,0,71,56,43,30,21,12,6,0,199,165,144,124,109,96,84,71,61,51,42,32,23,15,8,0,241,225,211,199,187,175,164,153,142,132,123,114,105,96,88,80,72,64,57,50,44,38,33,29,24,20,16,12,9,5,2,0,4,6,24,7,5,0,0,2,0,0,12,28,41,13,252,247,15,42,25,14,1,254,62,41,247,246,37,65,252,3,250,4,66,7,248,16,14,38,253,33,13,22,39,23,12,255,36,64,27,250,249,10,55,43,17,1,1,8,1,1,6,245,74,53,247,244,55,76,244,8,253,3,93,27,252,26,39,59,3,248,2,0,77,11,9,248,22,44,250,7,40,9,26,3,9,249,20,101,249,4,3,248,42,26,0,241,33,68,2,23,254,55,46,254,15,3,255,21,16,41,250,27,61,39,5,245,42,88,4,1,254,60,65,6,252,255,251,73,56,1,247,19,94,29,247,0,12,99,6,4,8,237,102,46,243,3,2,13,3,2,9,235,84,72,238,245,46,104,234,8,18,38,48,23,0,240,70,83,235,11,5,245,117,22,248,250,23,117,244,3,3,248,95,28,4,246,15,77,60,241,255,4,124,2,252,3,38,84,24,231,2,13,42,13,31,21,252,56,46,255,255,35,79,243,19,249,65,88,247,242,20,4,81,49,227,20,0,75,3,239,5,247,44,92,248,1,253,22,69,31,250,95,41,244,5,39,67,16,252,1,0,250,120,55,220,243,44,122,4,232,81,5,11,3,7,2,0,9,10,88,12,35,60,83,108,132,157,180,206,228,15,32,55,77,101,125,151,175,201,225,19,42,66,89,114,137,162,184,209,230,12,25,50,72,97,120,147,172,200,223,26,44,69,90,114,135,159,180,205,225,13,22,53,80,106,130,156,180,205,228,15,25,44,64,90,115,142,168,196,222,19,24,62,82,100,120,145,168,190,214,22,31,50,79,103,120,151,170,203,227,21,29,45,65,106,124,150,171,196,224,30,49,75,97,121,142,165,186,209,229,19,25,52,70,93,116,143,166,192,219,26,34,62,75,97,118,145,167,194,217,25,33,56,70,91,113,143,165,196,223,21,34,51,72,97,117,145,171,196,222,20,29,50,67,90,117,144,168,197,221,22,31,48,66,95,117,146,168,196,222,24,33,51,77,116,134,158,180,200,224,21,28,70,87,106,124,149,170,194,217,26,33,53,64,83,117,152,173,204,225,27,34,65,95,108,129,155,174,210,225,20,26,72,99,113,131,154,176,200,219,34,43,61,78,93,114,155,177,205,229,23,29,54,97,124,138,163,179,209,229,30,38,56,89,118,129,158,178,200,231,21,29,49,63,85,111,142,163,193,222,27,48,77,103,133,158,179,196,215,232,29,47,74,99,124,151,176,198,220,237,33,42,61,76,93,121,155,174,207,225,29,53,87,112,136,154,170,188,208,227,24,30,52,84,131,150,166,186,203,229,37,48,64,84,104,118,156,177,201,230,212,178,148,129,108,96,85,82,79,77,61,59,57,56,51,49,48,45,42,41,40,38,36,34,31,30,21,12,10,3,1,0,255,245,244,236,233,225,217,203,190,176,175,161,149,136,125,114,102,91,81,71,60,52,43,35,28,20,19,18,12,11,5,0,179,138,140,148,151,149,153,151,163,116,67,82,59,92,72,100,89,92,16,0,0,0,0,99,66,36,36,34,36,34,34,34,34,83,69,36,52,34,116,102,70,68,68,176,102,68,68,34,65,85,68,84,36,116,141,152,139,170,132,187,184,216,137,132,249,168,185,139,104,102,100,68,68,178,218,185,185,170,244,216,187,187,170,244,187,187,219,138,103,155,184,185,137,116,183,155,152,136,132,217,184,184,170,164,217,171,155,139,244,169,184,185,170,164,216,223,218,138,214,143,188,218,168,244,141,136,155,170,168,138,220,219,139,164,219,202,216,137,168,186,246,185,139,116,185,219,185,138,100,100,134,100,102,34,68,68,100,68,168,203,221,218,168,167,154,136,104,70,164,246,171,137,139,137,155,218,219,139,255,254,253,238,14,3,2,1,0,255,254,252,218,35,3,2,1,0,255,254,250,208,59,4,2,1,0,255,254,246,194,71,10,2,1,0,255,252,236,183,82,8,2,1,0,255,252,235,180,90,17,2,1,0,255,248,224,171,97,30,4,1,0,255,254,236,173,95,37,7,1,0,255,255,255,131,6,145,255,255,255,255,255,236,93,15,96,255,255,255,255,255,194,83,25,71,221,255,255,255,255,162,73,34,66,162,255,255,255,210,126,73,43,57,173,255,255,255,201,125,71,48,58,130,255,255,255,166,110,73,57,62,104,210,255,255,251,123,65,55,68,100,171,255,7,23,38,54,69,85,100,116,131,147,162,178,193,208,223,239,13,25,41,55,69,83,98,112,127,142,157,171,187,203,220,236,15,21,34,51,61,78,92,106,126,136,152,167,185,205,225,240,10,21,36,50,63,79,95,110,126,141,157,173,189,205,221,237,17,20,37,51,59,78,89,107,123,134,150,164,184,205,224,240,10,15,32,51,67,81,96,112,129,142,158,173,189,204,220,236,8,21,37,51,65,79,98,113,126,138,155,168,179,192,209,218,12,15,34,55,63,78,87,108,118,131,148,167,185,203,219,236,16,19,32,36,56,79,91,108,118,136,154,171,186,204,220,237,11,28,43,58,74,89,105,120,135,150,165,180,196,211,226,241,6,16,33,46,60,75,92,107,123,137,156,169,185,199,214,225,11,19,30,44,57,74,89,105,121,135,152,169,186,202,218,234,12,19,29,46,57,71,88,100,120,132,148,165,182,199,216,233,17,23,35,46,56,77,92,106,123,134,152,167,185,204,222,237,14,17,45,53,63,75,89,107,115,132,151,171,188,206,221,240,9,16,29,40,56,71,88,103,119,137,154,171,189,205,222,237,16,19,36,48,57,76,87,105,118,132,150,167,185,202,218,236,12,17,29,54,71,81,94,104,126,136,149,164,182,201,221,237,15,28,47,62,79,97,115,129,142,155,168,180,194,208,223,238,8,14,30,45,62,78,94,111,127,143,159,175,192,207,223,239,17,30,49,62,79,92,107,119,132,145,160,174,190,204,220,235,14,19,36,45,61,76,91,108,121,138,154,172,189,205,222,238,12,18,31,45,60,76,91,107,123,138,154,171,187,204,221,236,13,17,31,43,53,70,83,103,114,131,149,167,185,203,220,237,17,22,35,42,58,78,93,110,125,139,155,170,188,206,224,240,8,15,34,50,67,83,99,115,131,146,162,178,193,209,224,239,13,16,41,66,73,86,95,111,128,137,150,163,183,206,225,241,17,25,37,52,63,75,92,102,119,132,144,160,175,191,212,231,19,31,49,65,83,100,117,133,147,161,174,187,200,213,227,242,18,31,52,68,88,103,117,126,138,149,163,177,192,207,223,239,16,29,47,61,76,90,106,119,133,147,161,176,193,209,224,240,15,21,35,50,61,73,86,97,110,119,129,141,175,198,218,237,225,204,201,184,183,175,158,154,153,135,119,115,113,110,109,99,98,95,79,68,52,50,48,45,43,32,31,27,18,10,3,0,255,251,235,230,212,201,196,182,167,166,163,151,138,124,110,104,90,78,76,70,69,57,45,34,24,21,11,6,5,4,3,0,175,148,160,176,178,173,174,164,177,174,196,182,198,192,182,68,62,66,60,72,117,85,90,118,136,151,142,160,142,155,0,0,0,0,0,0,0,1,100,102,102,68,68,36,34,96,164,107,158,185,180,185,139,102,64,66,36,34,34,0,1,32,208,139,141,191,152,185,155,104,96,171,104,166,102,102,102,132,1,0,0,0,0,16,16,0,80,109,78,107,185,139,103,101,208,212,141,139,173,153,123,103,36,0,0,0,0,0,0,1,48,0,0,0,0,0,0,32,68,135,123,119,119,103,69,98,68,103,120,118,118,102,71,98,134,136,157,184,182,153,139,134,208,168,248,75,189,143,121,107,32,49,34,34,34,0,17,2,210,235,139,123,185,137,105,134,98,135,104,182,100,183,171,134,100,70,68,70,66,66,34,131,64,166,102,68,36,2,1,0,134,166,102,68,34,34,66,132,212,246,158,139,107,107,87,102,100,219,125,122,137,118,103,132,114,135,137,105,171,106,50,34,164,214,141,143,185,151,121,103,192,34,0,0,0,0,0,1,208,109,74,187,134,249,159,137,102,110,154,118,87,101,119,101,0,2,0,36,36,66,68,35,96,164,102,100,36,0,2,33,167,138,174,102,100,84,2,2,100,107,120,119,36,197,24,0,255,254,253,244,12,3,2,1,0,255,254,252,224,38,3,2,1,0,255,254,251,209,57,4,2,1,0,255,254,244,195,69,4,2,1,0,255,251,232,184,84,7,2,1,0,255,254,240,186,86,14,2,1,0,255,254,239,178,91,30,5,1,0,255,248,227,177,100,19,2,1,0,255,255,255,156,4,154,255,255,255,255,255,227,102,15,92,255,255,255,255,255,213,83,24,72,236,255,255,255,255,150,76,33,63,214,255,255,255,190,121,77,43,55,185,255,255,255,245,137,71,43,59,139,255,255,255,255,131,66,50,66,107,194,255,255,166,116,76,55,53,125,255,255,249,247,246,245,244,234,210,202,201,200,197,174,82,59,56,55,54,46,22,12,11,10,9,7,0,64,0,203,150,0,215,195,166,125,110,82,0,120,0,128,64,0,232,158,10,0,230,0,243,221,192,181,0,171,85,0,192,128,64,0,205,154,102,51,0,213,171,128,85,43,0,224,192,160,128,96,64,32,0,100,40,16,7,3,1,0,253,250,244,233,212,182,150,131,120,110,98,85,72,60,49,40,32,25,19,15,13,11,9,8,7,6,5,4,3,2,1,0,210,208,206,203,199,193,183,168,142,104,74,52,37,27,20,14,10,6,4,2,0,223,201,183,167,152,138,124,111,98,88,79,70,62,56,50,44,39,35,31,27,24,21,18,16,14,12,10,8,6,4,3,2,1,0,188,176,155,138,119,97,67,43,26,10,0,165,119,80,61,47,35,27,20,14,9,4,0,113,63,0,125,51,26,18,15,12,11,10,9,8,7,6,5,4,3,2,1,0,198,105,45,22,15,12,11,10,9,8,7,6,5,4,3,2,1,0,213,162,116,83,59,43,32,24,18,15,12,9,7,6,5,3,2,0,239,187,116,59,28,16,11,10,9,8,7,6,5,4,3,2,1,0,250,229,188,135,86,51,30,19,13,10,8,6,5,4,3,2,1,0,249,235,213,185,156,128,103,83,66,53,42,33,26,21,17,13,10,0,254,249,235,206,164,118,77,46,27,16,10,7,5,4,3,2,1,0,255,253,249,239,220,191,156,119,85,57,37,23,15,10,6,4,2,0,255,253,251,246,237,223,203,179,152,124,98,75,55,40,29,21,15,0,255,254,253,247,220,162,106,67,42,28,18,12,9,6,4,3,2,0,241,190,178,132,87,74,41,14,0,223,193,157,140,106,57,39,18,0,128,0,214,42,0,235,128,21,0,244,184,72,11,0,248,214,128,42,7,0,248,225,170,80,25,5,0,251,236,198,126,54,18,3,0,250,238,211,159,82,35,15,5,0,250,231,203,168,128,88,53,25,6,0,252,238,216,185,148,108,71,40,18,4,0,253,243,225,199,166,128,90,57,31,13,3,0,254,246,233,212,183,147,109,73,44,23,10,2,0,255,250,240,223,198,166,128,90,58,33,16,6,1,0,255,251,244,231,210,181,146,110,75,46,25,12,5,1,0,255,253,248,238,221,196,164,128,92,60,35,18,8,3,1,0,255,253,249,242,229,208,180,146,110,76,48,27,14,7,3,1,0,129,0,207,50,0,236,129,20,0,245,185,72,10,0,249,213,129,42,6,0,250,226,169,87,27,4,0,251,233,194,130,62,20,4,0,250,236,207,160,99,47,17,3,0,255,240,217,182,131,81,41,11,1,0,255,254,233,201,159,107,61,20,2,1,0,255,249,233,206,170,128,86,50,23,7,1,0,255,250,238,217,186,148,108,70,39,18,6,1,0,255,252,243,226,200,166,128,90,56,30,13,4,1,0,255,252,245,231,209,180,146,110,76,47,25,11,4,1,0,255,253,248,237,219,194,163,128,93,62,37,19,8,3,1,0,255,254,250,241,226,205,177,145,111,79,51,30,15,6,2,1,0,129,0,203,54,0,234,129,23,0,245,184,73,10,0,250,215,129,41,5,0,252,232,173,86,24,3,0,253,240,200,129,56,15,2,0,253,244,217,164,94,38,10,1,0,253,245,226,189,132,71,27,7,1,0,253,246,231,203,159,105,56,23,6,1,0,255,248,235,213,179,133,85,47,19,5,1,0,255,254,243,221,194,159,117,70,37,12,2,1,0,255,254,248,234,208,171,128,85,48,22,8,2,1,0,255,254,250,240,220,189,149,107,67,36,16,6,2,1,0,255,254,251,243,227,201,166,128,90,55,29,13,5,2,1,0,255,254,252,246,234,213,183,147,109,73,43,22,10,4,2,1,0,130,0,200,58,0,231,130,26,0,244,184,76,12,0,249,214,130,43,6,0,252,232,173,87,24,3,0,253,241,203,131,56,14,2,0,254,246,221,167,94,35,8,1,0,254,249,232,193,130,65,23,5,1,0,255,251,239,211,162,99,45,15,4,1,0,255,251,243,223,186,131,74,33,11,3,1,0,255,252,245,230,202,158,105,57,24,8,2,1,0,255,253,247,235,214,179,132,84,44,19,7,2,1,0,255,254,250,240,223,196,159,112,69,36,15,6,2,1,0,255,254,253,245,231,209,176,136,93,55,27,11,3,2,1,0,255,254,253,252,239,221,194,158,117,76,42,18,4,3,2,1,0,0,0,2,5,9,14,20,27,35,44,54,65,77,90,104,119,135,254,49,67,77,82,93,99,198,11,18,24,31,36,45,255,46,66,78,87,94,104,208,14,21,32,42,51,66,255,94,104,109,112,115,118,248,53,69,80,88,95,102,0,1,0,0,0,1,0,0,1,255,1,255,2,254,2,254,3,253,0,1,0,1,255,2,255,2,254,3,254,3,0,2,255,255,255,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,255,2,1,0,1,1,0,0,255,255,0,0,1,255,0,1,255,0,255,1,254,2,254,254,2,253,2,3,253,252,3,252,4,4,251,5,250,251,6,249,6,5,8,247,0,0,1,0,0,0,0,0,0,0,255,1,0,0,1,255,0,1,255,255,1,255,2,1,255,2,254,254,2,254,2,2,3,253,0,1,0,0,0,0,0,0,1,0,1,0,0,1,255,1,0,0,2,1,255,2,255,255,2,255,2,2,255,3,254,254,254,3,0,1,0,0,1,0,1,255,2,255,2,255,2,3,254,3,254,254,4,4,253,5,253,252,6,252,6,5,251,8,250,251,249,9,0,1,1,1,2,3,3,3,2,3,3,3,2,3,3,3,0,3,12,15,48,51,60,63,192,195,204,207,240,243,252,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,80,75,69,63,56,49,40,34,29,20,18,10,0,0,0,0,0,0,0,0,110,100,90,84,78,71,65,58,51,45,39,32,26,20,12,0,0,0,0,0,0,118,110,103,93,86,80,75,70,65,59,53,47,40,31,23,15,4,0,0,0,0,126,119,112,104,95,89,83,78,72,66,60,54,47,39,32,25,17,12,1,0,0,134,127,120,114,103,97,91,85,78,72,66,60,54,47,41,35,29,23,16,10,1,144,137,130,124,113,107,101,95,88,82,76,70,64,57,51,45,39,33,26,15,1,152,145,138,132,123,117,111,105,98,92,86,80,74,67,61,55,49,43,36,20,1,162,155,148,142,133,127,121,115,108,102,96,90,84,77,71,65,59,53,46,30,1,172,165,158,152,143,137,131,125,118,112,106,100,94,87,81,75,69,63,56,45,20,200,200,200,200,200,200,200,200,198,193,188,183,178,173,168,163,158,153,148,129,104,40,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,40,15,23,28,31,34,36,38,39,41,42,43,44,45,46,47,47,49,50,51,52,53,54,55,55,57,58,59,60,61,62,63,63,65,66,67,68,69,70,71,71,40,20,33,41,48,53,57,61,64,66,69,71,73,75,76,78,80,82,85,87,89,91,92,94,96,98,101,103,105,107,108,110,112,114,117,119,121,123,124,126,128,40,23,39,51,60,67,73,79,83,87,91,94,97,100,102,105,107,111,115,118,121,124,126,129,131,135,139,142,145,148,150,153,155,159,163,166,169,172,174,177,179,35,28,49,65,78,89,99,107,114,120,126,132,136,141,145,149,153,159,165,171,176,180,185,189,192,199,205,211,216,220,225,229,232,239,245,251,21,33,58,79,97,112,125,137,148,157,166,174,182,189,195,201,207,217,227,235,243,251,17,35,63,86,106,123,139,152,165,177,187,197,206,214,222,230,237,250,25,31,55,75,91,105,117,128,138,146,154,161,168,174,180,185,190,200,208,215,222,229,235,240,245,255,16,36,65,89,110,128,144,159,173,185,196,207,217,226,234,242,250,11,41,74,103,128,151,172,191,209,225,241,255,9,43,79,110,138,163,186,207,227,246,12,39,71,99,123,144,164,182,198,214,228,241,253,9,44,81,113,142,168,192,214,235,255,7,49,90,127,160,191,220,247,6,51,95,134,170,203,234,7,47,87,123,155,184,212,237,6,52,97,137,174,208,240,5,57,106,151,192,231,5,59,111,158,202,243,5,55,103,147,187,224,5,60,113,161,206,248,4,65,122,175,224,4,67,127,182,234,224,224,224,224,224,224,224,224,160,160,160,160,185,185,185,178,178,168,134,61,37,224,224,224,224,224,224,224,224,240,240,240,240,207,207,207,198,198,183,144,66,40,160,160,160,160,160,160,160,160,185,185,185,185,193,193,193,183,183,172,138,64,38,240,240,240,240,240,240,240,240,207,207,207,207,204,204,204,193,193,180,143,66,40,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,183,183,172,138,65,39,207,207,207,207,207,207,207,207,204,204,204,204,201,201,201,188,188,176,141,66,40,193,193,193,193,193,193,193,193,193,193,193,193,194,194,194,184,184,173,139,65,39,204,204,204,204,204,204,204,204,201,201,201,201,198,198,198,187,187,175,140,66,40,0,8,13,16,19,21,23,24,26,27,28,29,30,31,32,32,33,34,34,35,36,36,37,37,72,127,65,129,66,128,65,128,64,128,62,128,64,128,64,128,92,78,92,79,92,78,90,79,116,41,115,40,114,40,132,26,132,26,145,17,161,12,176,10,177,11,24,179,48,138,54,135,54,132,53,134,56,133,55,132,55,132,61,114,70,96,74,88,75,88,87,74,89,66,91,67,100,59,108,50,120,40,122,37,97,43,78,50,83,78,84,81,88,75,86,74,87,71,90,73,93,74,93,74,109,40,114,36,117,34,117,34,143,17,145,18,146,19,162,12,165,10,178,7,189,6,190,8,177,9,23,178,54,115,63,102,66,98,69,99,74,89,71,91,73,91,78,89,86,80,92,66,93,64,102,59,103,60,104,60,117,52,123,44,138,35,133,31,97,38,77,45,61,90,93,60,105,42,107,41,110,45,116,38,113,38,112,38,124,26,132,27,136,19,140,20,155,14,159,16,158,18,170,13,177,10,187,8,192,6,175,9,159,10,21,178,59,110,71,86,75,85,84,83,91,66,88,73,87,72,92,75,98,72,105,58,107,54,115,52,114,55,112,56,129,51,132,40,150,33,140,29,98,35,77,42,42,121,96,66,108,43,111,40,117,44,123,32,120,36,119,33,127,33,134,34,139,21,147,23,152,20,158,25,154,26,166,21,173,16,184,13,184,10,150,13,139,15,22,178,63,114,74,82,84,83,92,82,103,62,96,72,96,67,101,73,107,72,113,55,118,52,125,52,118,52,117,55,135,49,137,39,157,32,145,29,97,33,77,40,2,1,0,2,1,0,25,23,2,0,126,124,119,109,87,41,19,9,4,2,0,0,15,8,7,4,11,12,3,2,13,10,5,6,9,14,1,0,9,6,3,4,5,8,1,2,7,6,0,3,0,7,3,0,1,10,0,2,6,18,10,12,4,0,2,0,0,0,9,4,7,4,0,3,12,7,7,255,255,79,112,117,115,72,101,97,100,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);var tempDoublePtr=STATICTOP;STATICTOP+=16,Module._bitshift64Ashr=_bitshift64Ashr,Module._i64Add=_i64Add,Module._memset=_memset,Module._memcpy=_memcpy;var _llvm_pow_f64=Math_pow;Module.___muldsi3=___muldsi3,Module.___muldi3=___muldi3,Module._memmove=_memmove,Module._sbrk=_sbrk,DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0,Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort:abort,assert:assert,enlargeMemory:enlargeMemory,getTotalMemory:getTotalMemory,abortOnCannotGrowMemory:abortOnCannotGrowMemory,invoke_viiiiii:invoke_viiiiii,_ogvjs_callback_init_audio:_ogvjs_callback_init_audio,_llvm_pow_f64:_llvm_pow_f64,_abort:_abort,___setErrNo:___setErrNo,_llvm_stacksave:_llvm_stacksave,_ogvjs_callback_audio:_ogvjs_callback_audio,_emscripten_memcpy_big:_emscripten_memcpy_big,_llvm_stackrestore:_llvm_stackrestore,DYNAMICTOP_PTR:DYNAMICTOP_PTR,tempDoublePtr:tempDoublePtr,ABORT:ABORT,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX};var asm=function(e,t,n){"use asm";var i=new e.Int8Array(n);var a=new e.Int16Array(n);var r=new e.Int32Array(n);var o=new e.Uint8Array(n);var s=new e.Uint16Array(n);var l=new e.Uint32Array(n);var c=new e.Float32Array(n);var d=new e.Float64Array(n);var u=t.DYNAMICTOP_PTR|0;var p=t.tempDoublePtr|0;var f=t.ABORT|0;var m=t.STACKTOP|0;var h=t.STACK_MAX|0;var g=0;var _=0;var v=0;var y=0;var b=e.NaN,w=e.Infinity;var k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0;var x=0;var P=e.Math.floor;var D=e.Math.abs;var R=e.Math.sqrt;var O=e.Math.pow;var N=e.Math.cos;var L=e.Math.sin;var F=e.Math.tan;var U=e.Math.acos;var B=e.Math.asin;var H=e.Math.atan;var j=e.Math.atan2;var V=e.Math.exp;var q=e.Math.log;var z=e.Math.ceil;var W=e.Math.imul;var G=e.Math.min;var K=e.Math.max;var Y=e.Math.clz32;var X=t.abort;var J=t.assert;var Z=t.enlargeMemory;var Q=t.getTotalMemory;var ee=t.abortOnCannotGrowMemory;var te=t.invoke_viiiiii;var ne=t._ogvjs_callback_init_audio;var ie=t._llvm_pow_f64;var ae=t._abort;var re=t.___setErrNo;var oe=t._llvm_stacksave;var se=t._ogvjs_callback_audio;var le=t._emscripten_memcpy_big;var ce=t._llvm_stackrestore;var de=0;function ue(e){e=e|0;var t=0;t=m;m=m+e|0;m=m+15&-16;return t|0}function pe(){return m|0}function fe(e){e=e|0;m=e}function me(e,t){e=e|0;t=t|0;m=e;h=t}function he(e,t){e=e|0;t=t|0;if(!g){g=e;_=t}}function ge(e){e=e|0;x=e}function _e(){return x|0}function ve(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;e=(W(1664525,r[n>>2]|0)|0)+1013904223|0;m=t;return e|0}function ye(e,t,n,i,o,s,l,d,u){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;s=s|0;l=l|0;d=d|0;u=u|0;var p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0;p=m;m=m+80|0;f=p+72|0;h=p+68|0;g=p+64|0;_=p+60|0;v=p+56|0;y=p+52|0;b=p+48|0;w=p+44|0;k=p+40|0;M=p+36|0;S=p+32|0;A=p+28|0;C=p+24|0;T=p+20|0;E=p+16|0;$=p+12|0;I=p+8|0;x=p+4|0;P=p;r[f>>2]=e;r[h>>2]=t;r[g>>2]=n;r[_>>2]=i;r[v>>2]=o;r[y>>2]=s;r[b>>2]=l;r[w>>2]=d;r[k>>2]=u;r[E>>2]=r[(r[f>>2]|0)+32>>2];r[S>>2]=W(r[b>>2]|0,r[(r[f>>2]|0)+44>>2]|0)|0;r[A>>2]=W(r[b>>2]|0,a[(r[E>>2]|0)+(r[y>>2]<<1)>>1]|0)|0;if((r[w>>2]|0)!=1){if((r[A>>2]|0)<((r[S>>2]|0)/(r[w>>2]|0)|0|0))D=r[A>>2]|0;else D=(r[S>>2]|0)/(r[w>>2]|0)|0;r[A>>2]=D}if(r[k>>2]|0){r[A>>2]=0;r[y>>2]=0;r[v>>2]=0}r[C>>2]=r[g>>2];r[T>>2]=(r[h>>2]|0)+((W(r[b>>2]|0,a[(r[E>>2]|0)+(r[v>>2]<<1)>>1]|0)|0)<<2);r[M>>2]=0;while(1){if((r[M>>2]|0)>=(W(r[b>>2]|0,a[(r[E>>2]|0)+(r[v>>2]<<1)>>1]|0)|0))break;h=r[C>>2]|0;r[C>>2]=h+4;c[h>>2]=0;r[M>>2]=(r[M>>2]|0)+1}r[M>>2]=r[v>>2];while(1){if((r[M>>2]|0)>=(r[y>>2]|0))break;r[$>>2]=W(r[b>>2]|0,a[(r[E>>2]|0)+(r[M>>2]<<1)>>1]|0)|0;r[I>>2]=W(r[b>>2]|0,a[(r[E>>2]|0)+((r[M>>2]|0)+1<<1)>>1]|0)|0;c[P>>2]=+c[(r[_>>2]|0)+(r[M>>2]<<2)>>2]+ +c[8+(r[M>>2]<<2)>>2];c[x>>2]=+V(+(+c[P>>2]*.6931471805599453));do{v=r[T>>2]|0;r[T>>2]=v+4;R=+c[v>>2]*+c[x>>2];v=r[C>>2]|0;r[C>>2]=v+4;c[v>>2]=R;v=(r[$>>2]|0)+1|0;r[$>>2]=v}while((v|0)<(r[I>>2]|0));r[M>>2]=(r[M>>2]|0)+1}Na((r[g>>2]|0)+(r[A>>2]<<2)|0,0,(r[S>>2]|0)-(r[A>>2]|0)<<2|0)|0;m=p;return}function be(e,t,n,i,s,l,d,u,p,f,h,g,_){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;l=l|0;d=d|0;u=u|0;p=p|0;f=f|0;h=h|0;g=g|0;_=_|0;var v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0;v=m;m=m+112|0;y=v+104|0;b=v+100|0;w=v+96|0;k=v+92|0;M=v+88|0;S=v+84|0;A=v+80|0;C=v+76|0;T=v+72|0;E=v+68|0;$=v+64|0;I=v+60|0;x=v+56|0;P=v+52|0;D=v+48|0;O=v+44|0;N=v+40|0;L=v+36|0;F=v+32|0;U=v+28|0;B=v+24|0;H=v+20|0;j=v+16|0;q=v+12|0;z=v+8|0;G=v+4|0;K=v;r[y>>2]=e;r[b>>2]=t;r[w>>2]=n;r[k>>2]=i;r[M>>2]=s;r[S>>2]=l;r[A>>2]=d;r[C>>2]=u;r[T>>2]=p;r[E>>2]=f;r[$>>2]=h;r[I>>2]=g;r[x>>2]=_;r[D>>2]=r[A>>2];while(1){if((r[D>>2]|0)>=(r[C>>2]|0))break;r[L>>2]=(a[(r[(r[y>>2]|0)+32>>2]|0)+((r[D>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[y>>2]|0)+32>>2]|0)+(r[D>>2]<<1)>>1]|0);A=we(1+(r[(r[I>>2]|0)+(r[D>>2]<<2)>>2]|0)|0,(a[(r[(r[y>>2]|0)+32>>2]|0)+((r[D>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[y>>2]|0)+32>>2]|0)+(r[D>>2]<<1)>>1]|0)|0)|0;r[B>>2]=A>>>(r[k>>2]|0);c[F>>2]=+V(+(+(r[B>>2]|0)*-.125*.6931471805599453))*.5;c[U>>2]=1/+R(+ +(r[L>>2]<<r[k>>2]|0));r[P>>2]=0;do{r[K>>2]=0;A=W(r[P>>2]|0,r[(r[y>>2]|0)+8>>2]|0)|0;c[j>>2]=+c[(r[E>>2]|0)+(A+(r[D>>2]|0)<<2)>>2];A=W(r[P>>2]|0,r[(r[y>>2]|0)+8>>2]|0)|0;c[q>>2]=+c[(r[$>>2]|0)+(A+(r[D>>2]|0)<<2)>>2];if((r[M>>2]|0)==1){if(+c[j>>2]>+c[(r[E>>2]|0)+((r[(r[y>>2]|0)+8>>2]|0)+(r[D>>2]|0)<<2)>>2])Y=+c[j>>2];else Y=+c[(r[E>>2]|0)+((r[(r[y>>2]|0)+8>>2]|0)+(r[D>>2]|0)<<2)>>2];c[j>>2]=Y;if(+c[q>>2]>+c[(r[$>>2]|0)+((r[(r[y>>2]|0)+8>>2]|0)+(r[D>>2]|0)<<2)>>2])X=+c[q>>2];else X=+c[(r[$>>2]|0)+((r[(r[y>>2]|0)+8>>2]|0)+(r[D>>2]|0)<<2)>>2];c[q>>2]=X}A=W(r[P>>2]|0,r[(r[y>>2]|0)+8>>2]|0)|0;c[z>>2]=+c[(r[T>>2]|0)+(A+(r[D>>2]|0)<<2)>>2]-(+c[j>>2]<+c[q>>2]?+c[j>>2]:+c[q>>2]);c[z>>2]=0>+c[z>>2]?0:+c[z>>2];c[G>>2]=+V(+(-+c[z>>2]*.6931471805599453))*2;if((r[k>>2]|0)==3)c[G>>2]=+c[G>>2]*1.4142135381698608;c[G>>2]=+c[F>>2]<+c[G>>2]?+c[F>>2]:+c[G>>2];c[G>>2]=+c[G>>2]*+c[U>>2];A=(r[b>>2]|0)+((W(r[P>>2]|0,r[S>>2]|0)|0)<<2)|0;r[H>>2]=A+(a[(r[(r[y>>2]|0)+32>>2]|0)+(r[D>>2]<<1)>>1]<<r[k>>2]<<2);r[N>>2]=0;while(1){if((r[N>>2]|0)>=(1<<r[k>>2]|0))break;A=W(r[D>>2]|0,r[M>>2]|0)|0;if(!(o[(r[w>>2]|0)+(A+(r[P>>2]|0))>>0]&1<<r[N>>2])){r[O>>2]=0;while(1){if((r[O>>2]|0)>=(r[L>>2]|0))break;r[x>>2]=ve(r[x>>2]|0)|0;J=+c[G>>2];c[(r[H>>2]|0)+((r[O>>2]<<r[k>>2])+(r[N>>2]|0)<<2)>>2]=r[x>>2]&32768|0?J:-J;r[O>>2]=(r[O>>2]|0)+1}r[K>>2]=1}r[N>>2]=(r[N>>2]|0)+1}if(r[K>>2]|0)ke(r[H>>2]|0,r[L>>2]<<r[k>>2],1);A=(r[P>>2]|0)+1|0;r[P>>2]=A}while((A|0)<(r[M>>2]|0));r[D>>2]=(r[D>>2]|0)+1}m=v;return}function we(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>>>0)/((r[a>>2]|0)>>>0)|0|0}function ke(e,t,n){e=e|0;t=t|0;n=+n;var i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0;i=m;m=m+32|0;a=i+28|0;o=i+24|0;s=i+20|0;l=i+16|0;d=i+12|0;u=i+8|0;p=i+4|0;f=i;r[a>>2]=e;r[o>>2]=t;c[s>>2]=n;c[d>>2]=+Me(r[a>>2]|0,r[a>>2]|0,r[o>>2]|0)+1.0000000036274937e-15;c[p>>2]=+c[d>>2];n=1/+R(+ +c[p>>2]);c[u>>2]=n*+c[s>>2];r[f>>2]=r[a>>2];r[l>>2]=0;while(1){if((r[l>>2]|0)>=(r[o>>2]|0))break;c[r[f>>2]>>2]=+c[u>>2]*+c[r[f>>2]>>2];r[f>>2]=(r[f>>2]|0)+4;r[l>>2]=(r[l>>2]|0)+1}m=i;return}function Me(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;d=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;c[d>>2]=0;r[l>>2]=0;while(1){u=+c[d>>2];if((r[l>>2]|0)>=(r[s>>2]|0))break;c[d>>2]=u+ +c[(r[a>>2]|0)+(r[l>>2]<<2)>>2]*+c[(r[o>>2]|0)+(r[l>>2]<<2)>>2];r[l>>2]=(r[l>>2]|0)+1}m=i;return+u}function Se(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0;i=m;m=m+32|0;a=i+24|0;o=i+20|0;s=i+16|0;l=i+12|0;d=i+8|0;u=i+4|0;p=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[o>>2]=r[o>>2]>>1;r[l>>2]=0;while(1){if((r[l>>2]|0)>=(r[s>>2]|0))break;r[d>>2]=0;while(1){if((r[d>>2]|0)>=(r[o>>2]|0))break;n=W(r[s>>2]<<1,r[d>>2]|0)|0;c[u>>2]=+c[(r[a>>2]|0)+(n+(r[l>>2]|0)<<2)>>2]*.7071067690849304;n=W(r[s>>2]|0,(r[d>>2]<<1)+1|0)|0;c[p>>2]=+c[(r[a>>2]|0)+(n+(r[l>>2]|0)<<2)>>2]*.7071067690849304;n=W(r[s>>2]<<1,r[d>>2]|0)|0;c[(r[a>>2]|0)+(n+(r[l>>2]|0)<<2)>>2]=+c[u>>2]+ +c[p>>2];n=W(r[s>>2]|0,(r[d>>2]<<1)+1|0)|0;c[(r[a>>2]|0)+(n+(r[l>>2]|0)<<2)>>2]=+c[u>>2]-+c[p>>2];r[d>>2]=(r[d>>2]|0)+1}r[l>>2]=(r[l>>2]|0)+1}m=i;return}function Ae(e,t,n,s,l,d,u,p,f,h,g,_,v,y,b,w,k,M,S,A){e=e|0;t=t|0;n=n|0;s=s|0;l=l|0;d=d|0;u=u|0;p=p|0;f=f|0;h=h|0;g=g|0;_=_|0;v=v|0;y=y|0;b=b|0;w=w|0;k=k|0;M=M|0;S=S|0;A=A|0;var C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,se=0,le=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ie=0,xe=0,Pe=0,De=0,Re=0,Oe=0,Ne=0,Le=0,Fe=0,Ue=0,Be=0,He=0,je=0,Ve=0;C=m;m=m+240|0;T=C+232|0;E=C+228|0;$=C+224|0;I=C+220|0;x=C+216|0;P=C+212|0;D=C+208|0;R=C+204|0;O=C+200|0;N=C+196|0;L=C+192|0;F=C+188|0;U=C+184|0;B=C+180|0;H=C+176|0;j=C+172|0;V=C+168|0;q=C+164|0;z=C+160|0;G=C+156|0;K=C+152|0;Y=C+148|0;X=C+144|0;J=C+140|0;Z=C+136|0;Q=C+132|0;ee=C+128|0;te=C+124|0;ne=C+120|0;ie=C+116|0;ae=C+112|0;re=C+108|0;se=C+104|0;le=C+64|0;de=C+60|0;ue=C+56|0;pe=C+52|0;fe=C+48|0;me=C+44|0;he=C+40|0;ge=C+36|0;_e=C+32|0;ve=C+28|0;ye=C+24|0;be=C+20|0;we=C+16|0;ke=C+12|0;Me=C+8|0;Se=C+4|0;Ae=C;r[T>>2]=e;r[E>>2]=t;r[$>>2]=n;r[I>>2]=s;r[x>>2]=l;r[P>>2]=d;r[D>>2]=u;r[R>>2]=p;r[O>>2]=f;r[N>>2]=h;r[L>>2]=g;r[F>>2]=_;r[U>>2]=v;r[B>>2]=y;r[H>>2]=b;r[j>>2]=w;r[V>>2]=k;r[q>>2]=M;r[z>>2]=S;r[G>>2]=A;r[X>>2]=r[(r[E>>2]|0)+32>>2];r[ie>>2]=1;r[ae>>2]=r[P>>2]|0?2:1;r[se>>2]=((r[T>>2]|0)!=0^1)&1;r[te>>2]=1<<r[q>>2];r[ee>>2]=r[N>>2]|0?r[te>>2]|0:1;r[re>>2]=W(r[te>>2]|0,a[(r[X>>2]|0)+(r[$>>2]<<1)>>1]|0)|0;N=W(r[te>>2]|0,a[(r[X>>2]|0)+((r[(r[E>>2]|0)+8>>2]|0)-1<<1)>>1]|0)|0;A=W(r[ae>>2]|0,N-(r[re>>2]|0)|0)|0;r[de>>2]=oe()|0;N=m;m=m+((1*(A<<2)|0)+15&-16)|0;r[J>>2]=N;N=(r[J>>2]|0)+((W(r[te>>2]|0,a[(r[X>>2]|0)+((r[(r[E>>2]|0)+8>>2]|0)-1<<1)>>1]|0)|0)<<2)|0;r[Z>>2]=N+(0-(r[re>>2]|0)<<2);r[Q>>2]=(r[x>>2]|0)+((W(r[te>>2]|0,a[(r[X>>2]|0)+((r[(r[E>>2]|0)+8>>2]|0)-1<<1)>>1]|0)|0)<<2);r[ne>>2]=0;r[le+32>>2]=r[R>>2];r[le+24>>2]=r[V>>2];r[le>>2]=r[T>>2];r[le+12>>2]=r[U>>2];r[le+4>>2]=r[E>>2];r[le+36>>2]=r[r[G>>2]>>2];r[le+16>>2]=r[L>>2];r[K>>2]=r[$>>2];while(1){if((r[K>>2]|0)>=(r[I>>2]|0))break;r[he>>2]=-1;r[ve>>2]=0;r[le+8>>2]=r[K>>2];r[we>>2]=(r[K>>2]|0)==((r[I>>2]|0)-1|0)&1;r[ge>>2]=(r[x>>2]|0)+((W(r[te>>2]|0,a[(r[X>>2]|0)+(r[K>>2]<<1)>>1]|0)|0)<<2);if(r[P>>2]|0)r[_e>>2]=(r[P>>2]|0)+((W(r[te>>2]|0,a[(r[X>>2]|0)+(r[K>>2]<<1)>>1]|0)|0)<<2);else r[_e>>2]=0;T=W(r[te>>2]|0,a[(r[X>>2]|0)+((r[K>>2]|0)+1<<1)>>1]|0)|0;r[fe>>2]=T-(W(r[te>>2]|0,a[(r[X>>2]|0)+(r[K>>2]<<1)>>1]|0)|0);r[ue>>2]=Ce(r[V>>2]|0)|0;if((r[K>>2]|0)!=(r[$>>2]|0))r[j>>2]=(r[j>>2]|0)-(r[ue>>2]|0);r[Y>>2]=(r[H>>2]|0)-(r[ue>>2]|0)-1;r[le+28>>2]=r[Y>>2];if((r[K>>2]|0)<=((r[z>>2]|0)-1|0)){if(3<((r[z>>2]|0)-(r[K>>2]|0)|0))Ie=3;else Ie=(r[z>>2]|0)-(r[K>>2]|0)|0;r[me>>2]=Te(r[j>>2]|0,Ie)|0;if(((r[Y>>2]|0)+1|0)<((r[(r[O>>2]|0)+(r[K>>2]<<2)>>2]|0)+(r[me>>2]|0)|0))xe=(r[Y>>2]|0)+1|0;else xe=(r[(r[O>>2]|0)+(r[K>>2]<<2)>>2]|0)+(r[me>>2]|0)|0;do if(16383>=(xe|0))if(((r[Y>>2]|0)+1|0)<((r[(r[O>>2]|0)+(r[K>>2]<<2)>>2]|0)+(r[me>>2]|0)|0)){Pe=(r[Y>>2]|0)+1|0;break}else{Pe=(r[(r[O>>2]|0)+(r[K>>2]<<2)>>2]|0)+(r[me>>2]|0)|0;break}else Pe=16383;while(0);do if(0<=(Pe|0)){if(((r[Y>>2]|0)+1|0)<((r[(r[O>>2]|0)+(r[K>>2]<<2)>>2]|0)+(r[me>>2]|0)|0))De=(r[Y>>2]|0)+1|0;else De=(r[(r[O>>2]|0)+(r[K>>2]<<2)>>2]|0)+(r[me>>2]|0)|0;if(16383>=(De|0))if(((r[Y>>2]|0)+1|0)<((r[(r[O>>2]|0)+(r[K>>2]<<2)>>2]|0)+(r[me>>2]|0)|0)){Re=(r[Y>>2]|0)+1|0;break}else{Re=(r[(r[O>>2]|0)+(r[K>>2]<<2)>>2]|0)+(r[me>>2]|0)|0;break}else Re=16383}else Re=0;while(0);r[pe>>2]=Re}else r[pe>>2]=0;if((r[se>>2]|0?(T=W(r[te>>2]|0,a[(r[X>>2]|0)+(r[K>>2]<<1)>>1]|0)|0,(T-(r[fe>>2]|0)|0)>=(W(r[te>>2]|0,a[(r[X>>2]|0)+(r[$>>2]<<1)>>1]|0)|0)):0)?(r[ie>>2]|0)!=0|(r[ne>>2]|0)==0:0)r[ne>>2]=r[K>>2];r[ve>>2]=r[(r[B>>2]|0)+(r[K>>2]<<2)>>2];r[le+20>>2]=r[ve>>2];if((r[K>>2]|0)>=(r[(r[E>>2]|0)+12>>2]|0)){r[ge>>2]=r[J>>2];if(r[P>>2]|0)r[_e>>2]=r[J>>2];r[Q>>2]=0}if((r[K>>2]|0)==((r[I>>2]|0)-1|0))r[Q>>2]=0;if(r[ne>>2]|0?(r[L>>2]|0)!=3|(r[ee>>2]|0)>1|(r[ve>>2]|0)<0:0){T=W(r[te>>2]|0,a[(r[X>>2]|0)+(r[ne>>2]<<1)>>1]|0)|0;if(0>(T-(r[re>>2]|0)-(r[fe>>2]|0)|0))Oe=0;else{T=W(r[te>>2]|0,a[(r[X>>2]|0)+(r[ne>>2]<<1)>>1]|0)|0;Oe=T-(r[re>>2]|0)-(r[fe>>2]|0)|0}r[he>>2]=Oe;r[ke>>2]=r[ne>>2];do{T=r[te>>2]|0;R=r[X>>2]|0;N=(r[ke>>2]|0)+-1|0;r[ke>>2]=N;A=W(T,a[R+(N<<1)>>1]|0)|0}while((A|0)>((r[he>>2]|0)+(r[re>>2]|0)|0));r[Me>>2]=(r[ne>>2]|0)-1;do{A=r[te>>2]|0;N=r[X>>2]|0;R=(r[Me>>2]|0)+1|0;r[Me>>2]=R;T=W(A,a[N+(R<<1)>>1]|0)|0}while((T|0)<((r[he>>2]|0)+(r[re>>2]|0)+(r[fe>>2]|0)|0));r[be>>2]=0;r[ye>>2]=0;r[Se>>2]=r[ke>>2];do{T=o[(r[D>>2]|0)+((W(r[Se>>2]|0,r[ae>>2]|0)|0)+0)>>0]|0;r[ye>>2]=r[ye>>2]|T;T=W(r[Se>>2]|0,r[ae>>2]|0)|0;r[be>>2]=r[be>>2]|o[(r[D>>2]|0)+(T+(r[ae>>2]|0)-1)>>0];T=(r[Se>>2]|0)+1|0;r[Se>>2]=T}while((T|0)<(r[Me>>2]|0))}else{T=(1<<r[ee>>2])-1|0;r[be>>2]=T;r[ye>>2]=T}e:do if((r[F>>2]|0?(r[K>>2]|0)==(r[U>>2]|0):0)?(r[F>>2]=0,r[se>>2]|0):0){r[Ae>>2]=0;while(1){T=W(r[te>>2]|0,a[(r[X>>2]|0)+(r[K>>2]<<1)>>1]|0)|0;if((r[Ae>>2]|0)>=(T-(r[re>>2]|0)|0))break e;c[(r[J>>2]|0)+(r[Ae>>2]<<2)>>2]=(+c[(r[J>>2]|0)+(r[Ae>>2]<<2)>>2]+ +c[(r[Z>>2]|0)+(r[Ae>>2]<<2)>>2])*.5;r[Ae>>2]=(r[Ae>>2]|0)+1}}while(0);if(r[F>>2]|0){if((r[he>>2]|0)!=-1)Ne=(r[J>>2]|0)+(r[he>>2]<<2)|0;else Ne=0;if(r[we>>2]|0)Le=0;else{T=(r[J>>2]|0)+((W(r[te>>2]|0,a[(r[X>>2]|0)+(r[K>>2]<<1)>>1]|0)|0)<<2)|0;Le=T+(0-(r[re>>2]|0)<<2)|0}r[ye>>2]=Ee(le,r[ge>>2]|0,r[fe>>2]|0,(r[pe>>2]|0)/2|0,r[ee>>2]|0,Ne,r[q>>2]|0,Le,1,r[Q>>2]|0,r[ye>>2]|0)|0;if((r[he>>2]|0)!=-1)Fe=(r[Z>>2]|0)+(r[he>>2]<<2)|0;else Fe=0;if(r[we>>2]|0)Ue=0;else{T=(r[Z>>2]|0)+((W(r[te>>2]|0,a[(r[X>>2]|0)+(r[K>>2]<<1)>>1]|0)|0)<<2)|0;Ue=T+(0-(r[re>>2]|0)<<2)|0}r[be>>2]=Ee(le,r[_e>>2]|0,r[fe>>2]|0,(r[pe>>2]|0)/2|0,r[ee>>2]|0,Fe,r[q>>2]|0,Ue,1,r[Q>>2]|0,r[be>>2]|0)|0}else{T=r[ge>>2]|0;if(r[_e>>2]|0){if((r[he>>2]|0)!=-1)Be=(r[J>>2]|0)+(r[he>>2]<<2)|0;else Be=0;if(r[we>>2]|0)He=0;else{R=(r[J>>2]|0)+((W(r[te>>2]|0,a[(r[X>>2]|0)+(r[K>>2]<<1)>>1]|0)|0)<<2)|0;He=R+(0-(r[re>>2]|0)<<2)|0}r[ye>>2]=$e(le,T,r[_e>>2]|0,r[fe>>2]|0,r[pe>>2]|0,r[ee>>2]|0,Be,r[q>>2]|0,He,r[Q>>2]|0,r[ye>>2]|r[be>>2])|0}else{if((r[he>>2]|0)!=-1)je=(r[J>>2]|0)+(r[he>>2]<<2)|0;else je=0;if(r[we>>2]|0)Ve=0;else{R=(r[J>>2]|0)+((W(r[te>>2]|0,a[(r[X>>2]|0)+(r[K>>2]<<1)>>1]|0)|0)<<2)|0;Ve=R+(0-(r[re>>2]|0)<<2)|0}r[ye>>2]=Ee(le,T,r[fe>>2]|0,r[pe>>2]|0,r[ee>>2]|0,je,r[q>>2]|0,Ve,1,r[Q>>2]|0,r[ye>>2]|r[be>>2])|0}r[be>>2]=r[ye>>2]}i[(r[D>>2]|0)+((W(r[K>>2]|0,r[ae>>2]|0)|0)+0)>>0]=r[ye>>2];T=W(r[K>>2]|0,r[ae>>2]|0)|0;i[(r[D>>2]|0)+(T+(r[ae>>2]|0)-1)>>0]=r[be>>2];r[j>>2]=(r[j>>2]|0)+((r[(r[O>>2]|0)+(r[K>>2]<<2)>>2]|0)+(r[ue>>2]|0));r[ie>>2]=(r[pe>>2]|0)>(r[fe>>2]<<3|0)&1;r[K>>2]=(r[K>>2]|0)+1}r[r[G>>2]>>2]=r[le+36>>2];ce(r[de>>2]|0);m=C;return}function Ce(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0;t=m;m=m+32|0;n=t+16|0;i=t+12|0;a=t+8|0;o=t+4|0;s=t;r[n>>2]=e;r[i>>2]=r[(r[n>>2]|0)+20>>2]<<3;r[o>>2]=32-(Y(r[(r[n>>2]|0)+28>>2]|0)|0);r[a>>2]=(r[(r[n>>2]|0)+28>>2]|0)>>>((r[o>>2]|0)-16|0);r[s>>2]=((r[a>>2]|0)>>>12)-8;r[s>>2]=(r[s>>2]|0)+((r[a>>2]|0)>>>0>(r[5492+(r[s>>2]<<2)>>2]|0)>>>0&1);r[o>>2]=(r[o>>2]<<3)+(r[s>>2]|0);m=t;return(r[i>>2]|0)-(r[o>>2]|0)|0}function Te(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return(r[i>>2]|0)/(r[a>>2]|0)|0|0}function Ee(e,t,n,i,a,s,l,d,u,p,f){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;s=s|0;l=l|0;d=d|0;u=+u;p=p|0;f=f|0;var h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0;h=m;m=m+112|0;g=h+100|0;_=h+96|0;v=h+92|0;y=h+88|0;b=h+84|0;w=h+80|0;k=h+76|0;M=h+72|0;S=h+68|0;A=h+64|0;C=h+60|0;T=h+56|0;E=h+52|0;$=h+48|0;I=h+44|0;x=h+40|0;P=h+36|0;D=h+32|0;O=h+28|0;N=h+24|0;L=h+20|0;F=h+16|0;U=h+12|0;B=h+8|0;H=h+4|0;j=h;r[_>>2]=e;r[v>>2]=t;r[y>>2]=n;r[b>>2]=i;r[w>>2]=a;r[k>>2]=s;r[M>>2]=l;r[S>>2]=d;c[A>>2]=u;r[C>>2]=p;r[T>>2]=f;r[E>>2]=r[y>>2];r[$>>2]=r[y>>2];r[x>>2]=r[w>>2];r[P>>2]=0;r[D>>2]=0;r[N>>2]=0;r[L>>2]=((r[r[_>>2]>>2]|0)!=0^1)&1;r[U>>2]=r[r[_>>2]>>2];r[B>>2]=r[(r[_>>2]|0)+20>>2];r[O>>2]=(r[x>>2]|0)==1&1;r[$>>2]=we(r[$>>2]|0,r[w>>2]|0)|0;if((r[y>>2]|0)==1){r[g>>2]=Ie(r[_>>2]|0,r[v>>2]|0,0,r[b>>2]|0,r[S>>2]|0)|0;
V=r[g>>2]|0;m=h;return V|0}if((r[B>>2]|0)>0)r[D>>2]=r[B>>2];do if((r[C>>2]|0)!=0&(r[k>>2]|0)!=0){if((r[D>>2]|0)==0?!((r[$>>2]&1|0)==0&(r[B>>2]|0)<0|(r[x>>2]|0)>1):0)break;La(r[C>>2]|0,r[k>>2]|0,(r[y>>2]<<2)+0|0)|0;r[k>>2]=r[C>>2]}while(0);r[F>>2]=0;while(1){if((r[F>>2]|0)>=(r[D>>2]|0))break;if(r[U>>2]|0)Se(r[v>>2]|0,r[y>>2]>>r[F>>2],1<<r[F>>2]);if(r[k>>2]|0)Se(r[k>>2]|0,r[y>>2]>>r[F>>2],1<<r[F>>2]);r[T>>2]=o[23948+(r[T>>2]&15)>>0]|0|(o[23948+(r[T>>2]>>4)>>0]|0)<<2;r[F>>2]=(r[F>>2]|0)+1}r[w>>2]=r[w>>2]>>r[D>>2];r[$>>2]=r[$>>2]<<r[D>>2];while(1){if(!((r[$>>2]&1|0)==0?(r[B>>2]|0)<0:0))break;if(r[U>>2]|0)Se(r[v>>2]|0,r[$>>2]|0,r[w>>2]|0);if(r[k>>2]|0)Se(r[k>>2]|0,r[$>>2]|0,r[w>>2]|0);r[T>>2]=r[T>>2]|r[T>>2]<<r[w>>2];r[w>>2]=r[w>>2]<<1;r[$>>2]=r[$>>2]>>1;r[P>>2]=(r[P>>2]|0)+1;r[B>>2]=(r[B>>2]|0)+1}r[x>>2]=r[w>>2];r[I>>2]=r[$>>2];if((r[x>>2]|0)>1){if(r[U>>2]|0)rt(r[v>>2]|0,r[$>>2]>>r[D>>2],r[x>>2]<<r[D>>2],r[O>>2]|0);if(r[k>>2]|0)rt(r[k>>2]|0,r[$>>2]>>r[D>>2],r[x>>2]<<r[D>>2],r[O>>2]|0)}r[N>>2]=ot(r[_>>2]|0,r[v>>2]|0,r[y>>2]|0,r[b>>2]|0,r[w>>2]|0,r[k>>2]|0,r[M>>2]|0,+c[A>>2],r[T>>2]|0)|0;if(r[L>>2]|0){if((r[x>>2]|0)>1)st(r[v>>2]|0,r[$>>2]>>r[D>>2],r[x>>2]<<r[D>>2],r[O>>2]|0);r[$>>2]=r[I>>2];r[w>>2]=r[x>>2];r[F>>2]=0;while(1){if((r[F>>2]|0)>=(r[P>>2]|0))break;r[w>>2]=r[w>>2]>>1;r[$>>2]=r[$>>2]<<1;r[N>>2]=r[N>>2]|(r[N>>2]|0)>>>(r[w>>2]|0);Se(r[v>>2]|0,r[$>>2]|0,r[w>>2]|0);r[F>>2]=(r[F>>2]|0)+1}r[F>>2]=0;while(1){if((r[F>>2]|0)>=(r[D>>2]|0))break;r[N>>2]=o[23964+(r[N>>2]|0)>>0];Se(r[v>>2]|0,r[E>>2]>>r[F>>2],1<<r[F>>2]);r[F>>2]=(r[F>>2]|0)+1}r[w>>2]=r[w>>2]<<r[D>>2];e:do if(r[S>>2]|0){c[j>>2]=+R(+ +(r[E>>2]|0));r[H>>2]=0;while(1){if((r[H>>2]|0)>=(r[E>>2]|0))break e;c[(r[S>>2]|0)+(r[H>>2]<<2)>>2]=+c[j>>2]*+c[(r[v>>2]|0)+(r[H>>2]<<2)>>2];r[H>>2]=(r[H>>2]|0)+1}}while(0);r[N>>2]=r[N>>2]&(1<<r[w>>2])-1}r[g>>2]=r[N>>2];V=r[g>>2]|0;m=h;return V|0}function $e(e,t,n,i,a,o,s,l,d,u,p){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;l=l|0;d=d|0;u=u|0;p=p|0;var f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,G=0,K=0,Y=0,X=0,J=0,Z=0;f=m;m=m+160|0;h=f+156|0;g=f+152|0;_=f+148|0;v=f+144|0;y=f+140|0;b=f+136|0;w=f+132|0;k=f+128|0;M=f+124|0;S=f+120|0;A=f+116|0;C=f+112|0;T=f+108|0;E=f+104|0;$=f+100|0;I=f+96|0;x=f+92|0;P=f+88|0;D=f+84|0;R=f+80|0;O=f+76|0;N=f+72|0;L=f+68|0;F=f+64|0;U=f+40|0;B=f+36|0;H=f+32|0;j=f+28|0;V=f+24|0;q=f+20|0;z=f+16|0;W=f+12|0;G=f+8|0;K=f+4|0;Y=f;r[g>>2]=e;r[_>>2]=t;r[v>>2]=n;r[y>>2]=i;r[b>>2]=a;r[w>>2]=o;r[k>>2]=s;r[M>>2]=l;r[S>>2]=d;r[A>>2]=u;r[C>>2]=p;r[T>>2]=0;r[E>>2]=0;r[$>>2]=0;c[I>>2]=0;c[x>>2]=0;r[P>>2]=0;r[D>>2]=((r[r[g>>2]>>2]|0)!=0^1)&1;r[H>>2]=r[r[g>>2]>>2];r[j>>2]=r[(r[g>>2]|0)+24>>2];if((r[y>>2]|0)==1){r[h>>2]=Ie(r[g>>2]|0,r[_>>2]|0,r[v>>2]|0,r[b>>2]|0,r[S>>2]|0)|0;X=r[h>>2]|0;m=f;return X|0}r[B>>2]=r[C>>2];xe(r[g>>2]|0,U,r[_>>2]|0,r[v>>2]|0,r[y>>2]|0,b,r[w>>2]|0,r[w>>2]|0,r[M>>2]|0,1,C);r[$>>2]=r[U>>2];r[T>>2]=r[U+4>>2];r[E>>2]=r[U+8>>2];r[N>>2]=r[U+12>>2];r[L>>2]=r[U+16>>2];r[F>>2]=r[U+20>>2];c[I>>2]=+(r[T>>2]|0)*30517578125e-15;c[x>>2]=+(r[E>>2]|0)*30517578125e-15;do if((r[y>>2]|0)==2){r[q>>2]=0;r[R>>2]=r[b>>2];r[O>>2]=0;r[O>>2]=(r[L>>2]|0)!=0&(r[L>>2]|0)!=16384?8:0;r[R>>2]=(r[R>>2]|0)-(r[O>>2]|0);r[V>>2]=(r[L>>2]|0)>8192&1;E=(r[g>>2]|0)+28|0;r[E>>2]=(r[E>>2]|0)-((r[F>>2]|0)+(r[O>>2]|0));r[z>>2]=r[V>>2]|0?r[v>>2]|0:r[_>>2]|0;r[W>>2]=r[V>>2]|0?r[_>>2]|0:r[v>>2]|0;do if(r[O>>2]|0)if(r[H>>2]|0){r[q>>2]=+c[r[z>>2]>>2]*+c[(r[W>>2]|0)+4>>2]-+c[(r[z>>2]|0)+4>>2]*+c[r[W>>2]>>2]<0&1;Pe(r[j>>2]|0,r[q>>2]|0,1);break}else{r[q>>2]=De(r[j>>2]|0,1)|0;break}while(0);r[q>>2]=1-(r[q>>2]<<1);r[P>>2]=Ee(r[g>>2]|0,r[z>>2]|0,r[y>>2]|0,r[R>>2]|0,r[w>>2]|0,r[k>>2]|0,r[M>>2]|0,r[S>>2]|0,1,r[A>>2]|0,r[B>>2]|0)|0;c[r[W>>2]>>2]=+(0-(r[q>>2]|0)|0)*+c[(r[z>>2]|0)+4>>2];c[(r[W>>2]|0)+4>>2]=+(r[q>>2]|0)*+c[r[z>>2]>>2];if(r[D>>2]|0){c[r[_>>2]>>2]=+c[I>>2]*+c[r[_>>2]>>2];c[(r[_>>2]|0)+4>>2]=+c[I>>2]*+c[(r[_>>2]|0)+4>>2];c[r[v>>2]>>2]=+c[x>>2]*+c[r[v>>2]>>2];c[(r[v>>2]|0)+4>>2]=+c[x>>2]*+c[(r[v>>2]|0)+4>>2];c[G>>2]=+c[r[_>>2]>>2];c[r[_>>2]>>2]=+c[G>>2]-+c[r[v>>2]>>2];c[r[v>>2]>>2]=+c[G>>2]+ +c[r[v>>2]>>2];c[G>>2]=+c[(r[_>>2]|0)+4>>2];c[(r[_>>2]|0)+4>>2]=+c[G>>2]-+c[(r[v>>2]|0)+4>>2];c[(r[v>>2]|0)+4>>2]=+c[G>>2]+ +c[(r[v>>2]|0)+4>>2]}}else{E=r[b>>2]|0;if((r[b>>2]|0)<(((r[b>>2]|0)-(r[N>>2]|0)|0)/2|0|0))J=E;else J=(E-(r[N>>2]|0)|0)/2|0;if(0<=(J|0)){E=r[b>>2]|0;if((r[b>>2]|0)<(((r[b>>2]|0)-(r[N>>2]|0)|0)/2|0|0))Z=E;else Z=(E-(r[N>>2]|0)|0)/2|0}else Z=0;r[R>>2]=Z;r[O>>2]=(r[b>>2]|0)-(r[R>>2]|0);E=(r[g>>2]|0)+28|0;r[E>>2]=(r[E>>2]|0)-(r[F>>2]|0);r[K>>2]=r[(r[g>>2]|0)+28>>2];E=r[g>>2]|0;if((r[R>>2]|0)>=(r[O>>2]|0)){r[P>>2]=Ee(E,r[_>>2]|0,r[y>>2]|0,r[R>>2]|0,r[w>>2]|0,r[k>>2]|0,r[M>>2]|0,r[S>>2]|0,1,r[A>>2]|0,r[C>>2]|0)|0;r[K>>2]=(r[R>>2]|0)-((r[K>>2]|0)-(r[(r[g>>2]|0)+28>>2]|0));if((r[K>>2]|0)>24&(r[L>>2]|0)!=0)r[O>>2]=(r[O>>2]|0)+((r[K>>2]|0)-24);T=Ee(r[g>>2]|0,r[v>>2]|0,r[y>>2]|0,r[O>>2]|0,r[w>>2]|0,0,r[M>>2]|0,0,+c[x>>2],0,r[C>>2]>>r[w>>2])|0;r[P>>2]=r[P>>2]|T;break}else{r[P>>2]=Ee(E,r[v>>2]|0,r[y>>2]|0,r[O>>2]|0,r[w>>2]|0,0,r[M>>2]|0,0,+c[x>>2],0,r[C>>2]>>r[w>>2])|0;r[K>>2]=(r[O>>2]|0)-((r[K>>2]|0)-(r[(r[g>>2]|0)+28>>2]|0));if((r[K>>2]|0)>24&(r[L>>2]|0)!=16384)r[R>>2]=(r[R>>2]|0)+((r[K>>2]|0)-24);E=Ee(r[g>>2]|0,r[_>>2]|0,r[y>>2]|0,r[R>>2]|0,r[w>>2]|0,r[k>>2]|0,r[M>>2]|0,r[S>>2]|0,1,r[A>>2]|0,r[C>>2]|0)|0;r[P>>2]=r[P>>2]|E;break}}while(0);e:do if(r[D>>2]|0){if((r[y>>2]|0)!=2)Re(r[_>>2]|0,r[v>>2]|0,+c[I>>2],r[y>>2]|0);if(r[$>>2]|0){r[Y>>2]=0;while(1){if((r[Y>>2]|0)>=(r[y>>2]|0))break e;c[(r[v>>2]|0)+(r[Y>>2]<<2)>>2]=-+c[(r[v>>2]|0)+(r[Y>>2]<<2)>>2];r[Y>>2]=(r[Y>>2]|0)+1}}}while(0);r[h>>2]=r[P>>2];X=r[h>>2]|0;m=f;return X|0}function Ie(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;o=m;m=m+48|0;s=o+44|0;l=o+40|0;d=o+36|0;u=o+32|0;p=o+28|0;f=o+24|0;h=o+20|0;g=o+16|0;_=o+12|0;v=o+8|0;y=o+4|0;b=o;r[s>>2]=e;r[l>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=a;r[f>>2]=((r[r[s>>2]>>2]|0)!=0^1)&1;r[_>>2]=r[l>>2];r[v>>2]=r[r[s>>2]>>2];r[y>>2]=r[(r[s>>2]|0)+24>>2];r[g>>2]=(r[d>>2]|0)!=0&1;r[h>>2]=0;do{r[b>>2]=0;if((r[(r[s>>2]|0)+28>>2]|0)>=8){if(r[v>>2]|0){r[b>>2]=+c[r[_>>2]>>2]<0&1;Pe(r[y>>2]|0,r[b>>2]|0,1)}else r[b>>2]=De(r[y>>2]|0,1)|0;a=(r[s>>2]|0)+28|0;r[a>>2]=(r[a>>2]|0)-8;r[u>>2]=(r[u>>2]|0)-8}if(r[f>>2]|0)c[r[_>>2]>>2]=r[b>>2]|0?-1:1;r[_>>2]=r[d>>2];a=(r[h>>2]|0)+1|0;r[h>>2]=a}while((a|0)<(1+(r[g>>2]|0)|0));if(!(r[p>>2]|0)){m=o;return 1}c[r[p>>2]>>2]=+c[r[l>>2]>>2];m=o;return 1}function xe(e,t,n,i,o,s,l,d,u,p,f){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;s=s|0;l=l|0;d=d|0;u=u|0;p=p|0;f=f|0;var h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,ke=0,Me=0,Se=0,Ae=0;h=m;m=m+160|0;g=h+148|0;_=h+144|0;v=h+140|0;y=h+136|0;b=h+132|0;w=h+128|0;k=h+124|0;M=h+120|0;S=h+116|0;A=h+112|0;C=h+108|0;T=h+104|0;E=h+100|0;$=h+96|0;I=h+92|0;x=h+88|0;P=h+84|0;D=h+80|0;R=h+76|0;O=h+72|0;N=h+68|0;L=h+64|0;F=h+60|0;U=h+56|0;B=h+52|0;H=h+48|0;j=h+44|0;V=h+40|0;q=h+36|0;z=h+32|0;G=h+28|0;K=h+24|0;Y=h+20|0;X=h+16|0;J=h+12|0;Z=h+8|0;Q=h+4|0;ee=h;r[g>>2]=e;r[_>>2]=t;r[v>>2]=n;r[y>>2]=i;r[b>>2]=o;r[w>>2]=s;r[k>>2]=l;r[M>>2]=d;r[S>>2]=u;r[A>>2]=p;r[C>>2]=f;r[E>>2]=0;r[N>>2]=0;r[L>>2]=r[r[g>>2]>>2];r[F>>2]=r[(r[g>>2]|0)+4>>2];r[U>>2]=r[(r[g>>2]|0)+8>>2];r[B>>2]=r[(r[g>>2]|0)+12>>2];r[H>>2]=r[(r[g>>2]|0)+24>>2];r[j>>2]=r[(r[g>>2]|0)+32>>2];r[D>>2]=(a[(r[(r[F>>2]|0)+56>>2]|0)+(r[U>>2]<<1)>>1]|0)+(r[S>>2]<<3);r[R>>2]=(r[D>>2]>>1)-((r[A>>2]|0?(r[b>>2]|0)==2:0)?16:4);r[T>>2]=Fe(r[b>>2]|0,r[r[w>>2]>>2]|0,r[R>>2]|0,r[D>>2]|0,r[A>>2]|0)|0;if(r[A>>2]|0?(r[U>>2]|0)>=(r[B>>2]|0):0)r[T>>2]=1;if(r[L>>2]|0)r[E>>2]=Ue(r[v>>2]|0,r[y>>2]|0,r[A>>2]|0,r[b>>2]|0)|0;r[O>>2]=Ce(r[H>>2]|0)|0;do if((r[T>>2]|0)!=1){if(r[L>>2]|0)r[E>>2]=(W(r[E>>2]|0,r[T>>2]|0)|0)+8192>>14;do if((r[A>>2]|0)!=0&(r[b>>2]|0)>2){r[V>>2]=3;r[q>>2]=r[E>>2];r[z>>2]=(r[T>>2]|0)/2|0;B=W(r[V>>2]|0,(r[z>>2]|0)+1|0)|0;r[G>>2]=B+(r[z>>2]|0);B=r[H>>2]|0;if(r[L>>2]|0){if((r[q>>2]|0)<=(r[z>>2]|0))te=W(r[V>>2]|0,r[q>>2]|0)|0;else te=(r[q>>2]|0)-1-(r[z>>2]|0)+(W((r[z>>2]|0)+1|0,r[V>>2]|0)|0)|0;if((r[q>>2]|0)<=(r[z>>2]|0))ne=W(r[V>>2]|0,(r[q>>2]|0)+1|0)|0;else ne=(r[q>>2]|0)-(r[z>>2]|0)+(W((r[z>>2]|0)+1|0,r[V>>2]|0)|0)|0;Be(B,te,ne,r[G>>2]|0);break}r[K>>2]=He(B,r[G>>2]|0)|0;if((r[K>>2]|0)<(W((r[z>>2]|0)+1|0,r[V>>2]|0)|0))r[q>>2]=(r[K>>2]|0)/(r[V>>2]|0)|0;else r[q>>2]=(r[z>>2]|0)+1+((r[K>>2]|0)-(W((r[z>>2]|0)+1|0,r[V>>2]|0)|0));if((r[q>>2]|0)<=(r[z>>2]|0))ie=W(r[V>>2]|0,r[q>>2]|0)|0;else ie=(r[q>>2]|0)-1-(r[z>>2]|0)+(W((r[z>>2]|0)+1|0,r[V>>2]|0)|0)|0;if((r[q>>2]|0)<=(r[z>>2]|0))ae=W(r[V>>2]|0,(r[q>>2]|0)+1|0)|0;else ae=(r[q>>2]|0)-(r[z>>2]|0)+(W((r[z>>2]|0)+1|0,r[V>>2]|0)|0)|0;je(r[H>>2]|0,ie,ae,r[G>>2]|0);r[E>>2]=r[q>>2]}else{if((r[M>>2]|0)>1|(r[A>>2]|0)!=0){B=r[H>>2]|0;if(r[L>>2]|0){Ve(B,r[E>>2]|0,(r[T>>2]|0)+1|0);break}else{r[E>>2]=qe(B,(r[T>>2]|0)+1|0)|0;break}}r[Y>>2]=1;r[X>>2]=W((r[T>>2]>>1)+1|0,(r[T>>2]>>1)+1|0)|0;if(!(r[L>>2]|0)){r[Z>>2]=0;r[Q>>2]=He(r[H>>2]|0,r[X>>2]|0)|0;if((r[Q>>2]|0)<((W(r[T>>2]>>1,(r[T>>2]>>1)+1|0)|0)>>1|0)){r[E>>2]=((ze((r[Q>>2]<<3)+1|0)|0)-1|0)>>>1;r[Y>>2]=(r[E>>2]|0)+1;r[Z>>2]=(W(r[E>>2]|0,(r[E>>2]|0)+1|0)|0)>>1}else{B=(r[T>>2]|0)+1<<1;r[E>>2]=(B-(ze(((r[X>>2]|0)-(r[Q>>2]|0)-1<<3)+1|0)|0)|0)>>>1;r[Y>>2]=(r[T>>2]|0)+1-(r[E>>2]|0);r[Z>>2]=(r[X>>2]|0)-((W((r[T>>2]|0)+1-(r[E>>2]|0)|0,(r[T>>2]|0)+2-(r[E>>2]|0)|0)|0)>>1)}je(r[H>>2]|0,r[Z>>2]|0,(r[Z>>2]|0)+(r[Y>>2]|0)|0,r[X>>2]|0);break}if((r[E>>2]|0)<=(r[T>>2]>>1|0))re=(r[E>>2]|0)+1|0;else re=(r[T>>2]|0)+1-(r[E>>2]|0)|0;r[Y>>2]=re;if((r[E>>2]|0)<=(r[T>>2]>>1|0))oe=(W(r[E>>2]|0,(r[E>>2]|0)+1|0)|0)>>1;else oe=(r[X>>2]|0)-((W((r[T>>2]|0)+1-(r[E>>2]|0)|0,(r[T>>2]|0)+2-(r[E>>2]|0)|0)|0)>>1)|0;r[J>>2]=oe;Be(r[H>>2]|0,r[J>>2]|0,(r[J>>2]|0)+(r[Y>>2]|0)|0,r[X>>2]|0)}while(0);r[E>>2]=we(r[E>>2]<<14,r[T>>2]|0)|0;if((r[L>>2]|0)!=0&(r[A>>2]|0)!=0)if(!(r[E>>2]|0)){We(r[F>>2]|0,r[v>>2]|0,r[y>>2]|0,r[j>>2]|0,r[U>>2]|0,r[b>>2]|0);break}else{Ge(r[v>>2]|0,r[y>>2]|0,r[b>>2]|0);break}}else if(r[A>>2]|0){if(r[L>>2]|0){r[N>>2]=(r[E>>2]|0)>8192&1;e:do if(r[N>>2]|0){r[ee>>2]=0;while(1){if((r[ee>>2]|0)>=(r[b>>2]|0))break e;c[(r[y>>2]|0)+(r[ee>>2]<<2)>>2]=-+c[(r[y>>2]|0)+(r[ee>>2]<<2)>>2];r[ee>>2]=(r[ee>>2]|0)+1}}while(0);We(r[F>>2]|0,r[v>>2]|0,r[y>>2]|0,r[j>>2]|0,r[U>>2]|0,r[b>>2]|0)}do if((r[r[w>>2]>>2]|0)>16?(r[(r[g>>2]|0)+28>>2]|0)>16:0){B=r[H>>2]|0;if(r[L>>2]|0){Ke(B,r[N>>2]|0,2);break}else{r[N>>2]=Ye(B,2)|0;break}}else se=60;while(0);if((se|0)==60)r[N>>2]=0;r[E>>2]=0}while(0);se=Ce(r[H>>2]|0)|0;r[P>>2]=se-(r[O>>2]|0);O=r[w>>2]|0;r[O>>2]=(r[O>>2]|0)-(r[P>>2]|0);if(!(r[E>>2]|0)){r[I>>2]=32767;r[x>>2]=0;O=r[C>>2]|0;r[O>>2]=r[O>>2]&(1<<r[k>>2])-1;r[$>>2]=-16384;le=r[N>>2]|0;ce=r[_>>2]|0;r[ce>>2]=le;de=r[I>>2]|0;ue=r[_>>2]|0;pe=ue+4|0;r[pe>>2]=de;fe=r[x>>2]|0;me=r[_>>2]|0;he=me+8|0;r[he>>2]=fe;ge=r[$>>2]|0;_e=r[_>>2]|0;ve=_e+12|0;r[ve>>2]=ge;ye=r[E>>2]|0;be=r[_>>2]|0;ke=be+16|0;r[ke>>2]=ye;Me=r[P>>2]|0;Se=r[_>>2]|0;Ae=Se+20|0;r[Ae>>2]=Me;m=h;return}if((r[E>>2]|0)==16384){r[I>>2]=0;r[x>>2]=32767;O=r[C>>2]|0;r[O>>2]=r[O>>2]&(1<<r[k>>2])-1<<r[k>>2];r[$>>2]=16384;le=r[N>>2]|0;ce=r[_>>2]|0;r[ce>>2]=le;de=r[I>>2]|0;ue=r[_>>2]|0;pe=ue+4|0;r[pe>>2]=de;fe=r[x>>2]|0;me=r[_>>2]|0;he=me+8|0;r[he>>2]=fe;ge=r[$>>2]|0;_e=r[_>>2]|0;ve=_e+12|0;r[ve>>2]=ge;ye=r[E>>2]|0;be=r[_>>2]|0;ke=be+16|0;r[ke>>2]=ye;Me=r[P>>2]|0;Se=r[_>>2]|0;Ae=Se+20|0;r[Ae>>2]=Me;m=h;return}else{r[I>>2]=(Xe(r[E>>2]&65535)|0)<<16>>16;r[x>>2]=(Xe(16384-(r[E>>2]|0)&65535)|0)<<16>>16;k=((r[b>>2]|0)-1<<7&65535)<<16>>16;r[$>>2]=16384+(W(k,((Je(r[x>>2]|0,r[I>>2]|0)|0)&65535)<<16>>16)|0)>>15;le=r[N>>2]|0;ce=r[_>>2]|0;r[ce>>2]=le;de=r[I>>2]|0;ue=r[_>>2]|0;pe=ue+4|0;r[pe>>2]=de;fe=r[x>>2]|0;me=r[_>>2]|0;he=me+8|0;r[he>>2]=fe;ge=r[$>>2]|0;_e=r[_>>2]|0;ve=_e+12|0;r[ve>>2]=ge;ye=r[E>>2]|0;be=r[_>>2]|0;ke=be+16|0;r[ke>>2]=ye;Me=r[P>>2]|0;Se=r[_>>2]|0;Ae=Se+20|0;r[Ae>>2]=Me;m=h;return}}function Pe(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[l>>2]=r[(r[a>>2]|0)+12>>2];r[c>>2]=r[(r[a>>2]|0)+16>>2];if(((r[c>>2]|0)+(r[s>>2]|0)|0)>>>0>32)do{n=Le(r[a>>2]|0,r[l>>2]&255)|0;t=(r[a>>2]|0)+44|0;r[t>>2]=r[t>>2]|n;r[l>>2]=(r[l>>2]|0)>>>8;r[c>>2]=(r[c>>2]|0)-8}while((r[c>>2]|0)>=8);r[l>>2]=r[l>>2]|r[o>>2]<<r[c>>2];r[c>>2]=(r[c>>2]|0)+(r[s>>2]|0);r[(r[a>>2]|0)+12>>2]=r[l>>2];r[(r[a>>2]|0)+16>>2]=r[c>>2];c=(r[a>>2]|0)+20|0;r[c>>2]=(r[c>>2]|0)+(r[s>>2]|0);m=i;return}function De(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;n=m;m=m+32|0;i=n+16|0;a=n+12|0;o=n+8|0;s=n+4|0;l=n;r[i>>2]=e;r[a>>2]=t;r[o>>2]=r[(r[i>>2]|0)+12>>2];r[s>>2]=r[(r[i>>2]|0)+16>>2];if((r[s>>2]|0)>>>0<(r[a>>2]|0)>>>0)do{t=Ne(r[i>>2]|0)|0;r[o>>2]=r[o>>2]|t<<r[s>>2];r[s>>2]=(r[s>>2]|0)+8}while((r[s>>2]|0)<=24);r[l>>2]=r[o>>2]&(1<<r[a>>2])-1;r[o>>2]=(r[o>>2]|0)>>>(r[a>>2]|0);r[s>>2]=(r[s>>2]|0)-(r[a>>2]|0);r[(r[i>>2]|0)+12>>2]=r[o>>2];r[(r[i>>2]|0)+16>>2]=r[s>>2];s=(r[i>>2]|0)+20|0;r[s>>2]=(r[s>>2]|0)+(r[a>>2]|0);m=n;return r[l>>2]|0}function Re(e,t,n,i){e=e|0;t=t|0;n=+n;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;a=m;m=m+64|0;o=a+56|0;s=a+52|0;l=a+48|0;d=a+44|0;u=a+40|0;p=a+36|0;f=a+32|0;h=a+28|0;g=a+24|0;_=a+20|0;v=a+16|0;y=a+12|0;b=a+8|0;w=a+4|0;k=a;r[o>>2]=e;r[s>>2]=t;c[l>>2]=n;r[d>>2]=i;c[p>>2]=0;c[f>>2]=0;Oe(r[s>>2]|0,r[o>>2]|0,r[s>>2]|0,r[d>>2]|0,p,f);c[p>>2]=+c[l>>2]*+c[p>>2];c[_>>2]=+c[l>>2];c[h>>2]=+c[_>>2]*+c[_>>2]+ +c[f>>2]-+c[p>>2]*2;c[g>>2]=+c[_>>2]*+c[_>>2]+ +c[f>>2]+ +c[p>>2]*2;if(+c[g>>2]<.0006000000284984708|+c[h>>2]<.0006000000284984708){La(r[s>>2]|0,r[o>>2]|0,(r[d>>2]<<2)+0|0)|0;m=a;return}c[v>>2]=+c[h>>2];c[y>>2]=1/+R(+ +c[v>>2]);c[v>>2]=+c[g>>2];c[b>>2]=1/+R(+ +c[v>>2]);r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[d>>2]|0))break;c[k>>2]=+c[l>>2]*+c[(r[o>>2]|0)+(r[u>>2]<<2)>>2];c[w>>2]=+c[(r[s>>2]|0)+(r[u>>2]<<2)>>2];c[(r[o>>2]|0)+(r[u>>2]<<2)>>2]=+c[y>>2]*(+c[k>>2]-+c[w>>2]);c[(r[s>>2]|0)+(r[u>>2]<<2)>>2]=+c[b>>2]*(+c[k>>2]+ +c[w>>2]);r[u>>2]=(r[u>>2]|0)+1}m=a;return}function Oe(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0;s=m;m=m+48|0;l=s+32|0;d=s+28|0;u=s+24|0;p=s+20|0;f=s+16|0;h=s+12|0;g=s+8|0;_=s+4|0;v=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;c[_>>2]=0;c[v>>2]=0;r[g>>2]=0;while(1){y=+c[_>>2];if((r[g>>2]|0)>=(r[p>>2]|0))break;c[_>>2]=y+ +c[(r[l>>2]|0)+(r[g>>2]<<2)>>2]*+c[(r[d>>2]|0)+(r[g>>2]<<2)>>2];c[v>>2]=+c[v>>2]+ +c[(r[l>>2]|0)+(r[g>>2]<<2)>>2]*+c[(r[u>>2]|0)+(r[g>>2]<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}c[r[f>>2]>>2]=y;c[r[h>>2]>>2]=+c[v>>2];m=s;return}function Ne(e){e=e|0;var t=0,n=0,i=0,a=0,s=0;t=m;m=m+16|0;n=t;r[n>>2]=e;if((r[(r[n>>2]|0)+8>>2]|0)>>>0>=(r[(r[n>>2]|0)+4>>2]|0)>>>0){i=0;m=t;return i|0}e=r[r[n>>2]>>2]|0;a=r[(r[n>>2]|0)+4>>2]|0;s=(r[n>>2]|0)+8|0;n=(r[s>>2]|0)+1|0;r[s>>2]=n;i=o[e+(a-n)>>0]|0;m=t;return i|0}function Le(e,t){e=e|0;t=t|0;var n=0,a=0,o=0,s=0,l=0,c=0;n=m;m=m+16|0;a=n+8|0;o=n+4|0;s=n;r[o>>2]=e;r[s>>2]=t;if(((r[(r[o>>2]|0)+24>>2]|0)+(r[(r[o>>2]|0)+8>>2]|0)|0)>>>0>=(r[(r[o>>2]|0)+4>>2]|0)>>>0){r[a>>2]=-1;l=r[a>>2]|0;m=n;return l|0}else{t=r[s>>2]&255;s=r[r[o>>2]>>2]|0;e=r[(r[o>>2]|0)+4>>2]|0;c=(r[o>>2]|0)+8|0;o=(r[c>>2]|0)+1|0;r[c>>2]=o;i[s+(e-o)>>0]=t;r[a>>2]=0;l=r[a>>2]|0;m=n;return l|0}return 0}function Fe(e,t,n,i,o){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;s=m;m=m+32|0;l=s+28|0;c=s+24|0;d=s+20|0;u=s+16|0;p=s+12|0;f=s+8|0;h=s+4|0;g=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=o;r[g>>2]=(r[l>>2]<<1)-1;if((r[p>>2]|0)!=0&(r[l>>2]|0)==2)r[g>>2]=(r[g>>2]|0)+-1;l=(r[c>>2]|0)+(W(r[g>>2]|0,r[d>>2]|0)|0)|0;r[h>>2]=Te(l,r[g>>2]|0)|0;if(((r[c>>2]|0)-(r[u>>2]|0)-32|0)<(r[h>>2]|0))_=(r[c>>2]|0)-(r[u>>2]|0)-32|0;else _=r[h>>2]|0;r[h>>2]=_;r[h>>2]=64<(r[h>>2]|0)?64:r[h>>2]|0;if((r[h>>2]|0)<4){r[f>>2]=1;v=r[f>>2]|0;m=s;return v|0}else{r[f>>2]=a[18390+((r[h>>2]&7)<<1)>>1]>>14-(r[h>>2]>>3);r[f>>2]=(r[f>>2]|0)+1>>1<<1;v=r[f>>2]|0;m=s;return v|0}return 0}function Ue(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;a=m;m=m+48|0;o=a+44|0;s=a+40|0;l=a+36|0;d=a+32|0;u=a+28|0;p=a+24|0;f=a+20|0;h=a+16|0;g=a+12|0;_=a+8|0;v=a+4|0;y=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=i;c[_>>2]=1.0000000036274937e-15;c[g>>2]=1.0000000036274937e-15;e:do if(r[l>>2]|0){r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[d>>2]|0))break e;c[v>>2]=+c[(r[o>>2]|0)+(r[u>>2]<<2)>>2]+ +c[(r[s>>2]|0)+(r[u>>2]<<2)>>2];c[y>>2]=+c[(r[o>>2]|0)+(r[u>>2]<<2)>>2]-+c[(r[s>>2]|0)+(r[u>>2]<<2)>>2];c[g>>2]=+c[g>>2]+ +c[v>>2]*+c[v>>2];c[_>>2]=+c[_>>2]+ +c[y>>2]*+c[y>>2];r[u>>2]=(r[u>>2]|0)+1}}else{b=+Me(r[o>>2]|0,r[o>>2]|0,r[d>>2]|0);c[g>>2]=+c[g>>2]+b;b=+Me(r[s>>2]|0,r[s>>2]|0,r[d>>2]|0);c[_>>2]=+c[_>>2]+b}while(0);c[f>>2]=+R(+ +c[g>>2]);c[h>>2]=+R(+ +c[_>>2]);r[p>>2]=~~+P(+(+j(+ +c[h>>2],+ +c[f>>2])*10430.3818359375+.5));m=a;return r[p>>2]|0}function Be(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0;a=m;m=m+32|0;o=a+16|0;s=a+12|0;l=a+8|0;c=a+4|0;d=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=i;r[d>>2]=at(r[(r[o>>2]|0)+28>>2]|0,r[c>>2]|0)|0;if((r[s>>2]|0)>>>0>0){i=(r[(r[o>>2]|0)+28>>2]|0)-(W(r[d>>2]|0,(r[c>>2]|0)-(r[s>>2]|0)|0)|0)|0;n=(r[o>>2]|0)+32|0;r[n>>2]=(r[n>>2]|0)+i;i=W(r[d>>2]|0,(r[l>>2]|0)-(r[s>>2]|0)|0)|0;r[(r[o>>2]|0)+28>>2]=i;u=r[o>>2]|0;et(u);m=a;return}else{i=W(r[d>>2]|0,(r[c>>2]|0)-(r[l>>2]|0)|0)|0;l=(r[o>>2]|0)+28|0;r[l>>2]=(r[l>>2]|0)-i;u=r[o>>2]|0;et(u);m=a;return}}function He(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[i>>2]=e;r[a>>2]=t;t=it(r[(r[i>>2]|0)+28>>2]|0,r[a>>2]|0)|0;r[(r[i>>2]|0)+36>>2]=t;r[o>>2]=((r[(r[i>>2]|0)+32>>2]|0)>>>0)/((r[(r[i>>2]|0)+36>>2]|0)>>>0)|0;m=n;return(r[a>>2]|0)-((r[o>>2]|0)+1+((r[a>>2]|0)-((r[o>>2]|0)+1)&0-((r[a>>2]|0)>>>0<((r[o>>2]|0)+1|0)>>>0&1)))|0}function je(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;a=m;m=m+32|0;o=a+16|0;s=a+12|0;l=a+8|0;c=a+4|0;d=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=i;r[d>>2]=W(r[(r[o>>2]|0)+36>>2]|0,(r[c>>2]|0)-(r[l>>2]|0)|0)|0;c=(r[o>>2]|0)+32|0;r[c>>2]=(r[c>>2]|0)-(r[d>>2]|0);c=r[o>>2]|0;if((r[s>>2]|0)>>>0>0){u=W(r[c+36>>2]|0,(r[l>>2]|0)-(r[s>>2]|0)|0)|0;p=r[o>>2]|0;f=p+28|0;r[f>>2]=u;h=r[o>>2]|0;Ze(h);m=a;return}else{u=(r[c+28>>2]|0)-(r[d>>2]|0)|0;p=r[o>>2]|0;f=p+28|0;r[f>>2]=u;h=r[o>>2]|0;Ze(h);m=a;return}}function Ve(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[s>>2]=(r[s>>2]|0)+-1;r[d>>2]=32-(Y(r[s>>2]|0)|0);if((r[d>>2]|0)>8){r[d>>2]=(r[d>>2]|0)-8;r[l>>2]=((r[s>>2]|0)>>>(r[d>>2]|0))+1;r[c>>2]=(r[o>>2]|0)>>>(r[d>>2]|0);Be(r[a>>2]|0,r[c>>2]|0,(r[c>>2]|0)+1|0,r[l>>2]|0);Pe(r[a>>2]|0,r[o>>2]&(1<<r[d>>2])-1,r[d>>2]|0);m=i;return}else{Be(r[a>>2]|0,r[o>>2]|0,(r[o>>2]|0)+1|0,(r[s>>2]|0)+1|0);m=i;return}}function qe(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;n=m;m=m+32|0;i=n+24|0;a=n+20|0;o=n+16|0;s=n+12|0;l=n+8|0;c=n+4|0;d=n;r[a>>2]=e;r[o>>2]=t;r[o>>2]=(r[o>>2]|0)+-1;r[c>>2]=32-(Y(r[o>>2]|0)|0);if((r[c>>2]|0)<=8){r[o>>2]=(r[o>>2]|0)+1;r[l>>2]=He(r[a>>2]|0,r[o>>2]|0)|0;je(r[a>>2]|0,r[l>>2]|0,(r[l>>2]|0)+1|0,r[o>>2]|0);r[i>>2]=r[l>>2];u=r[i>>2]|0;m=n;return u|0}r[c>>2]=(r[c>>2]|0)-8;r[s>>2]=((r[o>>2]|0)>>>(r[c>>2]|0))+1;r[l>>2]=He(r[a>>2]|0,r[s>>2]|0)|0;je(r[a>>2]|0,r[l>>2]|0,(r[l>>2]|0)+1|0,r[s>>2]|0);s=r[l>>2]<<r[c>>2];r[d>>2]=s|(De(r[a>>2]|0,r[c>>2]|0)|0);if((r[d>>2]|0)>>>0<=(r[o>>2]|0)>>>0){r[i>>2]=r[d>>2];u=r[i>>2]|0;m=n;return u|0}else{r[(r[a>>2]|0)+44>>2]=1;r[i>>2]=r[o>>2];u=r[i>>2]|0;m=n;return u|0}return 0}function ze(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0;t=m;m=m+32|0;n=t+16|0;i=t+12|0;a=t+8|0;o=t+4|0;s=t;r[n>>2]=e;r[a>>2]=0;r[o>>2]=32-(Y(r[n>>2]|0)|0)-1>>1;r[i>>2]=1<<r[o>>2];do{r[s>>2]=(r[a>>2]<<1)+(r[i>>2]|0)<<r[o>>2];if((r[s>>2]|0)>>>0<=(r[n>>2]|0)>>>0){r[a>>2]=(r[a>>2]|0)+(r[i>>2]|0);r[n>>2]=(r[n>>2]|0)-(r[s>>2]|0)}r[i>>2]=(r[i>>2]|0)>>>1;r[o>>2]=(r[o>>2]|0)+-1}while((r[o>>2]|0)>=0);m=t;return r[a>>2]|0}function We(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0;s=m;m=m+64|0;l=s+56|0;d=s+52|0;u=s+48|0;p=s+44|0;f=s+40|0;h=s+36|0;g=s+32|0;_=s+28|0;v=s+24|0;y=s+20|0;b=s+16|0;w=s+12|0;k=s+8|0;M=s+4|0;S=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;r[g>>2]=r[f>>2];c[b>>2]=+c[(r[p>>2]|0)+(r[g>>2]<<2)>>2];c[w>>2]=+c[(r[p>>2]|0)+((r[g>>2]|0)+(r[(r[l>>2]|0)+8>>2]|0)<<2)>>2];c[k>>2]=+R(+(+c[b>>2]*+c[b>>2]+1.0000000036274937e-15+ +c[w>>2]*+c[w>>2]))+1.0000000036274937e-15;c[v>>2]=+c[b>>2]/+c[k>>2];c[y>>2]=+c[w>>2]/+c[k>>2];r[_>>2]=0;while(1){if((r[_>>2]|0)>=(r[h>>2]|0))break;c[S>>2]=+c[(r[d>>2]|0)+(r[_>>2]<<2)>>2];c[M>>2]=+c[(r[u>>2]|0)+(r[_>>2]<<2)>>2];c[(r[d>>2]|0)+(r[_>>2]<<2)>>2]=+c[v>>2]*+c[S>>2]+ +c[y>>2]*+c[M>>2];r[_>>2]=(r[_>>2]|0)+1}m=s;return}function Ge(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;d=i+4|0;u=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[l>>2]=0;while(1){if((r[l>>2]|0)>=(r[s>>2]|0))break;c[u>>2]=+c[(r[a>>2]|0)+(r[l>>2]<<2)>>2]*.7071067690849304;c[d>>2]=+c[(r[o>>2]|0)+(r[l>>2]<<2)>>2]*.7071067690849304;c[(r[a>>2]|0)+(r[l>>2]<<2)>>2]=+c[u>>2]+ +c[d>>2];c[(r[o>>2]|0)+(r[l>>2]<<2)>>2]=+c[d>>2]-+c[u>>2];r[l>>2]=(r[l>>2]|0)+1}m=i;return}function Ke(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[l>>2]=r[(r[a>>2]|0)+28>>2];r[d>>2]=r[(r[a>>2]|0)+32>>2];r[c>>2]=(r[l>>2]|0)>>>(r[s>>2]|0);r[l>>2]=(r[l>>2]|0)-(r[c>>2]|0);if(r[o>>2]|0)r[(r[a>>2]|0)+32>>2]=(r[d>>2]|0)+(r[l>>2]|0);r[(r[a>>2]|0)+28>>2]=r[o>>2]|0?r[c>>2]|0:r[l>>2]|0;et(r[a>>2]|0);m=i;return}function Ye(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;n=m;m=m+32|0;i=n+20|0;a=n+16|0;o=n+12|0;s=n+8|0;l=n+4|0;c=n;r[i>>2]=e;r[a>>2]=t;r[o>>2]=r[(r[i>>2]|0)+28>>2];r[s>>2]=r[(r[i>>2]|0)+32>>2];r[l>>2]=(r[o>>2]|0)>>>(r[a>>2]|0);r[c>>2]=(r[s>>2]|0)>>>0<(r[l>>2]|0)>>>0&1;if(!(r[c>>2]|0))r[(r[i>>2]|0)+32>>2]=(r[s>>2]|0)-(r[l>>2]|0);if(r[c>>2]|0){d=r[l>>2]|0;u=r[i>>2]|0;p=u+28|0;r[p>>2]=d;f=r[i>>2]|0;Ze(f);h=r[c>>2]|0;m=n;return h|0}else{d=(r[o>>2]|0)-(r[l>>2]|0)|0;u=r[i>>2]|0;p=u+28|0;r[p>>2]=d;f=r[i>>2]|0;Ze(f);h=r[c>>2]|0;m=n;return h|0}return 0}function Xe(e){e=e|0;var t=0,n=0,i=0,o=0;t=m;m=m+16|0;n=t+6|0;i=t;o=t+4|0;a[n>>1]=e;r[i>>2]=4096+(W(a[n>>1]|0,a[n>>1]|0)|0)>>13;a[o>>1]=r[i>>2];a[o>>1]=32767-(a[o>>1]|0)+(16384+(W(a[o>>1]|0,((16384+(W(a[o>>1]|0,(8277+(16384+(W(-626,a[o>>1]|0)|0)>>15)&65535)<<16>>16)|0)>>15)+-7651&65535)<<16>>16)|0)>>15);m=t;return 1+(a[o>>1]|0)&65535|0}function Je(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[i>>2]=e;r[a>>2]=t;r[o>>2]=32-(Y(r[a>>2]|0)|0);r[s>>2]=32-(Y(r[i>>2]|0)|0);r[a>>2]=r[a>>2]<<15-(r[o>>2]|0);r[i>>2]=r[i>>2]<<15-(r[s>>2]|0);t=((r[s>>2]|0)-(r[o>>2]|0)<<11)+(16384+(W((r[i>>2]&65535)<<16>>16,((16384+(W((r[i>>2]&65535)<<16>>16,-2597)|0)>>15)+7932&65535)<<16>>16)|0)>>15)|0;i=t-(16384+(W((r[a>>2]&65535)<<16>>16,((16384+(W((r[a>>2]&65535)<<16>>16,-2597)|0)>>15)+7932&65535)<<16>>16)|0)>>15)|0;m=n;return i|0}function Ze(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;while(1){if((r[(r[n>>2]|0)+28>>2]|0)>>>0>8388608)break;e=(r[n>>2]|0)+20|0;r[e>>2]=(r[e>>2]|0)+8;e=(r[n>>2]|0)+28|0;r[e>>2]=r[e>>2]<<8;r[i>>2]=r[(r[n>>2]|0)+40>>2];e=Qe(r[n>>2]|0)|0;r[(r[n>>2]|0)+40>>2]=e;r[i>>2]=(r[i>>2]<<8|r[(r[n>>2]|0)+40>>2])>>1;r[(r[n>>2]|0)+32>>2]=(r[(r[n>>2]|0)+32>>2]<<8)+(255&~r[i>>2])&2147483647}m=t;return}function Qe(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t;r[n>>2]=e;if((r[(r[n>>2]|0)+24>>2]|0)>>>0>=(r[(r[n>>2]|0)+4>>2]|0)>>>0){i=0;m=t;return i|0}e=r[r[n>>2]>>2]|0;a=(r[n>>2]|0)+24|0;n=r[a>>2]|0;r[a>>2]=n+1;i=o[e+n>>0]|0;m=t;return i|0}function et(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;while(1){if((r[(r[n>>2]|0)+28>>2]|0)>>>0>8388608)break;tt(r[n>>2]|0,(r[(r[n>>2]|0)+32>>2]|0)>>>23);r[(r[n>>2]|0)+32>>2]=r[(r[n>>2]|0)+32>>2]<<8&2147483647;e=(r[n>>2]|0)+28|0;r[e>>2]=r[e>>2]<<8;e=(r[n>>2]|0)+20|0;r[e>>2]=(r[e>>2]|0)+8}m=t;return}function tt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;o=n+4|0;s=n;r[i>>2]=e;r[a>>2]=t;if((r[a>>2]|0)==255){t=(r[i>>2]|0)+36|0;r[t>>2]=(r[t>>2]|0)+1;m=n;return}r[o>>2]=r[a>>2]>>8;if((r[(r[i>>2]|0)+40>>2]|0)>=0){t=nt(r[i>>2]|0,(r[(r[i>>2]|0)+40>>2]|0)+(r[o>>2]|0)|0)|0;e=(r[i>>2]|0)+44|0;r[e>>2]=r[e>>2]|t}if((r[(r[i>>2]|0)+36>>2]|0)>>>0>0){r[s>>2]=255+(r[o>>2]|0)&255;do{o=nt(r[i>>2]|0,r[s>>2]|0)|0;t=(r[i>>2]|0)+44|0;r[t>>2]=r[t>>2]|o;o=(r[i>>2]|0)+36|0;t=(r[o>>2]|0)+-1|0;r[o>>2]=t}while(t>>>0>0)}r[(r[i>>2]|0)+40>>2]=r[a>>2]&255;m=n;return}function nt(e,t){e=e|0;t=t|0;var n=0,a=0,o=0,s=0,l=0;n=m;m=m+16|0;a=n+8|0;o=n+4|0;s=n;r[o>>2]=e;r[s>>2]=t;if(((r[(r[o>>2]|0)+24>>2]|0)+(r[(r[o>>2]|0)+8>>2]|0)|0)>>>0>=(r[(r[o>>2]|0)+4>>2]|0)>>>0){r[a>>2]=-1;l=r[a>>2]|0;m=n;return l|0}else{t=r[s>>2]&255;s=r[r[o>>2]>>2]|0;e=(r[o>>2]|0)+24|0;o=r[e>>2]|0;r[e>>2]=o+1;i[s+o>>0]=t;r[a>>2]=0;l=r[a>>2]|0;m=n;return l|0}return 0}function it(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>>>0)/((r[a>>2]|0)>>>0)|0|0}function at(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>>>0)/((r[a>>2]|0)>>>0)|0|0}function rt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0;a=m;m=m+48|0;o=a+32|0;s=a+28|0;l=a+24|0;d=a+20|0;u=a+16|0;p=a+12|0;f=a+8|0;h=a+4|0;g=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=i;r[f>>2]=W(r[s>>2]|0,r[l>>2]|0)|0;i=r[f>>2]|0;r[h>>2]=oe()|0;n=m;m=m+((1*(i<<2)|0)+15&-16)|0;if(r[d>>2]|0){r[g>>2]=212+(r[l>>2]<<2)+-8;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[l>>2]|0))break;r[p>>2]=0;while(1){if((r[p>>2]|0)>=(r[s>>2]|0))break;d=W(r[p>>2]|0,r[l>>2]|0)|0;i=W(r[(r[g>>2]|0)+(r[u>>2]<<2)>>2]|0,r[s>>2]|0)|0;c[n+(i+(r[p>>2]|0)<<2)>>2]=+c[(r[o>>2]|0)+(d+(r[u>>2]|0)<<2)>>2];r[p>>2]=(r[p>>2]|0)+1}r[u>>2]=(r[u>>2]|0)+1}_=r[o>>2]|0;v=r[f>>2]|0;y=v<<2;b=r[o>>2]|0;w=b;k=n;M=w-k|0;S=(M|0)/4|0;A=0;C=y+A|0;La(_|0,n|0,C|0)|0;T=r[h>>2]|0;ce(T|0);m=a;return}else{r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[l>>2]|0))break;r[p>>2]=0;while(1){if((r[p>>2]|0)>=(r[s>>2]|0))break;g=W(r[p>>2]|0,r[l>>2]|0)|0;d=W(r[u>>2]|0,r[s>>2]|0)|0;c[n+(d+(r[p>>2]|0)<<2)>>2]=+c[(r[o>>2]|0)+(g+(r[u>>2]|0)<<2)>>2];r[p>>2]=(r[p>>2]|0)+1}r[u>>2]=(r[u>>2]|0)+1}_=r[o>>2]|0;v=r[f>>2]|0;y=v<<2;b=r[o>>2]|0;w=b;k=n;M=w-k|0;S=(M|0)/4|0;A=0;C=y+A|0;La(_|0,n|0,C|0)|0;T=r[h>>2]|0;ce(T|0);m=a;return}}function ot(e,t,n,i,s,l,d,u,p){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;l=l|0;d=d|0;u=+u;p=p|0;var f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0;f=m;m=m+176|0;h=f+164|0;g=f+160|0;_=f+156|0;v=f+152|0;y=f+148|0;b=f+144|0;w=f+140|0;k=f+136|0;M=f+132|0;S=f+128|0;A=f+124|0;C=f+120|0;T=f+116|0;E=f+112|0;$=f+108|0;I=f+104|0;x=f+100|0;P=f+96|0;D=f+92|0;R=f+88|0;O=f+84|0;N=f+80|0;L=f+76|0;F=f+72|0;U=f+68|0;B=f+64|0;H=f+60|0;j=f+56|0;V=f+52|0;q=f+48|0;z=f+24|0;G=f+20|0;K=f+16|0;Y=f+12|0;X=f+8|0;J=f+4|0;Z=f;r[h>>2]=e;r[g>>2]=t;r[_>>2]=n;r[v>>2]=i;r[y>>2]=s;r[b>>2]=l;r[w>>2]=d;c[k>>2]=u;r[M>>2]=p;r[T>>2]=0;r[E>>2]=0;r[$>>2]=r[y>>2];c[I>>2]=0;c[x>>2]=0;r[P>>2]=0;r[D>>2]=((r[r[h>>2]>>2]|0)!=0^1)&1;r[R>>2]=0;r[O>>2]=r[r[h>>2]>>2];r[N>>2]=r[(r[h>>2]|0)+4>>2];r[L>>2]=r[(r[h>>2]|0)+8>>2];r[F>>2]=r[(r[h>>2]|0)+16>>2];r[U>>2]=r[(r[h>>2]|0)+24>>2];p=W((r[w>>2]|0)+1|0,r[(r[N>>2]|0)+8>>2]|0)|0;r[S>>2]=(r[(r[N>>2]|0)+92+8>>2]|0)+(a[(r[(r[N>>2]|0)+92+4>>2]|0)+(p+(r[L>>2]|0)<<1)>>1]|0);if((r[w>>2]|0)!=-1?(r[_>>2]|0)>2?(r[v>>2]|0)>((o[(r[S>>2]|0)+(o[r[S>>2]>>0]|0)>>0]|0)+12|0):0:0){r[G>>2]=0;r[_>>2]=r[_>>2]>>1;r[R>>2]=(r[g>>2]|0)+(r[_>>2]<<2);r[w>>2]=(r[w>>2]|0)-1;if((r[y>>2]|0)==1)r[M>>2]=r[M>>2]&1|r[M>>2]<<1;r[y>>2]=(r[y>>2]|0)+1>>1;xe(r[h>>2]|0,z,r[g>>2]|0,r[R>>2]|0,r[_>>2]|0,v,r[y>>2]|0,r[$>>2]|0,r[w>>2]|0,0,M);r[T>>2]=r[z+4>>2];r[E>>2]=r[z+8>>2];r[j>>2]=r[z+12>>2];r[V>>2]=r[z+16>>2];r[q>>2]=r[z+20>>2];c[I>>2]=+(r[T>>2]|0)*30517578125e-15;c[x>>2]=+(r[E>>2]|0)*30517578125e-15;do if((r[$>>2]|0)>1?r[V>>2]&16383|0:0){E=r[j>>2]|0;if((r[V>>2]|0)>8192){r[j>>2]=(r[j>>2]|0)-(E>>4-(r[w>>2]|0));break}if(0<(E+(r[_>>2]<<3>>5-(r[w>>2]|0))|0))Q=0;else Q=(r[j>>2]|0)+(r[_>>2]<<3>>5-(r[w>>2]|0))|0;r[j>>2]=Q}while(0);Q=r[v>>2]|0;if((r[v>>2]|0)<(((r[v>>2]|0)-(r[j>>2]|0)|0)/2|0|0))ee=Q;else ee=(Q-(r[j>>2]|0)|0)/2|0;if(0<=(ee|0)){ee=r[v>>2]|0;if((r[v>>2]|0)<(((r[v>>2]|0)-(r[j>>2]|0)|0)/2|0|0))te=ee;else te=(ee-(r[j>>2]|0)|0)/2|0}else te=0;r[B>>2]=te;r[H>>2]=(r[v>>2]|0)-(r[B>>2]|0);te=(r[h>>2]|0)+28|0;r[te>>2]=(r[te>>2]|0)-(r[q>>2]|0);if(r[b>>2]|0)r[G>>2]=(r[b>>2]|0)+(r[_>>2]<<2);r[K>>2]=r[(r[h>>2]|0)+28>>2];q=r[h>>2]|0;if((r[B>>2]|0)>=(r[H>>2]|0)){r[P>>2]=ot(q,r[g>>2]|0,r[_>>2]|0,r[B>>2]|0,r[y>>2]|0,r[b>>2]|0,r[w>>2]|0,+c[k>>2]*+c[I>>2],r[M>>2]|0)|0;r[K>>2]=(r[B>>2]|0)-((r[K>>2]|0)-(r[(r[h>>2]|0)+28>>2]|0));if((r[K>>2]|0)>24&(r[V>>2]|0)!=0)r[H>>2]=(r[H>>2]|0)+((r[K>>2]|0)-24);te=ot(r[h>>2]|0,r[R>>2]|0,r[_>>2]|0,r[H>>2]|0,r[y>>2]|0,r[G>>2]|0,r[w>>2]|0,+c[k>>2]*+c[x>>2],r[M>>2]>>r[y>>2])|0;r[P>>2]=r[P>>2]|te<<(r[$>>2]>>1);ne=r[P>>2]|0;m=f;return ne|0}else{te=ot(q,r[R>>2]|0,r[_>>2]|0,r[H>>2]|0,r[y>>2]|0,r[G>>2]|0,r[w>>2]|0,+c[k>>2]*+c[x>>2],r[M>>2]>>r[y>>2])|0;r[P>>2]=te<<(r[$>>2]>>1);r[K>>2]=(r[H>>2]|0)-((r[K>>2]|0)-(r[(r[h>>2]|0)+28>>2]|0));if((r[K>>2]|0)>24&(r[V>>2]|0)!=16384)r[B>>2]=(r[B>>2]|0)+((r[K>>2]|0)-24);K=ot(r[h>>2]|0,r[g>>2]|0,r[_>>2]|0,r[B>>2]|0,r[y>>2]|0,r[b>>2]|0,r[w>>2]|0,+c[k>>2]*+c[I>>2],r[M>>2]|0)|0;r[P>>2]=r[P>>2]|K;ne=r[P>>2]|0;m=f;return ne|0}}r[A>>2]=lt(r[N>>2]|0,r[L>>2]|0,r[w>>2]|0,r[v>>2]|0)|0;r[C>>2]=ct(r[N>>2]|0,r[L>>2]|0,r[w>>2]|0,r[A>>2]|0)|0;v=r[h>>2]|0;K=r[C>>2]|0;while(1){I=v+28|0;r[I>>2]=(r[I>>2]|0)-K;if(!((r[(r[h>>2]|0)+28>>2]|0)<0?(r[A>>2]|0)>0:0))break;I=(r[h>>2]|0)+28|0;r[I>>2]=(r[I>>2]|0)+(r[C>>2]|0);r[A>>2]=(r[A>>2]|0)+-1;r[C>>2]=ct(r[N>>2]|0,r[L>>2]|0,r[w>>2]|0,r[A>>2]|0)|0;v=r[h>>2]|0;K=r[C>>2]|0}if(r[A>>2]|0){r[Y>>2]=dt(r[A>>2]|0)|0;A=r[g>>2]|0;C=r[_>>2]|0;K=r[Y>>2]|0;Y=r[F>>2]|0;F=r[y>>2]|0;v=r[U>>2]|0;if(r[O>>2]|0){r[P>>2]=ut(A,C,K,Y,F,v)|0;ne=r[P>>2]|0;m=f;return ne|0}else{r[P>>2]=pt(A,C,K,Y,F,v,+c[k>>2])|0;ne=r[P>>2]|0;m=f;return ne|0}}if(!(r[D>>2]|0)){ne=r[P>>2]|0;m=f;return ne|0}r[J>>2]=(1<<r[y>>2])-1;r[M>>2]=r[M>>2]&r[J>>2];if(!(r[M>>2]|0)){Na(r[g>>2]|0,0,r[_>>2]<<2|0)|0;ne=r[P>>2]|0;m=f;return ne|0}y=(r[b>>2]|0)==0;r[X>>2]=0;if(y){while(1){if((r[X>>2]|0)>=(r[_>>2]|0))break;y=ve(r[(r[h>>2]|0)+36>>2]|0)|0;r[(r[h>>2]|0)+36>>2]=y;c[(r[g>>2]|0)+(r[X>>2]<<2)>>2]=+(r[(r[h>>2]|0)+36>>2]>>20|0);r[X>>2]=(r[X>>2]|0)+1}r[P>>2]=r[J>>2]}else{while(1){if((r[X>>2]|0)>=(r[_>>2]|0))break;J=ve(r[(r[h>>2]|0)+36>>2]|0)|0;r[(r[h>>2]|0)+36>>2]=J;c[Z>>2]=.00390625;u=+c[Z>>2];c[Z>>2]=r[(r[h>>2]|0)+36>>2]&32768|0?u:-u;c[(r[g>>2]|0)+(r[X>>2]<<2)>>2]=+c[(r[b>>2]|0)+(r[X>>2]<<2)>>2]+ +c[Z>>2];r[X>>2]=(r[X>>2]|0)+1}r[P>>2]=r[M>>2]}ke(r[g>>2]|0,r[_>>2]|0,+c[k>>2]);ne=r[P>>2]|0;m=f;return ne|0}function st(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0;a=m;m=m+48|0;o=a+32|0;s=a+28|0;l=a+24|0;d=a+20|0;u=a+16|0;p=a+12|0;f=a+8|0;h=a+4|0;g=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=i;r[f>>2]=W(r[s>>2]|0,r[l>>2]|0)|0;i=r[f>>2]|0;r[h>>2]=oe()|0;n=m;m=m+((1*(i<<2)|0)+15&-16)|0;if(r[d>>2]|0){r[g>>2]=212+(r[l>>2]<<2)+-8;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[l>>2]|0))break;r[p>>2]=0;while(1){if((r[p>>2]|0)>=(r[s>>2]|0))break;d=W(r[(r[g>>2]|0)+(r[u>>2]<<2)>>2]|0,r[s>>2]|0)|0;i=W(r[p>>2]|0,r[l>>2]|0)|0;c[n+(i+(r[u>>2]|0)<<2)>>2]=+c[(r[o>>2]|0)+(d+(r[p>>2]|0)<<2)>>2];r[p>>2]=(r[p>>2]|0)+1}r[u>>2]=(r[u>>2]|0)+1}_=r[o>>2]|0;v=r[f>>2]|0;y=v<<2;b=r[o>>2]|0;w=b;k=n;M=w-k|0;S=(M|0)/4|0;A=0;C=y+A|0;La(_|0,n|0,C|0)|0;T=r[h>>2]|0;ce(T|0);m=a;return}else{r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[l>>2]|0))break;r[p>>2]=0;while(1){if((r[p>>2]|0)>=(r[s>>2]|0))break;g=W(r[u>>2]|0,r[s>>2]|0)|0;d=W(r[p>>2]|0,r[l>>2]|0)|0;
c[n+(d+(r[u>>2]|0)<<2)>>2]=+c[(r[o>>2]|0)+(g+(r[p>>2]|0)<<2)>>2];r[p>>2]=(r[p>>2]|0)+1}r[u>>2]=(r[u>>2]|0)+1}_=r[o>>2]|0;v=r[f>>2]|0;y=v<<2;b=r[o>>2]|0;w=b;k=n;M=w-k|0;S=(M|0)/4|0;A=0;C=y+A|0;La(_|0,n|0,C|0)|0;T=r[h>>2]|0;ce(T|0);m=a;return}}function lt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;s=m;m=m+48|0;l=s+36|0;c=s+32|0;d=s+28|0;u=s+24|0;p=s+20|0;f=s+16|0;h=s+12|0;g=s+8|0;_=s+4|0;v=s;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[u>>2]=(r[u>>2]|0)+1;i=W(r[u>>2]|0,r[(r[c>>2]|0)+8>>2]|0)|0;r[_>>2]=(r[(r[c>>2]|0)+92+8>>2]|0)+(a[(r[(r[c>>2]|0)+92+4>>2]|0)+(i+(r[d>>2]|0)<<1)>>1]|0);r[h>>2]=0;r[g>>2]=o[r[_>>2]>>0];r[p>>2]=(r[p>>2]|0)+-1;r[f>>2]=0;while(1){if((r[f>>2]|0)>=6)break;r[v>>2]=(r[h>>2]|0)+(r[g>>2]|0)+1>>1;d=r[v>>2]|0;if((o[(r[_>>2]|0)+(r[v>>2]|0)>>0]|0)>=(r[p>>2]|0))r[g>>2]=d;else r[h>>2]=d;r[f>>2]=(r[f>>2]|0)+1}if(!(r[h>>2]|0))y=-1;else y=o[(r[_>>2]|0)+(r[h>>2]|0)>>0]|0;if(((r[p>>2]|0)-y|0)<=((o[(r[_>>2]|0)+(r[g>>2]|0)>>0]|0)-(r[p>>2]|0)|0)){r[l>>2]=r[h>>2];b=r[l>>2]|0;m=s;return b|0}else{r[l>>2]=r[g>>2];b=r[l>>2]|0;m=s;return b|0}return 0}function ct(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0;s=m;m=m+32|0;l=s+16|0;c=s+12|0;d=s+8|0;u=s+4|0;p=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[d>>2]=(r[d>>2]|0)+1;i=W(r[d>>2]|0,r[(r[l>>2]|0)+8>>2]|0)|0;r[p>>2]=(r[(r[l>>2]|0)+92+8>>2]|0)+(a[(r[(r[l>>2]|0)+92+4>>2]|0)+(i+(r[c>>2]|0)<<1)>>1]|0);if(!(r[u>>2]|0)){f=0;m=s;return f|0}f=(o[(r[p>>2]|0)+(r[u>>2]|0)>>0]|0)+1|0;m=s;return f|0}function dt(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t;r[n>>2]=e;e=r[n>>2]|0;if((r[n>>2]|0)<8){i=e;m=t;return i|0}i=8+(e&7)<<(r[n>>2]>>3)-1;m=t;return i|0}function ut(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0;s=m;m=m+96|0;l=s+84|0;d=s+80|0;u=s+76|0;p=s+72|0;f=s+68|0;h=s+64|0;g=s+60|0;_=s+56|0;v=s+52|0;y=s+48|0;b=s+44|0;w=s+40|0;k=s+36|0;M=s+32|0;S=s+28|0;A=s+24|0;C=s+20|0;T=s+16|0;E=s+12|0;$=s+8|0;I=s+4|0;x=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;o=r[d>>2]|0;r[S>>2]=oe()|0;a=m;m=m+((1*(o<<2)|0)+15&-16)|0;o=m;m=m+((1*(r[d>>2]<<2)|0)+15&-16)|0;i=m;m=m+((1*(r[d>>2]<<2)|0)+15&-16)|0;ht(r[l>>2]|0,r[d>>2]|0,1,r[f>>2]|0,r[u>>2]|0,r[p>>2]|0);c[b>>2]=0;r[_>>2]=0;do{p=i+(r[_>>2]<<2)|0;if(+c[(r[l>>2]|0)+(r[_>>2]<<2)>>2]>0)c[p>>2]=1;else{c[p>>2]=-1;c[(r[l>>2]|0)+(r[_>>2]<<2)>>2]=-+c[(r[l>>2]|0)+(r[_>>2]<<2)>>2]}r[o+(r[_>>2]<<2)>>2]=0;c[a+(r[_>>2]<<2)>>2]=0;p=(r[_>>2]|0)+1|0;r[_>>2]=p}while((p|0)<(r[d>>2]|0));c[k>>2]=0;c[w>>2]=0;r[y>>2]=r[u>>2];if((r[u>>2]|0)>(r[d>>2]>>1|0)){r[_>>2]=0;do{c[b>>2]=+c[b>>2]+ +c[(r[l>>2]|0)+(r[_>>2]<<2)>>2];p=(r[_>>2]|0)+1|0;r[_>>2]=p}while((p|0)<(r[d>>2]|0));if(!(+c[b>>2]>1.0000000036274937e-15&+c[b>>2]<64)){c[r[l>>2]>>2]=1;r[_>>2]=1;do{c[(r[l>>2]|0)+(r[_>>2]<<2)>>2]=0;p=(r[_>>2]|0)+1|0;r[_>>2]=p}while((p|0)<(r[d>>2]|0));c[b>>2]=1}c[A>>2]=+((r[u>>2]|0)-1|0)*(1/+c[b>>2]);r[_>>2]=0;do{b=~~+P(+(+c[A>>2]*+c[(r[l>>2]|0)+(r[_>>2]<<2)>>2]));r[o+(r[_>>2]<<2)>>2]=b;c[a+(r[_>>2]<<2)>>2]=+(r[o+(r[_>>2]<<2)>>2]|0);c[k>>2]=+c[k>>2]+ +c[a+(r[_>>2]<<2)>>2]*+c[a+(r[_>>2]<<2)>>2];c[w>>2]=+c[w>>2]+ +c[(r[l>>2]|0)+(r[_>>2]<<2)>>2]*+c[a+(r[_>>2]<<2)>>2];b=a+(r[_>>2]<<2)|0;c[b>>2]=+c[b>>2]*2;r[y>>2]=(r[y>>2]|0)-(r[o+(r[_>>2]<<2)>>2]|0);b=(r[_>>2]|0)+1|0;r[_>>2]=b}while((b|0)<(r[d>>2]|0))}if((r[y>>2]|0)>((r[d>>2]|0)+3|0)){c[C>>2]=+(r[y>>2]|0);c[k>>2]=+c[k>>2]+ +c[C>>2]*+c[C>>2];c[k>>2]=+c[k>>2]+ +c[C>>2]*+c[a>>2];r[o>>2]=(r[o>>2]|0)+(r[y>>2]|0);r[y>>2]=0}c[v>>2]=1;r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[y>>2]|0))break;c[E>>2]=-999999986991104;c[$>>2]=0;r[T>>2]=0;c[k>>2]=+c[k>>2]+1;r[_>>2]=0;do{c[I>>2]=+c[w>>2]+ +c[(r[l>>2]|0)+(r[_>>2]<<2)>>2];c[x>>2]=+c[k>>2]+ +c[a+(r[_>>2]<<2)>>2];c[I>>2]=+c[I>>2]*+c[I>>2];if(+c[$>>2]*+c[I>>2]>+c[x>>2]*+c[E>>2]){c[$>>2]=+c[x>>2];c[E>>2]=+c[I>>2];r[T>>2]=r[_>>2]}C=(r[_>>2]|0)+1|0;r[_>>2]=C}while((C|0)<(r[d>>2]|0));c[w>>2]=+c[w>>2]+ +c[(r[l>>2]|0)+(r[T>>2]<<2)>>2];c[k>>2]=+c[k>>2]+ +c[a+(r[T>>2]<<2)>>2];C=a+(r[T>>2]<<2)|0;c[C>>2]=+c[C>>2]+ +c[v>>2]*2;C=o+(r[T>>2]<<2)|0;r[C>>2]=(r[C>>2]|0)+1;r[g>>2]=(r[g>>2]|0)+1}r[_>>2]=0;do{c[(r[l>>2]|0)+(r[_>>2]<<2)>>2]=+c[i+(r[_>>2]<<2)>>2]*+c[(r[l>>2]|0)+(r[_>>2]<<2)>>2];if(+c[i+(r[_>>2]<<2)>>2]<0)r[o+(r[_>>2]<<2)>>2]=0-(r[o+(r[_>>2]<<2)>>2]|0);g=(r[_>>2]|0)+1|0;r[_>>2]=g}while((g|0)<(r[d>>2]|0));bt(o,r[d>>2]|0,r[u>>2]|0,r[h>>2]|0);r[M>>2]=gt(o,r[d>>2]|0,r[f>>2]|0)|0;f=r[M>>2]|0;ce(r[S>>2]|0);m=s;return f|0}function pt(e,t,n,i,a,o,s){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=+s;var l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;l=m;m=m+48|0;d=l+36|0;u=l+32|0;p=l+28|0;f=l+24|0;h=l+20|0;g=l+16|0;_=l+12|0;v=l+8|0;y=l+4|0;b=l;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=i;r[h>>2]=a;r[g>>2]=o;c[_>>2]=s;o=r[u>>2]|0;r[b>>2]=oe()|0;a=m;m=m+((1*(o<<2)|0)+15&-16)|0;c[v>>2]=+ft(a,r[u>>2]|0,r[p>>2]|0,r[g>>2]|0);mt(a,r[d>>2]|0,r[u>>2]|0,+c[v>>2],+c[_>>2]);ht(r[d>>2]|0,r[u>>2]|0,-1,r[h>>2]|0,r[p>>2]|0,r[f>>2]|0);r[y>>2]=gt(a,r[u>>2]|0,r[h>>2]|0)|0;h=r[y>>2]|0;ce(r[b>>2]|0);m=l;return h|0}function ft(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0;a=m;m=m+16|0;o=a+12|0;s=a+8|0;l=a+4|0;c=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=i;i=r[s>>2]|0;n=r[l>>2]|0;t=qe(r[c>>2]|0,(r[(r[344+(((r[s>>2]|0)<(r[l>>2]|0)?r[s>>2]|0:r[l>>2]|0)<<2)>>2]|0)+(((r[s>>2]|0)>(r[l>>2]|0)?r[s>>2]|0:r[l>>2]|0)<<2)>>2]|0)+(r[(r[344+(((r[s>>2]|0)<((r[l>>2]|0)+1|0)?r[s>>2]|0:(r[l>>2]|0)+1|0)<<2)>>2]|0)+(((r[s>>2]|0)>((r[l>>2]|0)+1|0)?r[s>>2]|0:(r[l>>2]|0)+1|0)<<2)>>2]|0)|0)|0;d=+yt(i,n,t,r[o>>2]|0);m=a;return+d}function mt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=+i;a=+a;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0;o=m;m=m+32|0;s=o+28|0;l=o+24|0;d=o+20|0;u=o+16|0;p=o+12|0;f=o+8|0;h=o+4|0;g=o;r[s>>2]=e;r[l>>2]=t;r[d>>2]=n;c[u>>2]=i;c[p>>2]=a;c[h>>2]=+c[u>>2];a=1/+R(+ +c[h>>2]);c[g>>2]=a*+c[p>>2];r[f>>2]=0;do{c[(r[l>>2]|0)+(r[f>>2]<<2)>>2]=+c[g>>2]*+(r[(r[s>>2]|0)+(r[f>>2]<<2)>>2]|0);p=(r[f>>2]|0)+1|0;r[f>>2]=p}while((p|0)<(r[d>>2]|0));m=o;return}function ht(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;s=m;m=m+64|0;l=s+48|0;d=s+44|0;u=s+40|0;p=s+36|0;f=s+32|0;h=s+28|0;g=s+24|0;_=s+20|0;v=s+16|0;y=s+12|0;b=s+8|0;w=s+4|0;k=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;r[w>>2]=0;if((r[h>>2]|0)==0?1:(r[f>>2]<<1|0)>=(r[d>>2]|0)){m=s;return}r[k>>2]=r[332+((r[h>>2]|0)-1<<2)>>2];c[y>>2]=+(r[d>>2]|0)*1/+((r[d>>2]|0)+(W(r[k>>2]|0,r[f>>2]|0)|0)|0);c[b>>2]=+c[y>>2]*+c[y>>2]*.5;c[_>>2]=+N(+(+c[b>>2]*1.5707963705062866));c[v>>2]=+N(+((1-+c[b>>2])*1.5707963705062866));e:do if((r[d>>2]|0)>=(r[p>>2]<<3|0)){r[w>>2]=1;while(1){b=W(r[w>>2]|0,r[w>>2]|0)|0;y=W(b+(r[w>>2]|0)|0,r[p>>2]|0)|0;if((y+(r[p>>2]>>2)|0)>=(r[d>>2]|0))break e;r[w>>2]=(r[w>>2]|0)+1}}while(0);r[d>>2]=_t(r[d>>2]|0,r[p>>2]|0)|0;r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[p>>2]|0))break;if((r[u>>2]|0)>=0){y=(r[l>>2]|0)+((W(r[g>>2]|0,r[d>>2]|0)|0)<<2)|0;vt(y,r[d>>2]|0,1,+c[_>>2],-+c[v>>2]);if(r[w>>2]|0){y=(r[l>>2]|0)+((W(r[g>>2]|0,r[d>>2]|0)|0)<<2)|0;vt(y,r[d>>2]|0,r[w>>2]|0,+c[v>>2],-+c[_>>2])}}else{if(r[w>>2]|0){y=(r[l>>2]|0)+((W(r[g>>2]|0,r[d>>2]|0)|0)<<2)|0;vt(y,r[d>>2]|0,r[w>>2]|0,+c[v>>2],+c[_>>2])}y=(r[l>>2]|0)+((W(r[g>>2]|0,r[d>>2]|0)|0)<<2)|0;vt(y,r[d>>2]|0,1,+c[_>>2],+c[v>>2])}r[g>>2]=(r[g>>2]|0)+1}m=s;return}function gt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;i=m;m=m+48|0;a=i+32|0;o=i+28|0;s=i+24|0;l=i+20|0;c=i+16|0;d=i+12|0;u=i+8|0;p=i+4|0;f=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;if((r[l>>2]|0)<=1){r[a>>2]=1;h=r[a>>2]|0;m=i;return h|0}r[d>>2]=_t(r[s>>2]|0,r[l>>2]|0)|0;r[c>>2]=0;r[u>>2]=0;do{r[f>>2]=0;r[p>>2]=0;do{s=W(r[u>>2]|0,r[d>>2]|0)|0;r[f>>2]=r[f>>2]|r[(r[o>>2]|0)+(s+(r[p>>2]|0)<<2)>>2];s=(r[p>>2]|0)+1|0;r[p>>2]=s}while((s|0)<(r[d>>2]|0));r[c>>2]=r[c>>2]|((r[f>>2]|0)!=0&1)<<r[u>>2];s=(r[u>>2]|0)+1|0;r[u>>2]=s}while((s|0)<(r[l>>2]|0));r[a>>2]=r[c>>2];h=r[a>>2]|0;m=i;return h|0}function _t(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>>>0)/((r[a>>2]|0)>>>0)|0|0}function vt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=+i;a=+a;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;o=m;m=m+48|0;s=o+44|0;l=o+40|0;d=o+36|0;u=o+32|0;p=o+28|0;f=o+24|0;h=o+20|0;g=o+16|0;_=o+12|0;v=o+8|0;y=o+4|0;b=o;r[s>>2]=e;r[l>>2]=t;r[d>>2]=n;c[u>>2]=i;c[p>>2]=a;r[g>>2]=r[s>>2];c[h>>2]=-+c[p>>2];r[f>>2]=0;while(1){if((r[f>>2]|0)>=((r[l>>2]|0)-(r[d>>2]|0)|0))break;c[_>>2]=+c[r[g>>2]>>2];c[v>>2]=+c[(r[g>>2]|0)+(r[d>>2]<<2)>>2];c[(r[g>>2]|0)+(r[d>>2]<<2)>>2]=+c[u>>2]*+c[v>>2]+ +c[p>>2]*+c[_>>2];a=+c[u>>2]*+c[_>>2]+ +c[h>>2]*+c[v>>2];n=r[g>>2]|0;r[g>>2]=n+4;c[n>>2]=a;r[f>>2]=(r[f>>2]|0)+1}r[g>>2]=(r[s>>2]|0)+((r[l>>2]|0)-(r[d>>2]<<1)-1<<2);r[f>>2]=(r[l>>2]|0)-(r[d>>2]<<1)-1;while(1){if((r[f>>2]|0)<0)break;c[y>>2]=+c[r[g>>2]>>2];c[b>>2]=+c[(r[g>>2]|0)+(r[d>>2]<<2)>>2];c[(r[g>>2]|0)+(r[d>>2]<<2)>>2]=+c[u>>2]*+c[b>>2]+ +c[p>>2]*+c[y>>2];a=+c[u>>2]*+c[y>>2]+ +c[h>>2]*+c[b>>2];l=r[g>>2]|0;r[g>>2]=l+-4;c[l>>2]=a;r[f>>2]=(r[f>>2]|0)+-1}m=o;return}function yt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0;o=m;m=m+48|0;s=o+36|0;l=o+32|0;d=o+28|0;u=o+24|0;p=o+20|0;f=o+16|0;h=o+12|0;g=o+40|0;_=o+8|0;v=o+4|0;y=o;r[s>>2]=e;r[l>>2]=t;r[d>>2]=n;r[u>>2]=i;c[_>>2]=0;while(1){b=r[l>>2]|0;if((r[s>>2]|0)<=2)break;do if((b|0)>=(r[s>>2]|0)){r[y>>2]=r[344+(r[s>>2]<<2)>>2];r[p>>2]=r[(r[y>>2]|0)+((r[l>>2]|0)+1<<2)>>2];r[f>>2]=0-((r[d>>2]|0)>>>0>=(r[p>>2]|0)>>>0&1);r[d>>2]=(r[d>>2]|0)-(r[p>>2]&r[f>>2]);r[h>>2]=r[l>>2];r[v>>2]=r[(r[y>>2]|0)+(r[s>>2]<<2)>>2];e:do if((r[v>>2]|0)>>>0>(r[d>>2]|0)>>>0){r[l>>2]=r[s>>2];do{i=(r[l>>2]|0)+-1|0;r[l>>2]=i;r[p>>2]=r[(r[344+(i<<2)>>2]|0)+(r[s>>2]<<2)>>2]}while((r[p>>2]|0)>>>0>(r[d>>2]|0)>>>0)}else{r[p>>2]=r[(r[y>>2]|0)+(r[l>>2]<<2)>>2];while(1){if((r[p>>2]|0)>>>0<=(r[d>>2]|0)>>>0)break e;r[l>>2]=(r[l>>2]|0)+-1;r[p>>2]=r[(r[y>>2]|0)+(r[l>>2]<<2)>>2]}}while(0);r[d>>2]=(r[d>>2]|0)-(r[p>>2]|0);a[g>>1]=(r[h>>2]|0)-(r[l>>2]|0)+(r[f>>2]|0)^r[f>>2];i=a[g>>1]|0;n=r[u>>2]|0;r[u>>2]=n+4;r[n>>2]=i;c[_>>2]=+c[_>>2]+ +(a[g>>1]|0)*+(a[g>>1]|0)}else{r[p>>2]=r[(r[344+(r[l>>2]<<2)>>2]|0)+(r[s>>2]<<2)>>2];r[v>>2]=r[(r[344+((r[l>>2]|0)+1<<2)>>2]|0)+(r[s>>2]<<2)>>2];if((r[p>>2]|0)>>>0<=(r[d>>2]|0)>>>0?(r[d>>2]|0)>>>0<(r[v>>2]|0)>>>0:0){r[d>>2]=(r[d>>2]|0)-(r[p>>2]|0);i=r[u>>2]|0;r[u>>2]=i+4;r[i>>2]=0;break}r[f>>2]=0-((r[d>>2]|0)>>>0>=(r[v>>2]|0)>>>0&1);r[d>>2]=(r[d>>2]|0)-(r[v>>2]&r[f>>2]);r[h>>2]=r[l>>2];do{i=(r[l>>2]|0)+-1|0;r[l>>2]=i;r[p>>2]=r[(r[344+(i<<2)>>2]|0)+(r[s>>2]<<2)>>2]}while((r[p>>2]|0)>>>0>(r[d>>2]|0)>>>0);r[d>>2]=(r[d>>2]|0)-(r[p>>2]|0);a[g>>1]=(r[h>>2]|0)-(r[l>>2]|0)+(r[f>>2]|0)^r[f>>2];i=a[g>>1]|0;n=r[u>>2]|0;r[u>>2]=n+4;r[n>>2]=i;c[_>>2]=+c[_>>2]+ +(a[g>>1]|0)*+(a[g>>1]|0)}while(0);r[s>>2]=(r[s>>2]|0)+-1}r[p>>2]=(b<<1)+1;r[f>>2]=0-((r[d>>2]|0)>>>0>=(r[p>>2]|0)>>>0&1);r[d>>2]=(r[d>>2]|0)-(r[p>>2]&r[f>>2]);r[h>>2]=r[l>>2];r[l>>2]=((r[d>>2]|0)+1|0)>>>1;if(!(r[l>>2]|0)){w=r[h>>2]|0;k=r[l>>2]|0;M=w-k|0;S=r[f>>2]|0;A=M+S|0;C=r[f>>2]|0;T=A^C;E=T&65535;a[g>>1]=E;$=a[g>>1]|0;I=$<<16>>16;x=r[u>>2]|0;P=x+4|0;r[u>>2]=P;r[x>>2]=I;D=+c[_>>2];R=a[g>>1]|0;O=+(R<<16>>16);N=a[g>>1]|0;L=+(N<<16>>16);F=O*L;U=D+F;c[_>>2]=U;B=r[d>>2]|0;H=0-B|0;r[f>>2]=H;j=r[l>>2]|0;V=r[f>>2]|0;q=j+V|0;z=r[f>>2]|0;W=q^z;G=W&65535;a[g>>1]=G;K=a[g>>1]|0;Y=K<<16>>16;X=r[u>>2]|0;r[X>>2]=Y;J=+c[_>>2];Z=a[g>>1]|0;Q=+(Z<<16>>16);ee=a[g>>1]|0;te=+(ee<<16>>16);ne=Q*te;ie=J+ne;c[_>>2]=ie;ae=+c[_>>2];m=o;return+ae}r[d>>2]=(r[d>>2]|0)-((r[l>>2]<<1)-1);w=r[h>>2]|0;k=r[l>>2]|0;M=w-k|0;S=r[f>>2]|0;A=M+S|0;C=r[f>>2]|0;T=A^C;E=T&65535;a[g>>1]=E;$=a[g>>1]|0;I=$<<16>>16;x=r[u>>2]|0;P=x+4|0;r[u>>2]=P;r[x>>2]=I;D=+c[_>>2];R=a[g>>1]|0;O=+(R<<16>>16);N=a[g>>1]|0;L=+(N<<16>>16);F=O*L;U=D+F;c[_>>2]=U;B=r[d>>2]|0;H=0-B|0;r[f>>2]=H;j=r[l>>2]|0;V=r[f>>2]|0;q=j+V|0;z=r[f>>2]|0;W=q^z;G=W&65535;a[g>>1]=G;K=a[g>>1]|0;Y=K<<16>>16;X=r[u>>2]|0;r[X>>2]=Y;J=+c[_>>2];Z=a[g>>1]|0;Q=+(Z<<16>>16);ee=a[g>>1]|0;te=+(ee<<16>>16);ne=Q*te;ie=J+ne;c[_>>2]=ie;ae=+c[_>>2];m=o;return+ae}function bt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0;a=m;m=m+16|0;o=a+12|0;s=a+8|0;l=a+4|0;c=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=i;i=r[c>>2]|0;c=wt(r[s>>2]|0,r[o>>2]|0)|0;Ve(i,c,(r[(r[344+(((r[s>>2]|0)<(r[l>>2]|0)?r[s>>2]|0:r[l>>2]|0)<<2)>>2]|0)+(((r[s>>2]|0)>(r[l>>2]|0)?r[s>>2]|0:r[l>>2]|0)<<2)>>2]|0)+(r[(r[344+(((r[s>>2]|0)<((r[l>>2]|0)+1|0)?r[s>>2]|0:(r[l>>2]|0)+1|0)<<2)>>2]|0)+(((r[s>>2]|0)>((r[l>>2]|0)+1|0)?r[s>>2]|0:(r[l>>2]|0)+1|0)<<2)>>2]|0)|0);m=a;return}function wt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;n=m;m=m+32|0;i=n+16|0;a=n+12|0;o=n+8|0;s=n+4|0;l=n;r[i>>2]=e;r[a>>2]=t;r[s>>2]=(r[i>>2]|0)-1;r[o>>2]=(r[(r[a>>2]|0)+(r[s>>2]<<2)>>2]|0)<0&1;r[l>>2]=D(r[(r[a>>2]|0)+(r[s>>2]<<2)>>2]|0)|0;do{r[s>>2]=(r[s>>2]|0)+-1;if(((r[i>>2]|0)-(r[s>>2]|0)|0)<(r[l>>2]|0))c=(r[i>>2]|0)-(r[s>>2]|0)|0;else c=r[l>>2]|0;if(((r[i>>2]|0)-(r[s>>2]|0)|0)>(r[l>>2]|0))d=(r[i>>2]|0)-(r[s>>2]|0)|0;else d=r[l>>2]|0;r[o>>2]=(r[o>>2]|0)+(r[(r[344+(c<<2)>>2]|0)+(d<<2)>>2]|0);t=D(r[(r[a>>2]|0)+(r[s>>2]<<2)>>2]|0)|0;r[l>>2]=(r[l>>2]|0)+t;if((r[(r[a>>2]|0)+(r[s>>2]<<2)>>2]|0)<0){if(((r[i>>2]|0)-(r[s>>2]|0)|0)<((r[l>>2]|0)+1|0))u=(r[i>>2]|0)-(r[s>>2]|0)|0;else u=(r[l>>2]|0)+1|0;if(((r[i>>2]|0)-(r[s>>2]|0)|0)>((r[l>>2]|0)+1|0))p=(r[i>>2]|0)-(r[s>>2]|0)|0;else p=(r[l>>2]|0)+1|0;r[o>>2]=(r[o>>2]|0)+(r[(r[344+(u<<2)>>2]|0)+(p<<2)>>2]|0)}}while((r[s>>2]|0)>0);m=n;return r[o>>2]|0}function kt(e){e=e|0;var t=0,n=0,i=0,a=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;e=r[n>>2]|0;e:do if((e|0)<16e3)if((e|0)<12e3){switch(e|0){case 8e3:break;default:{a=7;break e}}r[i>>2]=6;break}else{switch(e|0){case 12e3:break;default:{a=7;break e}}r[i>>2]=4;break}else{if((e|0)<24e3){switch(e|0){case 16e3:break;default:{a=7;break e}}r[i>>2]=3;break}if((e|0)<48e3){switch(e|0){case 24e3:break;default:{a=7;break e}}r[i>>2]=2;break}else{switch(e|0){case 48e3:break;default:{a=7;break e}}r[i>>2]=1;break}}while(0);if((a|0)==7)r[i>>2]=0;m=t;return r[i>>2]|0}function Mt(e,t,n,i,a,o,s,l,d,u,p){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=+o;s=+s;l=l|0;d=d|0;u=u|0;p=p|0;var f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0;f=m;m=m+96|0;h=f+92|0;g=f+88|0;_=f+84|0;v=f+80|0;y=f+76|0;b=f+72|0;w=f+68|0;k=f+64|0;M=f+60|0;S=f+56|0;A=f+52|0;C=f+48|0;T=f+44|0;E=f+40|0;$=f+36|0;I=f+32|0;x=f+28|0;P=f+24|0;D=f+20|0;R=f+16|0;O=f+12|0;N=f+8|0;L=f+4|0;F=f;r[h>>2]=e;r[g>>2]=t;r[_>>2]=n;r[v>>2]=i;r[y>>2]=a;c[b>>2]=o;c[w>>2]=s;r[k>>2]=l;r[M>>2]=d;r[S>>2]=u;r[A>>2]=p;if(+c[b>>2]==0&+c[w>>2]==0){if((r[g>>2]|0)==(r[h>>2]|0)){m=f;return}Ba(r[h>>2]|0,r[g>>2]|0,(r[y>>2]<<2)+0|0)|0;m=f;return}c[T>>2]=+c[b>>2]*+c[5524+((r[k>>2]|0)*12|0)>>2];c[E>>2]=+c[b>>2]*+c[5524+((r[k>>2]|0)*12|0)+4>>2];c[$>>2]=+c[b>>2]*+c[5524+((r[k>>2]|0)*12|0)+8>>2];c[I>>2]=+c[w>>2]*+c[5524+((r[M>>2]|0)*12|0)>>2];c[x>>2]=+c[w>>2]*+c[5524+((r[M>>2]|0)*12|0)+4>>2];c[P>>2]=+c[w>>2]*+c[5524+((r[M>>2]|0)*12|0)+8>>2];c[R>>2]=+c[(r[g>>2]|0)+(0-(r[v>>2]|0)+1<<2)>>2];c[O>>2]=+c[(r[g>>2]|0)+(0-(r[v>>2]|0)<<2)>>2];c[N>>2]=+c[(r[g>>2]|0)+(0-(r[v>>2]|0)-1<<2)>>2];c[L>>2]=+c[(r[g>>2]|0)+(0-(r[v>>2]|0)-2<<2)>>2];if((+c[b>>2]==+c[w>>2]?(r[_>>2]|0)==(r[v>>2]|0):0)?(r[k>>2]|0)==(r[M>>2]|0):0)r[A>>2]=0;r[C>>2]=0;while(1){if((r[C>>2]|0)>=(r[A>>2]|0))break;c[D>>2]=+c[(r[g>>2]|0)+((r[C>>2]|0)-(r[v>>2]|0)+2<<2)>>2];c[F>>2]=+c[(r[S>>2]|0)+(r[C>>2]<<2)>>2]*+c[(r[S>>2]|0)+(r[C>>2]<<2)>>2];c[(r[h>>2]|0)+(r[C>>2]<<2)>>2]=+c[(r[g>>2]|0)+(r[C>>2]<<2)>>2]+(1-+c[F>>2])*+c[T>>2]*+c[(r[g>>2]|0)+((r[C>>2]|0)-(r[_>>2]|0)<<2)>>2]+(1-+c[F>>2])*+c[E>>2]*(+c[(r[g>>2]|0)+((r[C>>2]|0)-(r[_>>2]|0)+1<<2)>>2]+ +c[(r[g>>2]|0)+((r[C>>2]|0)-(r[_>>2]|0)-1<<2)>>2])+(1-+c[F>>2])*+c[$>>2]*(+c[(r[g>>2]|0)+((r[C>>2]|0)-(r[_>>2]|0)+2<<2)>>2]+ +c[(r[g>>2]|0)+((r[C>>2]|0)-(r[_>>2]|0)-2<<2)>>2])+ +c[F>>2]*+c[I>>2]*+c[O>>2]+ +c[F>>2]*+c[x>>2]*(+c[R>>2]+ +c[N>>2])+ +c[F>>2]*+c[P>>2]*(+c[D>>2]+ +c[L>>2]);c[L>>2]=+c[N>>2];c[N>>2]=+c[O>>2];c[O>>2]=+c[R>>2];c[R>>2]=+c[D>>2];r[C>>2]=(r[C>>2]|0)+1}if(!(+c[w>>2]==0)){St((r[h>>2]|0)+(r[C>>2]<<2)|0,(r[g>>2]|0)+(r[C>>2]<<2)|0,r[v>>2]|0,(r[y>>2]|0)-(r[C>>2]|0)|0,+c[I>>2],+c[x>>2],+c[P>>2]);m=f;return}if((r[g>>2]|0)==(r[h>>2]|0)){m=f;return}Ba((r[h>>2]|0)+(r[A>>2]<<2)|0,(r[g>>2]|0)+(r[A>>2]<<2)|0,((r[y>>2]|0)-(r[A>>2]|0)<<2)+0|0)|0;m=f;return}function St(e,t,n,i,a,o,s){e=e|0;t=t|0;n=n|0;i=i|0;a=+a;o=+o;s=+s;var l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0;l=m;m=m+64|0;d=l+48|0;u=l+44|0;p=l+40|0;f=l+36|0;h=l+32|0;g=l+28|0;_=l+24|0;v=l+20|0;y=l+16|0;b=l+12|0;w=l+8|0;k=l+4|0;M=l;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=i;c[h>>2]=a;c[g>>2]=o;c[_>>2]=s;c[k>>2]=+c[(r[u>>2]|0)+(0-(r[p>>2]|0)-2<<2)>>2];c[w>>2]=+c[(r[u>>2]|0)+(0-(r[p>>2]|0)-1<<2)>>2];c[b>>2]=+c[(r[u>>2]|0)+(0-(r[p>>2]|0)<<2)>>2];c[y>>2]=+c[(r[u>>2]|0)+(0-(r[p>>2]|0)+1<<2)>>2];r[M>>2]=0;while(1){if((r[M>>2]|0)>=(r[f>>2]|0))break;c[v>>2]=+c[(r[u>>2]|0)+((r[M>>2]|0)-(r[p>>2]|0)+2<<2)>>2];c[(r[d>>2]|0)+(r[M>>2]<<2)>>2]=+c[(r[u>>2]|0)+(r[M>>2]<<2)>>2]+ +c[h>>2]*+c[b>>2]+ +c[g>>2]*(+c[y>>2]+ +c[w>>2])+ +c[_>>2]*(+c[v>>2]+ +c[k>>2]);c[k>>2]=+c[w>>2];c[w>>2]=+c[b>>2];c[b>>2]=+c[y>>2];c[y>>2]=+c[v>>2];r[M>>2]=(r[M>>2]|0)+1}m=l;return}function At(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0;s=m;m=m+32|0;l=s+20|0;c=s+16|0;d=s+12|0;u=s+8|0;p=s+4|0;f=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=0;while(1){if((r[p>>2]|0)>=(r[(r[l>>2]|0)+8>>2]|0))break;r[f>>2]=(a[(r[(r[l>>2]|0)+32>>2]|0)+((r[p>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[l>>2]|0)+32>>2]|0)+(r[p>>2]<<1)>>1]|0)<<r[d>>2];i=W(r[(r[l>>2]|0)+8>>2]|0,(r[d>>2]<<1)+(r[u>>2]|0)-1|0)|0;n=W((o[(r[(r[l>>2]|0)+92+12>>2]|0)+(i+(r[p>>2]|0))>>0]|0)+64|0,r[u>>2]|0)|0;i=(W(n,r[f>>2]|0)|0)>>2;r[(r[c>>2]|0)+(r[p>>2]<<2)>>2]=i;r[p>>2]=(r[p>>2]|0)+1}m=s;return}function Ct(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=0;e:while(1){if((r[c>>2]|0)>=1){u=12;break}r[d>>2]=0;while(1){if((r[d>>2]|0)>=4)break;if((r[o>>2]|0)==(r[r[5560+(r[c>>2]<<2)>>2]>>2]|0)?(r[s>>2]<<r[d>>2]|0)==(W(r[(r[5560+(r[c>>2]<<2)>>2]|0)+44>>2]|0,r[(r[5560+(r[c>>2]<<2)>>2]|0)+40>>2]|0)|0):0){u=7;break e}r[d>>2]=(r[d>>2]|0)+1}r[c>>2]=(r[c>>2]|0)+1}if((u|0)==7){if(r[l>>2]|0)r[r[l>>2]>>2]=0;r[a>>2]=r[5560+(r[c>>2]<<2)>>2];p=r[a>>2]|0;m=i;return p|0}else if((u|0)==12){if(r[l>>2]|0)r[r[l>>2]>>2]=-1;r[a>>2]=0;p=r[a>>2]|0;m=i;return p|0}return 0}function Tt(e,t,n,i,s,l,c,d,u,p,f,h,g,_,v,y,b,w,k){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;l=l|0;c=c|0;d=d|0;u=u|0;p=p|0;f=f|0;h=h|0;g=g|0;_=_|0;v=v|0;y=y|0;b=b|0;w=w|0;k=k|0;var M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,se=0,le=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0;M=m;m=m+160|0;S=M+144|0;A=M+140|0;C=M+136|0;T=M+132|0;E=M+128|0;$=M+124|0;I=M+120|0;x=M+116|0;P=M+112|0;D=M+108|0;R=M+104|0;O=M+100|0;N=M+96|0;L=M+92|0;F=M+88|0;U=M+84|0;B=M+80|0;H=M+76|0;j=M+72|0;V=M+68|0;q=M+64|0;z=M+60|0;G=M+56|0;K=M+52|0;Y=M+48|0;X=M+44|0;J=M+40|0;Z=M+36|0;Q=M+32|0;ee=M+28|0;te=M+24|0;ne=M+20|0;ie=M+16|0;ae=M+12|0;re=M+8|0;se=M+4|0;le=M;r[S>>2]=e;r[A>>2]=t;r[C>>2]=n;r[T>>2]=i;r[E>>2]=s;r[$>>2]=l;r[I>>2]=c;r[x>>2]=d;r[P>>2]=u;r[D>>2]=p;r[R>>2]=f;r[O>>2]=h;r[N>>2]=g;r[L>>2]=_;r[F>>2]=v;r[U>>2]=y;r[B>>2]=b;r[H>>2]=w;r[j>>2]=k;r[P>>2]=(r[P>>2]|0)>0?r[P>>2]|0:0;r[z>>2]=r[(r[S>>2]|0)+8>>2];r[Y>>2]=r[A>>2];r[X>>2]=(r[P>>2]|0)>=8?8:0;r[P>>2]=(r[P>>2]|0)-(r[X>>2]|0);r[Z>>2]=0;r[J>>2]=0;do if((r[L>>2]|0)==2){r[J>>2]=o[24771+((r[C>>2]|0)-(r[A>>2]|0))>>0];if((r[J>>2]|0)>(r[P>>2]|0)){r[J>>2]=0;break}else{r[P>>2]=(r[P>>2]|0)-(r[J>>2]|0);r[Z>>2]=(r[P>>2]|0)>=8?8:0;r[P>>2]=(r[P>>2]|0)-(r[Z>>2]|0);break}}while(0);k=r[z>>2]|0;r[Q>>2]=oe()|0;w=m;m=m+((1*(k<<2)|0)+15&-16)|0;k=m;m=m+((1*(r[z>>2]<<2)|0)+15&-16)|0;b=m;m=m+((1*(r[z>>2]<<2)|0)+15&-16)|0;y=m;m=m+((1*(r[z>>2]<<2)|0)+15&-16)|0;r[G>>2]=r[A>>2];while(1){if((r[G>>2]|0)>=(r[C>>2]|0))break;if((r[L>>2]<<3|0)>(((a[(r[(r[S>>2]|0)+32>>2]|0)+((r[G>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[S>>2]|0)+32>>2]|0)+(r[G>>2]<<1)>>1]|0)|0)*3<<r[F>>2]<<3>>4|0))de=r[L>>2]<<3;else de=((a[(r[(r[S>>2]|0)+32>>2]|0)+((r[G>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[S>>2]|0)+32>>2]|0)+(r[G>>2]<<1)>>1]|0)|0)*3<<r[F>>2]<<3>>4;r[b+(r[G>>2]<<2)>>2]=de;v=W(r[L>>2]|0,(a[(r[(r[S>>2]|0)+32>>2]|0)+((r[G>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[S>>2]|0)+32>>2]|0)+(r[G>>2]<<1)>>1]|0)|0)|0;_=W(v,(r[$>>2]|0)-5-(r[F>>2]|0)|0)|0;v=W(_,(r[C>>2]|0)-(r[G>>2]|0)-1|0)|0;_=(W(v,1<<(r[F>>2]|0)+3)|0)>>6;r[y+(r[G>>2]<<2)>>2]=_;if(((a[(r[(r[S>>2]|0)+32>>2]|0)+((r[G>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[S>>2]|0)+32>>2]|0)+(r[G>>2]<<1)>>1]|0)<<r[F>>2]|0)==1){_=y+(r[G>>2]<<2)|0;r[_>>2]=(r[_>>2]|0)-(r[L>>2]<<3)}r[G>>2]=(r[G>>2]|0)+1}r[V>>2]=1;r[q>>2]=(r[(r[S>>2]|0)+48>>2]|0)-1;do{r[ee>>2]=0;r[te>>2]=0;r[ne>>2]=(r[V>>2]|0)+(r[q>>2]|0)>>1;r[G>>2]=r[C>>2];while(1){$=r[G>>2]|0;r[G>>2]=$+-1;if(($|0)<=(r[A>>2]|0))break;r[ae>>2]=(a[(r[(r[S>>2]|0)+32>>2]|0)+((r[G>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[S>>2]|0)+32>>2]|0)+(r[G>>2]<<1)>>1]|0);$=W(r[L>>2]|0,r[ae>>2]|0)|0;de=W(r[ne>>2]|0,r[z>>2]|0)|0;_=W($,o[(r[(r[S>>2]|0)+52>>2]|0)+(de+(r[G>>2]|0))>>0]|0)|0;r[ie>>2]=_<<r[F>>2]>>2;if((r[ie>>2]|0)>0){if(0>((r[ie>>2]|0)+(r[y+(r[G>>2]<<2)>>2]|0)|0))ue=0;else ue=(r[ie>>2]|0)+(r[y+(r[G>>2]<<2)>>2]|0)|0;r[ie>>2]=ue}r[ie>>2]=(r[ie>>2]|0)+(r[(r[T>>2]|0)+(r[G>>2]<<2)>>2]|0);if(!(r[ee>>2]|0?1:(r[ie>>2]|0)>=(r[b+(r[G>>2]<<2)>>2]|0))){if((r[ie>>2]|0)<(r[L>>2]<<3|0))continue;r[te>>2]=(r[te>>2]|0)+(r[L>>2]<<3);continue}r[ee>>2]=1;if((r[ie>>2]|0)<(r[(r[E>>2]|0)+(r[G>>2]<<2)>>2]|0))pe=r[ie>>2]|0;else pe=r[(r[E>>2]|0)+(r[G>>2]<<2)>>2]|0;r[te>>2]=(r[te>>2]|0)+pe}_=r[ne>>2]|0;if((r[te>>2]|0)>(r[P>>2]|0))r[q>>2]=_-1;else r[V>>2]=_+1}while((r[V>>2]|0)<=(r[q>>2]|0));te=r[V>>2]|0;r[V>>2]=te+-1;r[q>>2]=te;r[G>>2]=r[A>>2];while(1){fe=r[S>>2]|0;if((r[G>>2]|0)>=(r[C>>2]|0))break;r[le>>2]=(a[(r[fe+32>>2]|0)+((r[G>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[S>>2]|0)+32>>2]|0)+(r[G>>2]<<1)>>1]|0);te=W(r[L>>2]|0,r[le>>2]|0)|0;ne=W(r[V>>2]|0,r[z>>2]|0)|0;pe=W(te,o[(r[(r[S>>2]|0)+52>>2]|0)+(ne+(r[G>>2]|0))>>0]|0)|0;r[re>>2]=pe<<r[F>>2]>>2;if((r[q>>2]|0)>=(r[(r[S>>2]|0)+48>>2]|0))me=r[(r[E>>2]|0)+(r[G>>2]<<2)>>2]|0;else{pe=W(r[L>>2]|0,r[le>>2]|0)|0;ne=W(r[q>>2]|0,r[z>>2]|0)|0;te=W(pe,o[(r[(r[S>>2]|0)+52>>2]|0)+(ne+(r[G>>2]|0))>>0]|0)|0;me=te<<r[F>>2]>>2}r[se>>2]=me;if((r[re>>2]|0)>0){if(0>((r[re>>2]|0)+(r[y+(r[G>>2]<<2)>>2]|0)|0))he=0;else he=(r[re>>2]|0)+(r[y+(r[G>>2]<<2)>>2]|0)|0;r[re>>2]=he}if((r[se>>2]|0)>0){if(0>((r[se>>2]|0)+(r[y+(r[G>>2]<<2)>>2]|0)|0))ge=0;else ge=(r[se>>2]|0)+(r[y+(r[G>>2]<<2)>>2]|0)|0;r[se>>2]=ge}if((r[V>>2]|0)>0)r[re>>2]=(r[re>>2]|0)+(r[(r[T>>2]|0)+(r[G>>2]<<2)>>2]|0);r[se>>2]=(r[se>>2]|0)+(r[(r[T>>2]|0)+(r[G>>2]<<2)>>2]|0);if((r[(r[T>>2]|0)+(r[G>>2]<<2)>>2]|0)>0)r[Y>>2]=r[G>>2];if(0>((r[se>>2]|0)-(r[re>>2]|0)|0))_e=0;else _e=(r[se>>2]|0)-(r[re>>2]|0)|0;r[se>>2]=_e;r[w+(r[G>>2]<<2)>>2]=r[re>>2];r[k+(r[G>>2]<<2)>>2]=r[se>>2];r[G>>2]=(r[G>>2]|0)+1}r[K>>2]=Et(fe,r[A>>2]|0,r[C>>2]|0,r[Y>>2]|0,w,k,b,r[E>>2]|0,r[P>>2]|0,r[D>>2]|0,r[X>>2]|0,r[I>>2]|0,r[J>>2]|0,r[x>>2]|0,r[Z>>2]|0,r[R>>2]|0,r[O>>2]|0,r[N>>2]|0,r[L>>2]|0,r[F>>2]|0,r[U>>2]|0,r[B>>2]|0,r[H>>2]|0,r[j>>2]|0)|0;j=r[K>>2]|0;ce(r[Q>>2]|0);m=M;return j|0}function Et(e,t,n,i,s,l,c,d,u,p,f,h,g,_,v,y,b,w,k,M,S,A,C,T){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;l=l|0;c=c|0;d=d|0;u=u|0;p=p|0;f=f|0;h=h|0;g=g|0;_=_|0;v=v|0;y=y|0;b=b|0;w=w|0;k=k|0;M=M|0;S=S|0;A=A|0;C=C|0;T=T|0;var E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ce=0,Te=0,Ee=0,$e=0,Ie=0,xe=0,Pe=0,De=0,Re=0,Oe=0,Ne=0,Le=0,Fe=0,Ue=0,Be=0,He=0,je=0,ze=0;E=m;m=m+224|0;$=E+208|0;I=E+204|0;x=E+200|0;P=E+196|0;D=E+192|0;R=E+188|0;O=E+184|0;N=E+180|0;L=E+176|0;F=E+172|0;U=E+168|0;B=E+164|0;H=E+160|0;j=E+156|0;V=E+152|0;q=E+148|0;z=E+144|0;G=E+140|0;K=E+136|0;Y=E+132|0;X=E+128|0;J=E+124|0;Z=E+120|0;Q=E+116|0;ee=E+112|0;te=E+108|0;ne=E+104|0;ie=E+100|0;ae=E+96|0;re=E+92|0;oe=E+88|0;se=E+84|0;le=E+80|0;ce=E+76|0;de=E+72|0;ue=E+68|0;pe=E+64|0;fe=E+60|0;me=E+56|0;he=E+52|0;ge=E+48|0;_e=E+44|0;ve=E+40|0;ye=E+36|0;be=E+32|0;we=E+28|0;ke=E+24|0;Me=E+20|0;Se=E+16|0;Ae=E+12|0;Ce=E+8|0;Te=E+4|0;Ee=E;r[$>>2]=e;r[I>>2]=t;r[x>>2]=n;r[P>>2]=i;r[D>>2]=s;r[R>>2]=l;r[O>>2]=c;r[N>>2]=d;r[L>>2]=u;r[F>>2]=p;r[U>>2]=f;r[B>>2]=h;r[H>>2]=g;r[j>>2]=_;r[V>>2]=v;r[q>>2]=y;r[z>>2]=b;r[G>>2]=w;r[K>>2]=k;r[Y>>2]=M;r[X>>2]=S;r[J>>2]=A;r[Z>>2]=C;r[Q>>2]=T;r[se>>2]=-1;r[le>>2]=r[K>>2]<<3;r[oe>>2]=(r[K>>2]|0)>1&1;r[re>>2]=r[Y>>2]<<3;r[te>>2]=0;r[ne>>2]=64;r[ie>>2]=0;while(1){if((r[ie>>2]|0)>=6)break;r[fe>>2]=(r[te>>2]|0)+(r[ne>>2]|0)>>1;r[ee>>2]=0;r[ue>>2]=0;r[ae>>2]=r[x>>2];while(1){T=r[ae>>2]|0;r[ae>>2]=T+-1;if((T|0)<=(r[I>>2]|0))break;r[me>>2]=(r[(r[D>>2]|0)+(r[ae>>2]<<2)>>2]|0)+((W(r[fe>>2]|0,r[(r[R>>2]|0)+(r[ae>>2]<<2)>>2]|0)|0)>>6);if(!(r[ue>>2]|0?1:(r[me>>2]|0)>=(r[(r[O>>2]|0)+(r[ae>>2]<<2)>>2]|0))){if((r[me>>2]|0)<(r[le>>2]|0))continue;r[ee>>2]=(r[ee>>2]|0)+(r[le>>2]|0);continue}r[ue>>2]=1;if((r[me>>2]|0)<(r[(r[N>>2]|0)+(r[ae>>2]<<2)>>2]|0))$e=r[me>>2]|0;else $e=r[(r[N>>2]|0)+(r[ae>>2]<<2)>>2]|0;r[ee>>2]=(r[ee>>2]|0)+$e}T=r[fe>>2]|0;if((r[ee>>2]|0)>(r[L>>2]|0))r[ne>>2]=T;else r[te>>2]=T;r[ie>>2]=(r[ie>>2]|0)+1}r[ee>>2]=0;r[ue>>2]=0;r[ae>>2]=r[x>>2];while(1){ie=r[ae>>2]|0;r[ae>>2]=ie+-1;if((ie|0)<=(r[I>>2]|0))break;r[he>>2]=(r[(r[D>>2]|0)+(r[ae>>2]<<2)>>2]|0)+((W(r[te>>2]|0,r[(r[R>>2]|0)+(r[ae>>2]<<2)>>2]|0)|0)>>6);do if(!(r[ue>>2]|0?1:(r[he>>2]|0)>=(r[(r[O>>2]|0)+(r[ae>>2]<<2)>>2]|0)))if((r[he>>2]|0)>=(r[le>>2]|0)){r[he>>2]=r[le>>2];break}else{r[he>>2]=0;break}else r[ue>>2]=1;while(0);if((r[he>>2]|0)<(r[(r[N>>2]|0)+(r[ae>>2]<<2)>>2]|0))Ie=r[he>>2]|0;else Ie=r[(r[N>>2]|0)+(r[ae>>2]<<2)>>2]|0;r[he>>2]=Ie;r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]=r[he>>2];r[ee>>2]=(r[ee>>2]|0)+(r[he>>2]|0)}r[se>>2]=r[x>>2];while(1){r[ae>>2]=(r[se>>2]|0)-1;if((r[ae>>2]|0)<=(r[P>>2]|0)){xe=29;break}r[ce>>2]=(r[L>>2]|0)-(r[ee>>2]|0);r[de>>2]=$t(r[ce>>2]|0,(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[se>>2]<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[I>>2]<<1)>>1]|0)|0)|0;he=W((a[(r[(r[$>>2]|0)+32>>2]|0)+(r[se>>2]<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[I>>2]<<1)>>1]|0)|0,r[de>>2]|0)|0;r[ce>>2]=(r[ce>>2]|0)-he;if(((r[ce>>2]|0)-((a[(r[(r[$>>2]|0)+32>>2]|0)+(r[ae>>2]<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[I>>2]<<1)>>1]|0))|0)>0)Pe=(r[ce>>2]|0)-((a[(r[(r[$>>2]|0)+32>>2]|0)+(r[ae>>2]<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[I>>2]<<1)>>1]|0))|0;else Pe=0;r[ve>>2]=Pe;r[ge>>2]=(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[se>>2]<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[ae>>2]<<1)>>1]|0);he=(r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]|0)+(W(r[de>>2]|0,r[ge>>2]|0)|0)|0;r[_e>>2]=he+(r[ve>>2]|0);if((r[(r[O>>2]|0)+(r[ae>>2]<<2)>>2]|0)>((r[le>>2]|0)+8|0))De=r[(r[O>>2]|0)+(r[ae>>2]<<2)>>2]|0;else De=(r[le>>2]|0)+8|0;if((r[_e>>2]|0)>=(De|0)){if(!(r[J>>2]|0)){if(Ye(r[X>>2]|0,1)|0)break}else{if((r[se>>2]|0)<=((r[I>>2]|0)+2|0)){xe=40;break}he=W((r[ae>>2]|0)<(r[Z>>2]|0)?7:9,r[ge>>2]|0)|0;if((r[_e>>2]|0)>(he<<r[Y>>2]<<3>>4|0)?(r[ae>>2]|0)<=(r[Q>>2]|0):0){xe=40;break}Ke(r[X>>2]|0,0,1)}r[ee>>2]=(r[ee>>2]|0)+8;r[_e>>2]=(r[_e>>2]|0)-8}r[ee>>2]=(r[ee>>2]|0)-((r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]|0)+(r[H>>2]|0));if((r[H>>2]|0)>0)r[H>>2]=o[24771+((r[ae>>2]|0)-(r[I>>2]|0))>>0];r[ee>>2]=(r[ee>>2]|0)+(r[H>>2]|0);if((r[_e>>2]|0)>=(r[le>>2]|0)){r[ee>>2]=(r[ee>>2]|0)+(r[le>>2]|0);Re=r[le>>2]|0;Oe=(r[q>>2]|0)+(r[ae>>2]<<2)|0}else{Re=0;Oe=(r[q>>2]|0)+(r[ae>>2]<<2)|0}r[Oe>>2]=Re;r[se>>2]=(r[se>>2]|0)+-1}if((xe|0)==29)r[L>>2]=(r[L>>2]|0)+(r[U>>2]|0);else if((xe|0)==40)Ke(r[X>>2]|0,1,1);do if((r[H>>2]|0)>0){if(!(r[J>>2]|0)){xe=r[I>>2]|0;U=xe+(qe(r[X>>2]|0,(r[se>>2]|0)+1-(r[I>>2]|0)|0)|0)|0;r[r[B>>2]>>2]=U;break}if((r[r[B>>2]>>2]|0)<(r[se>>2]|0))Ne=r[r[B>>2]>>2]|0;else Ne=r[se>>2]|0;r[r[B>>2]>>2]=Ne;Ve(r[X>>2]|0,(r[r[B>>2]>>2]|0)-(r[I>>2]|0)|0,(r[se>>2]|0)+1-(r[I>>2]|0)|0)}else r[r[B>>2]>>2]=0;while(0);if((r[r[B>>2]>>2]|0)<=(r[I>>2]|0)){r[L>>2]=(r[L>>2]|0)+(r[V>>2]|0);r[V>>2]=0}do if((r[V>>2]|0)>0){Ne=r[X>>2]|0;if(r[J>>2]|0){Ke(Ne,r[r[j>>2]>>2]|0,1);break}else{H=Ye(Ne,1)|0;r[r[j>>2]>>2]=H;break}}else r[r[j>>2]>>2]=0;while(0);r[ce>>2]=(r[L>>2]|0)-(r[ee>>2]|0);r[de>>2]=$t(r[ce>>2]|0,(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[se>>2]<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[I>>2]<<1)>>1]|0)|0)|0;ee=W((a[(r[(r[$>>2]|0)+32>>2]|0)+(r[se>>2]<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[I>>2]<<1)>>1]|0)|0,r[de>>2]|0)|0;r[ce>>2]=(r[ce>>2]|0)-ee;r[ae>>2]=r[I>>2];while(1){if((r[ae>>2]|0)>=(r[se>>2]|0))break;ee=W(r[de>>2]|0,(a[(r[(r[$>>2]|0)+32>>2]|0)+((r[ae>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[ae>>2]<<1)>>1]|0)|0)|0;L=(r[q>>2]|0)+(r[ae>>2]<<2)|0;r[L>>2]=(r[L>>2]|0)+ee;r[ae>>2]=(r[ae>>2]|0)+1}r[ae>>2]=r[I>>2];while(1){if((r[ae>>2]|0)>=(r[se>>2]|0))break;if((r[ce>>2]|0)<((a[(r[(r[$>>2]|0)+32>>2]|0)+((r[ae>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[ae>>2]<<1)>>1]|0)|0))Le=r[ce>>2]|0;else Le=(a[(r[(r[$>>2]|0)+32>>2]|0)+((r[ae>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[ae>>2]<<1)>>1]|0)|0;r[ye>>2]=Le;de=(r[q>>2]|0)+(r[ae>>2]<<2)|0;r[de>>2]=(r[de>>2]|0)+(r[ye>>2]|0);r[ce>>2]=(r[ce>>2]|0)-(r[ye>>2]|0);r[ae>>2]=(r[ae>>2]|0)+1}r[pe>>2]=0;r[ae>>2]=r[I>>2];while(1){if((r[ae>>2]|0)>=(r[se>>2]|0))break;r[be>>2]=(a[(r[(r[$>>2]|0)+32>>2]|0)+((r[ae>>2]|0)+1<<1)>>1]|0)-(a[(r[(r[$>>2]|0)+32>>2]|0)+(r[ae>>2]<<1)>>1]|0);r[we>>2]=r[be>>2]<<r[Y>>2];r[Ce>>2]=(r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]|0)+(r[pe>>2]|0);I=r[Ce>>2]|0;if((r[we>>2]|0)>1){if((I-(r[(r[N>>2]|0)+(r[ae>>2]<<2)>>2]|0)|0)>0)Fe=(r[Ce>>2]|0)-(r[(r[N>>2]|0)+(r[ae>>2]<<2)>>2]|0)|0;else Fe=0;r[Ae>>2]=Fe;r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]=(r[Ce>>2]|0)-(r[Ae>>2]|0);ye=W(r[K>>2]|0,r[we>>2]|0)|0;if((r[K>>2]|0)==2&(r[we>>2]|0)>2?!(r[r[j>>2]>>2]|0):0)Ue=(r[ae>>2]|0)<(r[r[B>>2]>>2]|0);else Ue=0;r[ke>>2]=ye+(Ue?1:0);r[Se>>2]=W(r[ke>>2]|0,(a[(r[(r[$>>2]|0)+56>>2]|0)+(r[ae>>2]<<1)>>1]|0)+(r[re>>2]|0)|0)|0;r[Me>>2]=(r[Se>>2]>>1)-((r[ke>>2]|0)*21|0);if((r[we>>2]|0)==2)r[Me>>2]=(r[Me>>2]|0)+(r[ke>>2]<<3>>2);if(((r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]|0)+(r[Me>>2]|0)|0)>=(r[ke>>2]<<1<<3|0)){if(((r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]|0)+(r[Me>>2]|0)|0)<((r[ke>>2]|0)*3<<3|0))r[Me>>2]=(r[Me>>2]|0)+(r[Se>>2]>>3)}else r[Me>>2]=(r[Me>>2]|0)+(r[Se>>2]>>2);if(0>((r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]|0)+(r[Me>>2]|0)+(r[ke>>2]<<2)|0))Be=0;else Be=(r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]|0)+(r[Me>>2]|0)+(r[ke>>2]<<2)|0;r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]=Be;ye=($t(r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]|0,r[ke>>2]|0)|0)>>>3;r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]=ye;ye=W(r[K>>2]|0,r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]|0)|0;if((ye|0)>(r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]>>3|0))r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]=r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]>>r[oe>>2]>>3;if((r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]|0)<8)He=r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]|0;else He=8;r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]=He;ye=W(r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]|0,r[ke>>2]<<3)|0;r[(r[G>>2]|0)+(r[ae>>2]<<2)>>2]=(ye|0)>=((r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]|0)+(r[Me>>2]|0)|0)&1;ye=(W(r[K>>2]|0,r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]|0)|0)<<3;ce=(r[q>>2]|0)+(r[ae>>2]<<2)|0;r[ce>>2]=(r[ce>>2]|0)-ye}else{if(0>(I-(r[K>>2]<<3)|0))je=0;else je=(r[Ce>>2]|0)-(r[K>>2]<<3)|0;r[Ae>>2]=je;r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]=(r[Ce>>2]|0)-(r[Ae>>2]|0);r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]=0;r[(r[G>>2]|0)+(r[ae>>2]<<2)>>2]=1}if((r[Ae>>2]|0)>0){if((r[Ae>>2]>>(r[oe>>2]|0)+3|0)<(8-(r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]|0)|0))ze=r[Ae>>2]>>(r[oe>>2]|0)+3;else ze=8-(r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]|0)|0;r[Te>>2]=ze;I=(r[z>>2]|0)+(r[ae>>2]<<2)|0;r[I>>2]=(r[I>>2]|0)+(r[Te>>2]|0);r[Ee>>2]=(W(r[Te>>2]|0,r[K>>2]|0)|0)<<3;r[(r[G>>2]|0)+(r[ae>>2]<<2)>>2]=(r[Ee>>2]|0)>=((r[Ae>>2]|0)-(r[pe>>2]|0)|0)&1;r[Ae>>2]=(r[Ae>>2]|0)-(r[Ee>>2]|0)}r[pe>>2]=r[Ae>>2];r[ae>>2]=(r[ae>>2]|0)+1}r[r[F>>2]>>2]=r[pe>>2];while(1){if((r[ae>>2]|0)>=(r[x>>2]|0))break;r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]=r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]>>r[oe>>2]>>3;r[(r[q>>2]|0)+(r[ae>>2]<<2)>>2]=0;r[(r[G>>2]|0)+(r[ae>>2]<<2)>>2]=(r[(r[z>>2]|0)+(r[ae>>2]<<2)>>2]|0)<1&1;
r[ae>>2]=(r[ae>>2]|0)+1}m=E;return r[se>>2]|0}function $t(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>>>0)/((r[a>>2]|0)>>>0)|0|0}function It(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;e=(r[(r[n>>2]|0)+20>>2]|0)-(32-(Y(r[(r[n>>2]|0)+28>>2]|0)|0))|0;m=t;return e|0}function xt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[i>>2]=e;r[a>>2]=t;r[o>>2]=32736-(r[i>>2]|0);i=(W(r[o>>2]|0,16384-(r[a>>2]|0)|0)|0)>>>15;m=n;return i|0}function Pt(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;n=m;m=m+64|0;i=n+60|0;o=n+56|0;s=n+52|0;l=n+48|0;c=n+44|0;d=n+40|0;u=n+8|0;p=n+4|0;f=n;r[i>>2]=e;r[o>>2]=t;if((r[(r[i>>2]|0)+8>>2]|0)>0)h=r[(r[i>>2]|0)+8>>2]|0;else h=0;r[f>>2]=h;r[u>>2]=1;r[d>>2]=0;do{r[c>>2]=a[(r[i>>2]|0)+12+(r[d>>2]<<1<<1)>>1];r[l>>2]=a[(r[i>>2]|0)+12+((r[d>>2]<<1)+1<<1)>>1];h=W(r[u+(r[d>>2]<<2)>>2]|0,r[c>>2]|0)|0;r[u+((r[d>>2]|0)+1<<2)>>2]=h;r[d>>2]=(r[d>>2]|0)+1}while((r[l>>2]|0)!=1);r[l>>2]=a[(r[i>>2]|0)+12+((r[d>>2]<<1)-1<<1)>>1];r[p>>2]=(r[d>>2]|0)-1;while(1){if((r[p>>2]|0)<0)break;if(r[p>>2]|0)r[s>>2]=a[(r[i>>2]|0)+12+((r[p>>2]<<1)-1<<1)>>1];else r[s>>2]=1;switch(a[(r[i>>2]|0)+12+(r[p>>2]<<1<<1)>>1]|0){case 2:{Dt(r[o>>2]|0,r[l>>2]|0,r[u+(r[p>>2]<<2)>>2]|0);break}case 4:{Rt(r[o>>2]|0,r[u+(r[p>>2]<<2)>>2]<<r[f>>2],r[i>>2]|0,r[l>>2]|0,r[u+(r[p>>2]<<2)>>2]|0,r[s>>2]|0);break}case 3:{Ot(r[o>>2]|0,r[u+(r[p>>2]<<2)>>2]<<r[f>>2],r[i>>2]|0,r[l>>2]|0,r[u+(r[p>>2]<<2)>>2]|0,r[s>>2]|0);break}case 5:{Nt(r[o>>2]|0,r[u+(r[p>>2]<<2)>>2]<<r[f>>2],r[i>>2]|0,r[l>>2]|0,r[u+(r[p>>2]<<2)>>2]|0,r[s>>2]|0);break}default:{}}r[l>>2]=r[s>>2];r[p>>2]=(r[p>>2]|0)+-1}m=n;return}function Dt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0;i=m;m=m+32|0;a=i+28|0;o=i+20|0;s=i+16|0;l=i+12|0;d=i+8|0;u=i;r[a>>2]=e;r[i+24>>2]=t;r[o>>2]=n;c[d>>2]=.7071067690849304;r[l>>2]=0;while(1){if((r[l>>2]|0)>=(r[o>>2]|0))break;r[s>>2]=(r[a>>2]|0)+32;n=r[s>>2]|0;r[u>>2]=r[n>>2];r[u+4>>2]=r[n+4>>2];c[r[s>>2]>>2]=+c[r[a>>2]>>2]-+c[u>>2];c[(r[s>>2]|0)+4>>2]=+c[(r[a>>2]|0)+4>>2]-+c[u+4>>2];n=r[a>>2]|0;c[n>>2]=+c[n>>2]+ +c[u>>2];n=(r[a>>2]|0)+4|0;c[n>>2]=+c[n>>2]+ +c[u+4>>2];c[u>>2]=(+c[(r[s>>2]|0)+8>>2]+ +c[(r[s>>2]|0)+8+4>>2])*+c[d>>2];c[u+4>>2]=(+c[(r[s>>2]|0)+8+4>>2]-+c[(r[s>>2]|0)+8>>2])*+c[d>>2];c[(r[s>>2]|0)+8>>2]=+c[(r[a>>2]|0)+8>>2]-+c[u>>2];c[(r[s>>2]|0)+8+4>>2]=+c[(r[a>>2]|0)+8+4>>2]-+c[u+4>>2];n=(r[a>>2]|0)+8|0;c[n>>2]=+c[n>>2]+ +c[u>>2];n=(r[a>>2]|0)+8+4|0;c[n>>2]=+c[n>>2]+ +c[u+4>>2];c[u>>2]=+c[(r[s>>2]|0)+16+4>>2];c[u+4>>2]=-+c[(r[s>>2]|0)+16>>2];c[(r[s>>2]|0)+16>>2]=+c[(r[a>>2]|0)+16>>2]-+c[u>>2];c[(r[s>>2]|0)+16+4>>2]=+c[(r[a>>2]|0)+16+4>>2]-+c[u+4>>2];n=(r[a>>2]|0)+16|0;c[n>>2]=+c[n>>2]+ +c[u>>2];n=(r[a>>2]|0)+16+4|0;c[n>>2]=+c[n>>2]+ +c[u+4>>2];c[u>>2]=(+c[(r[s>>2]|0)+24+4>>2]-+c[(r[s>>2]|0)+24>>2])*+c[d>>2];c[u+4>>2]=(-+c[(r[s>>2]|0)+24+4>>2]-+c[(r[s>>2]|0)+24>>2])*+c[d>>2];c[(r[s>>2]|0)+24>>2]=+c[(r[a>>2]|0)+24>>2]-+c[u>>2];c[(r[s>>2]|0)+24+4>>2]=+c[(r[a>>2]|0)+24+4>>2]-+c[u+4>>2];n=(r[a>>2]|0)+24|0;c[n>>2]=+c[n>>2]+ +c[u>>2];n=(r[a>>2]|0)+24+4|0;c[n>>2]=+c[n>>2]+ +c[u+4>>2];r[a>>2]=(r[a>>2]|0)+64;r[l>>2]=(r[l>>2]|0)+1}m=i;return}function Rt(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0;s=m;m=m+128|0;l=s+120|0;d=s+116|0;u=s+112|0;p=s+108|0;f=s+104|0;h=s+100|0;g=s+96|0;_=s+88|0;v=s+80|0;y=s+72|0;b=s+24|0;w=s+20|0;k=s+16|0;M=s+12|0;S=s+8|0;A=s+4|0;C=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;if((r[p>>2]|0)==1){r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;c[_>>2]=+c[r[l>>2]>>2]-+c[(r[l>>2]|0)+16>>2];c[_+4>>2]=+c[(r[l>>2]|0)+4>>2]-+c[(r[l>>2]|0)+16+4>>2];o=r[l>>2]|0;c[o>>2]=+c[o>>2]+ +c[(r[l>>2]|0)+16>>2];o=(r[l>>2]|0)+4|0;c[o>>2]=+c[o>>2]+ +c[(r[l>>2]|0)+16+4>>2];c[v>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[(r[l>>2]|0)+24>>2];c[v+4>>2]=+c[(r[l>>2]|0)+8+4>>2]+ +c[(r[l>>2]|0)+24+4>>2];c[(r[l>>2]|0)+16>>2]=+c[r[l>>2]>>2]-+c[v>>2];c[(r[l>>2]|0)+16+4>>2]=+c[(r[l>>2]|0)+4>>2]-+c[v+4>>2];o=r[l>>2]|0;c[o>>2]=+c[o>>2]+ +c[v>>2];o=(r[l>>2]|0)+4|0;c[o>>2]=+c[o>>2]+ +c[v+4>>2];c[v>>2]=+c[(r[l>>2]|0)+8>>2]-+c[(r[l>>2]|0)+24>>2];c[v+4>>2]=+c[(r[l>>2]|0)+8+4>>2]-+c[(r[l>>2]|0)+24+4>>2];c[(r[l>>2]|0)+8>>2]=+c[_>>2]+ +c[v+4>>2];c[(r[l>>2]|0)+8+4>>2]=+c[_+4>>2]-+c[v>>2];c[(r[l>>2]|0)+24>>2]=+c[_>>2]-+c[v+4>>2];c[(r[l>>2]|0)+24+4>>2]=+c[_+4>>2]+ +c[v>>2];r[l>>2]=(r[l>>2]|0)+32;r[g>>2]=(r[g>>2]|0)+1}m=s;return}r[S>>2]=r[p>>2]<<1;r[A>>2]=(r[p>>2]|0)*3;r[C>>2]=r[l>>2];r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;r[l>>2]=(r[C>>2]|0)+((W(r[g>>2]|0,r[h>>2]|0)|0)<<3);v=r[(r[u>>2]|0)+48>>2]|0;r[w>>2]=v;r[k>>2]=v;r[M>>2]=v;r[y>>2]=0;while(1){if((r[y>>2]|0)>=(r[p>>2]|0))break;c[b>>2]=+c[(r[l>>2]|0)+(r[p>>2]<<3)>>2]*+c[r[w>>2]>>2]-+c[(r[l>>2]|0)+(r[p>>2]<<3)+4>>2]*+c[(r[w>>2]|0)+4>>2];c[b+4>>2]=+c[(r[l>>2]|0)+(r[p>>2]<<3)>>2]*+c[(r[w>>2]|0)+4>>2]+ +c[(r[l>>2]|0)+(r[p>>2]<<3)+4>>2]*+c[r[w>>2]>>2];c[b+8>>2]=+c[(r[l>>2]|0)+(r[S>>2]<<3)>>2]*+c[r[k>>2]>>2]-+c[(r[l>>2]|0)+(r[S>>2]<<3)+4>>2]*+c[(r[k>>2]|0)+4>>2];c[b+8+4>>2]=+c[(r[l>>2]|0)+(r[S>>2]<<3)>>2]*+c[(r[k>>2]|0)+4>>2]+ +c[(r[l>>2]|0)+(r[S>>2]<<3)+4>>2]*+c[r[k>>2]>>2];c[b+16>>2]=+c[(r[l>>2]|0)+(r[A>>2]<<3)>>2]*+c[r[M>>2]>>2]-+c[(r[l>>2]|0)+(r[A>>2]<<3)+4>>2]*+c[(r[M>>2]|0)+4>>2];c[b+16+4>>2]=+c[(r[l>>2]|0)+(r[A>>2]<<3)>>2]*+c[(r[M>>2]|0)+4>>2]+ +c[(r[l>>2]|0)+(r[A>>2]<<3)+4>>2]*+c[r[M>>2]>>2];c[b+40>>2]=+c[r[l>>2]>>2]-+c[b+8>>2];c[b+40+4>>2]=+c[(r[l>>2]|0)+4>>2]-+c[b+8+4>>2];v=r[l>>2]|0;c[v>>2]=+c[v>>2]+ +c[b+8>>2];v=(r[l>>2]|0)+4|0;c[v>>2]=+c[v>>2]+ +c[b+8+4>>2];c[b+24>>2]=+c[b>>2]+ +c[b+16>>2];c[b+24+4>>2]=+c[b+4>>2]+ +c[b+16+4>>2];c[b+32>>2]=+c[b>>2]-+c[b+16>>2];c[b+32+4>>2]=+c[b+4>>2]-+c[b+16+4>>2];c[(r[l>>2]|0)+(r[S>>2]<<3)>>2]=+c[r[l>>2]>>2]-+c[b+24>>2];c[(r[l>>2]|0)+(r[S>>2]<<3)+4>>2]=+c[(r[l>>2]|0)+4>>2]-+c[b+24+4>>2];r[w>>2]=(r[w>>2]|0)+(r[d>>2]<<3);r[k>>2]=(r[k>>2]|0)+(r[d>>2]<<1<<3);r[M>>2]=(r[M>>2]|0)+((r[d>>2]|0)*3<<3);v=r[l>>2]|0;c[v>>2]=+c[v>>2]+ +c[b+24>>2];v=(r[l>>2]|0)+4|0;c[v>>2]=+c[v>>2]+ +c[b+24+4>>2];c[(r[l>>2]|0)+(r[p>>2]<<3)>>2]=+c[b+40>>2]+ +c[b+32+4>>2];c[(r[l>>2]|0)+(r[p>>2]<<3)+4>>2]=+c[b+40+4>>2]-+c[b+32>>2];c[(r[l>>2]|0)+(r[A>>2]<<3)>>2]=+c[b+40>>2]-+c[b+32+4>>2];c[(r[l>>2]|0)+(r[A>>2]<<3)+4>>2]=+c[b+40+4>>2]+ +c[b+32>>2];r[l>>2]=(r[l>>2]|0)+8;r[y>>2]=(r[y>>2]|0)+1}r[g>>2]=(r[g>>2]|0)+1}m=s;return}function Ot(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0;s=m;m=m+112|0;l=s+96|0;d=s+92|0;u=s+88|0;p=s+84|0;f=s+80|0;h=s+76|0;g=s+72|0;_=s+68|0;v=s+64|0;y=s+60|0;b=s+56|0;w=s+16|0;k=s+8|0;M=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;r[v>>2]=r[p>>2]<<1;r[M>>2]=r[l>>2];o=(r[(r[u>>2]|0)+48>>2]|0)+((W(r[d>>2]|0,r[p>>2]|0)|0)<<3)|0;r[k>>2]=r[o>>2];r[k+4>>2]=r[o+4>>2];r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;r[l>>2]=(r[M>>2]|0)+((W(r[g>>2]|0,r[h>>2]|0)|0)<<3);o=r[(r[u>>2]|0)+48>>2]|0;r[b>>2]=o;r[y>>2]=o;r[_>>2]=r[p>>2];do{c[w+8>>2]=+c[(r[l>>2]|0)+(r[p>>2]<<3)>>2]*+c[r[y>>2]>>2]-+c[(r[l>>2]|0)+(r[p>>2]<<3)+4>>2]*+c[(r[y>>2]|0)+4>>2];c[w+8+4>>2]=+c[(r[l>>2]|0)+(r[p>>2]<<3)>>2]*+c[(r[y>>2]|0)+4>>2]+ +c[(r[l>>2]|0)+(r[p>>2]<<3)+4>>2]*+c[r[y>>2]>>2];c[w+16>>2]=+c[(r[l>>2]|0)+(r[v>>2]<<3)>>2]*+c[r[b>>2]>>2]-+c[(r[l>>2]|0)+(r[v>>2]<<3)+4>>2]*+c[(r[b>>2]|0)+4>>2];c[w+16+4>>2]=+c[(r[l>>2]|0)+(r[v>>2]<<3)>>2]*+c[(r[b>>2]|0)+4>>2]+ +c[(r[l>>2]|0)+(r[v>>2]<<3)+4>>2]*+c[r[b>>2]>>2];c[w+24>>2]=+c[w+8>>2]+ +c[w+16>>2];c[w+24+4>>2]=+c[w+8+4>>2]+ +c[w+16+4>>2];c[w>>2]=+c[w+8>>2]-+c[w+16>>2];c[w+4>>2]=+c[w+8+4>>2]-+c[w+16+4>>2];r[y>>2]=(r[y>>2]|0)+(r[d>>2]<<3);r[b>>2]=(r[b>>2]|0)+(r[d>>2]<<1<<3);c[(r[l>>2]|0)+(r[p>>2]<<3)>>2]=+c[r[l>>2]>>2]-+c[w+24>>2]*.5;c[(r[l>>2]|0)+(r[p>>2]<<3)+4>>2]=+c[(r[l>>2]|0)+4>>2]-+c[w+24+4>>2]*.5;c[w>>2]=+c[w>>2]*+c[k+4>>2];o=w+4|0;c[o>>2]=+c[o>>2]*+c[k+4>>2];o=r[l>>2]|0;c[o>>2]=+c[o>>2]+ +c[w+24>>2];o=(r[l>>2]|0)+4|0;c[o>>2]=+c[o>>2]+ +c[w+24+4>>2];c[(r[l>>2]|0)+(r[v>>2]<<3)>>2]=+c[(r[l>>2]|0)+(r[p>>2]<<3)>>2]+ +c[w+4>>2];c[(r[l>>2]|0)+(r[v>>2]<<3)+4>>2]=+c[(r[l>>2]|0)+(r[p>>2]<<3)+4>>2]-+c[w>>2];o=(r[l>>2]|0)+(r[p>>2]<<3)|0;c[o>>2]=+c[o>>2]-+c[w+4>>2];o=(r[l>>2]|0)+(r[p>>2]<<3)+4|0;c[o>>2]=+c[o>>2]+ +c[w>>2];r[l>>2]=(r[l>>2]|0)+8;o=(r[_>>2]|0)+-1|0;r[_>>2]=o}while((o|0)!=0);r[g>>2]=(r[g>>2]|0)+1}m=s;return}function Nt(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0;s=m;m=m+192|0;l=s+184|0;d=s+180|0;u=s+176|0;p=s+172|0;f=s+168|0;h=s+164|0;g=s+160|0;_=s+156|0;v=s+152|0;y=s+148|0;b=s+144|0;w=s+140|0;k=s+136|0;M=s+32|0;S=s+24|0;A=s+16|0;C=s+8|0;T=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;r[T>>2]=r[l>>2];o=(r[(r[u>>2]|0)+48>>2]|0)+((W(r[d>>2]|0,r[p>>2]|0)|0)<<3)|0;r[A>>2]=r[o>>2];r[A+4>>2]=r[o+4>>2];o=(r[(r[u>>2]|0)+48>>2]|0)+((W(r[d>>2]<<1,r[p>>2]|0)|0)<<3)|0;r[C>>2]=r[o>>2];r[C+4>>2]=r[o+4>>2];r[S>>2]=r[(r[u>>2]|0)+48>>2];r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[f>>2]|0))break;r[l>>2]=(r[T>>2]|0)+((W(r[w>>2]|0,r[h>>2]|0)|0)<<3);r[g>>2]=r[l>>2];r[_>>2]=(r[g>>2]|0)+(r[p>>2]<<3);r[v>>2]=(r[g>>2]|0)+(r[p>>2]<<1<<3);r[y>>2]=(r[g>>2]|0)+((r[p>>2]|0)*3<<3);r[b>>2]=(r[g>>2]|0)+(r[p>>2]<<2<<3);r[k>>2]=0;while(1){if((r[k>>2]|0)>=(r[p>>2]|0))break;u=r[g>>2]|0;r[M>>2]=r[u>>2];r[M+4>>2]=r[u+4>>2];E=+c[r[_>>2]>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]|0,r[d>>2]|0)|0)<<3)>>2];c[M+8>>2]=E-+c[(r[_>>2]|0)+4>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]|0,r[d>>2]|0)|0)<<3)+4>>2];E=+c[r[_>>2]>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]|0,r[d>>2]|0)|0)<<3)+4>>2];c[M+8+4>>2]=E+ +c[(r[_>>2]|0)+4>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]|0,r[d>>2]|0)|0)<<3)>>2];E=+c[r[v>>2]>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]<<1,r[d>>2]|0)|0)<<3)>>2];c[M+16>>2]=E-+c[(r[v>>2]|0)+4>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]<<1,r[d>>2]|0)|0)<<3)+4>>2];E=+c[r[v>>2]>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]<<1,r[d>>2]|0)|0)<<3)+4>>2];c[M+16+4>>2]=E+ +c[(r[v>>2]|0)+4>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]<<1,r[d>>2]|0)|0)<<3)>>2];E=+c[r[y>>2]>>2]*+c[(r[S>>2]|0)+((W((r[k>>2]|0)*3|0,r[d>>2]|0)|0)<<3)>>2];c[M+24>>2]=E-+c[(r[y>>2]|0)+4>>2]*+c[(r[S>>2]|0)+((W((r[k>>2]|0)*3|0,r[d>>2]|0)|0)<<3)+4>>2];E=+c[r[y>>2]>>2]*+c[(r[S>>2]|0)+((W((r[k>>2]|0)*3|0,r[d>>2]|0)|0)<<3)+4>>2];c[M+24+4>>2]=E+ +c[(r[y>>2]|0)+4>>2]*+c[(r[S>>2]|0)+((W((r[k>>2]|0)*3|0,r[d>>2]|0)|0)<<3)>>2];E=+c[r[b>>2]>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]<<2,r[d>>2]|0)|0)<<3)>>2];c[M+32>>2]=E-+c[(r[b>>2]|0)+4>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]<<2,r[d>>2]|0)|0)<<3)+4>>2];E=+c[r[b>>2]>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]<<2,r[d>>2]|0)|0)<<3)+4>>2];c[M+32+4>>2]=E+ +c[(r[b>>2]|0)+4>>2]*+c[(r[S>>2]|0)+((W(r[k>>2]<<2,r[d>>2]|0)|0)<<3)>>2];c[M+56>>2]=+c[M+8>>2]+ +c[M+32>>2];c[M+56+4>>2]=+c[M+8+4>>2]+ +c[M+32+4>>2];c[M+80>>2]=+c[M+8>>2]-+c[M+32>>2];c[M+80+4>>2]=+c[M+8+4>>2]-+c[M+32+4>>2];c[M+64>>2]=+c[M+16>>2]+ +c[M+24>>2];c[M+64+4>>2]=+c[M+16+4>>2]+ +c[M+24+4>>2];c[M+72>>2]=+c[M+16>>2]-+c[M+24>>2];c[M+72+4>>2]=+c[M+16+4>>2]-+c[M+24+4>>2];u=r[g>>2]|0;c[u>>2]=+c[u>>2]+(+c[M+56>>2]+ +c[M+64>>2]);u=(r[g>>2]|0)+4|0;c[u>>2]=+c[u>>2]+(+c[M+56+4>>2]+ +c[M+64+4>>2]);c[M+40>>2]=+c[M>>2]+ +c[M+56>>2]*+c[A>>2]+ +c[M+64>>2]*+c[C>>2];c[M+40+4>>2]=+c[M+4>>2]+ +c[M+56+4>>2]*+c[A>>2]+ +c[M+64+4>>2]*+c[C>>2];c[M+48>>2]=+c[M+80+4>>2]*+c[A+4>>2]+ +c[M+72+4>>2]*+c[C+4>>2];c[M+48+4>>2]=-(+c[M+80>>2]*+c[A+4>>2])-+c[M+72>>2]*+c[C+4>>2];c[r[_>>2]>>2]=+c[M+40>>2]-+c[M+48>>2];c[(r[_>>2]|0)+4>>2]=+c[M+40+4>>2]-+c[M+48+4>>2];c[r[b>>2]>>2]=+c[M+40>>2]+ +c[M+48>>2];c[(r[b>>2]|0)+4>>2]=+c[M+40+4>>2]+ +c[M+48+4>>2];c[M+88>>2]=+c[M>>2]+ +c[M+56>>2]*+c[C>>2]+ +c[M+64>>2]*+c[A>>2];c[M+88+4>>2]=+c[M+4>>2]+ +c[M+56+4>>2]*+c[C>>2]+ +c[M+64+4>>2]*+c[A>>2];c[M+96>>2]=-(+c[M+80+4>>2]*+c[C+4>>2])+ +c[M+72+4>>2]*+c[A+4>>2];c[M+96+4>>2]=+c[M+80>>2]*+c[C+4>>2]-+c[M+72>>2]*+c[A+4>>2];c[r[v>>2]>>2]=+c[M+88>>2]+ +c[M+96>>2];c[(r[v>>2]|0)+4>>2]=+c[M+88+4>>2]+ +c[M+96+4>>2];c[r[y>>2]>>2]=+c[M+88>>2]-+c[M+96>>2];c[(r[y>>2]|0)+4>>2]=+c[M+88+4>>2]-+c[M+96+4>>2];r[g>>2]=(r[g>>2]|0)+8;r[_>>2]=(r[_>>2]|0)+8;r[v>>2]=(r[v>>2]|0)+8;r[y>>2]=(r[y>>2]|0)+8;r[b>>2]=(r[b>>2]|0)+8;r[k>>2]=(r[k>>2]|0)+1}r[w>>2]=(r[w>>2]|0)+1}m=s;return}function Lt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;o=m;m=m+112|0;s=o+108|0;l=o+104|0;d=o+100|0;u=o+96|0;p=o+92|0;f=o+88|0;h=o+68|0;g=o+64|0;_=o+48|0;v=o+24|0;y=o+4|0;b=o;r[s>>2]=e;r[l>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=a;c[g>>2]=1;r[v>>2]=0;r[v+4>>2]=0;r[v+8>>2]=0;r[v+12>>2]=0;r[v+16>>2]=0;c[b>>2]=.800000011920929;r[f>>2]=1;while(1){w=r[r[s>>2]>>2]|0;if((r[f>>2]|0)>=(r[d>>2]>>1|0))break;c[(r[l>>2]|0)+(r[f>>2]<<2)>>2]=((+c[w+((r[f>>2]<<1)-1<<2)>>2]+ +c[(r[r[s>>2]>>2]|0)+((r[f>>2]<<1)+1<<2)>>2])*.5+ +c[(r[r[s>>2]>>2]|0)+(r[f>>2]<<1<<2)>>2])*.5;r[f>>2]=(r[f>>2]|0)+1}c[r[l>>2]>>2]=(+c[w+4>>2]*.5+ +c[r[r[s>>2]>>2]>>2])*.5;if((r[u>>2]|0)==2){r[f>>2]=1;while(1){k=r[(r[s>>2]|0)+4>>2]|0;if((r[f>>2]|0)>=(r[d>>2]>>1|0))break;u=(r[l>>2]|0)+(r[f>>2]<<2)|0;c[u>>2]=+c[u>>2]+((+c[k+((r[f>>2]<<1)-1<<2)>>2]+ +c[(r[(r[s>>2]|0)+4>>2]|0)+((r[f>>2]<<1)+1<<2)>>2])*.5+ +c[(r[(r[s>>2]|0)+4>>2]|0)+(r[f>>2]<<1<<2)>>2])*.5;r[f>>2]=(r[f>>2]|0)+1}u=r[l>>2]|0;c[u>>2]=+c[u>>2]+(+c[k+4>>2]*.5+ +c[r[(r[s>>2]|0)+4>>2]>>2])*.5}Vt(r[l>>2]|0,h,0,0,4,r[d>>2]>>1,r[p>>2]|0)|0;c[h>>2]=+c[h>>2]*1.000100016593933;r[f>>2]=1;while(1){if((r[f>>2]|0)>4)break;p=h+(r[f>>2]<<2)|0;c[p>>2]=+c[p>>2]-+c[h+(r[f>>2]<<2)>>2]*(+(r[f>>2]|0)*.00800000037997961)*(+(r[f>>2]|0)*.00800000037997961);r[f>>2]=(r[f>>2]|0)+1}qt(_,h,4);r[f>>2]=0;while(1){if((r[f>>2]|0)>=4)break;c[g>>2]=+c[g>>2]*.8999999761581421;c[_+(r[f>>2]<<2)>>2]=+c[_+(r[f>>2]<<2)>>2]*+c[g>>2];r[f>>2]=(r[f>>2]|0)+1}c[y>>2]=+c[_>>2]+.800000011920929;c[y+4>>2]=+c[_+4>>2]+ +c[b>>2]*+c[_>>2];c[y+8>>2]=+c[_+8>>2]+ +c[b>>2]*+c[_+4>>2];c[y+12>>2]=+c[_+12>>2]+ +c[b>>2]*+c[_+8>>2];c[y+16>>2]=+c[b>>2]*+c[_+12>>2];zt(r[l>>2]|0,y,r[l>>2]|0,r[d>>2]>>1,v);m=o;return}function Ft(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0;s=m;m=m+80|0;l=s+64|0;d=s+60|0;u=s+56|0;p=s+52|0;f=s+48|0;h=s+40|0;g=s+36|0;_=s+32|0;v=s+24|0;y=s+20|0;b=s+16|0;w=s+12|0;k=s+8|0;M=s+4|0;S=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[s+44>>2]=o;r[v>>2]=0;r[v+4>>2]=0;r[_>>2]=(r[u>>2]|0)+(r[p>>2]|0);o=r[u>>2]>>2;r[b>>2]=oe()|0;a=m;m=m+((1*(o<<2)|0)+15&-16)|0;o=m;m=m+((1*(r[_>>2]>>2<<2)|0)+15&-16)|0;i=m;m=m+((1*(r[p>>2]>>1<<2)|0)+15&-16)|0;r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[u>>2]>>2|0))break;c[a+(r[g>>2]<<2)>>2]=+c[(r[l>>2]|0)+(r[g>>2]<<1<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[_>>2]>>2|0))break;c[o+(r[g>>2]<<2)>>2]=+c[(r[d>>2]|0)+(r[g>>2]<<1<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}Bt(a,o,i,r[u>>2]>>2,r[p>>2]>>2);Ht(i,o,r[u>>2]>>2,r[p>>2]>>2,v);r[h>>2]=0;while(1){if((r[h>>2]|0)>=(r[p>>2]>>1|0))break;c[i+(r[h>>2]<<2)>>2]=0;if(!((D((r[h>>2]|0)-(r[v>>2]<<1)|0)|0)>2?(D((r[h>>2]|0)-(r[v+4>>2]<<1)|0)|0)>2:0)){c[w>>2]=+Ut(r[l>>2]|0,(r[d>>2]|0)+(r[h>>2]<<2)|0,r[u>>2]>>1);c[i+(r[h>>2]<<2)>>2]=-1>+c[w>>2]?-1:+c[w>>2]}r[h>>2]=(r[h>>2]|0)+1}Ht(i,r[d>>2]|0,r[u>>2]>>1,r[p>>2]>>1,v);if((r[v>>2]|0)>0?(r[v>>2]|0)<((r[p>>2]>>1)-1|0):0){c[k>>2]=+c[i+((r[v>>2]|0)-1<<2)>>2];c[M>>2]=+c[i+(r[v>>2]<<2)>>2];c[S>>2]=+c[i+((r[v>>2]|0)+1<<2)>>2];if(+c[S>>2]-+c[k>>2]>(+c[M>>2]-+c[k>>2])*.699999988079071){r[y>>2]=1;A=r[v>>2]|0;C=A<<1;T=r[y>>2]|0;E=C-T|0;$=r[f>>2]|0;r[$>>2]=E;I=r[b>>2]|0;ce(I|0);m=s;return}if(+c[k>>2]-+c[S>>2]>(+c[M>>2]-+c[S>>2])*.699999988079071){r[y>>2]=-1;A=r[v>>2]|0;C=A<<1;T=r[y>>2]|0;E=C-T|0;$=r[f>>2]|0;r[$>>2]=E;I=r[b>>2]|0;ce(I|0);m=s;return}else{r[y>>2]=0;A=r[v>>2]|0;C=A<<1;T=r[y>>2]|0;E=C-T|0;$=r[f>>2]|0;r[$>>2]=E;I=r[b>>2]|0;ce(I|0);m=s;return}}r[y>>2]=0;A=r[v>>2]|0;C=A<<1;T=r[y>>2]|0;E=C-T|0;$=r[f>>2]|0;r[$>>2]=E;I=r[b>>2]|0;ce(I|0);m=s;return}function Ut(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;d=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;c[d>>2]=0;r[l>>2]=0;while(1){u=+c[d>>2];if((r[l>>2]|0)>=(r[s>>2]|0))break;c[d>>2]=u+ +c[(r[a>>2]|0)+(r[l>>2]<<2)>>2]*+c[(r[o>>2]|0)+(r[l>>2]<<2)>>2];r[l>>2]=(r[l>>2]|0)+1}m=i;return+u}function Bt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0;o=m;m=m+48|0;s=o+44|0;l=o+40|0;d=o+36|0;u=o+32|0;p=o+28|0;f=o+24|0;h=o+8|0;g=o;r[s>>2]=e;r[l>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=a;r[f>>2]=0;while(1){if((r[f>>2]|0)>=((r[p>>2]|0)-3|0))break;r[h>>2]=0;r[h+4>>2]=0;r[h+8>>2]=0;r[h+12>>2]=0;jt(r[s>>2]|0,(r[l>>2]|0)+(r[f>>2]<<2)|0,h,r[u>>2]|0);c[(r[d>>2]|0)+(r[f>>2]<<2)>>2]=+c[h>>2];c[(r[d>>2]|0)+((r[f>>2]|0)+1<<2)>>2]=+c[h+4>>2];c[(r[d>>2]|0)+((r[f>>2]|0)+2<<2)>>2]=+c[h+8>>2];c[(r[d>>2]|0)+((r[f>>2]|0)+3<<2)>>2]=+c[h+12>>2];r[f>>2]=(r[f>>2]|0)+4}while(1){if((r[f>>2]|0)>=(r[p>>2]|0))break;c[g>>2]=+Ut(r[s>>2]|0,(r[l>>2]|0)+(r[f>>2]<<2)|0,r[u>>2]|0);c[(r[d>>2]|0)+(r[f>>2]<<2)>>2]=+c[g>>2];r[f>>2]=(r[f>>2]|0)+1}m=o;return}function Ht(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;o=m;m=m+64|0;s=o+52|0;l=o+48|0;d=o+44|0;u=o+40|0;p=o+36|0;f=o+32|0;h=o+28|0;g=o+24|0;_=o+16|0;v=o+8|0;y=o+4|0;b=o;r[s>>2]=e;r[l>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=a;c[g>>2]=1;c[_>>2]=-1;c[_+4>>2]=-1;c[v>>2]=0;c[v+4>>2]=0;r[r[p>>2]>>2]=0;r[(r[p>>2]|0)+4>>2]=1;r[h>>2]=0;while(1){if((r[h>>2]|0)>=(r[d>>2]|0))break;c[g>>2]=+c[g>>2]+ +c[(r[l>>2]|0)+(r[h>>2]<<2)>>2]*+c[(r[l>>2]|0)+(r[h>>2]<<2)>>2];r[h>>2]=(r[h>>2]|0)+1}r[f>>2]=0;while(1){if((r[f>>2]|0)>=(r[u>>2]|0))break;if(+c[(r[s>>2]|0)+(r[f>>2]<<2)>>2]>0?(c[b>>2]=+c[(r[s>>2]|0)+(r[f>>2]<<2)>>2],c[b>>2]=+c[b>>2]*9.999999960041972e-13,c[y>>2]=+c[b>>2]*+c[b>>2],+c[y>>2]*+c[v+4>>2]>+c[_+4>>2]*+c[g>>2]):0){if(+c[y>>2]*+c[v>>2]>+c[_>>2]*+c[g>>2]){c[_+4>>2]=+c[_>>2];c[v+4>>2]=+c[v>>2];r[(r[p>>2]|0)+4>>2]=r[r[p>>2]>>2];c[_>>2]=+c[y>>2];c[v>>2]=+c[g>>2];w=r[f>>2]|0;k=r[p>>2]|0}else{c[_+4>>2]=+c[y>>2];c[v+4>>2]=+c[g>>2];w=r[f>>2]|0;k=(r[p>>2]|0)+4|0}r[k>>2]=w}c[g>>2]=+c[g>>2]+(+c[(r[l>>2]|0)+((r[f>>2]|0)+(r[d>>2]|0)<<2)>>2]*+c[(r[l>>2]|0)+((r[f>>2]|0)+(r[d>>2]|0)<<2)>>2]-+c[(r[l>>2]|0)+(r[f>>2]<<2)>>2]*+c[(r[l>>2]|0)+(r[f>>2]<<2)>>2]);c[g>>2]=1>+c[g>>2]?1:+c[g>>2];r[f>>2]=(r[f>>2]|0)+1}m=o;return}function jt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;a=m;m=m+64|0;o=a+48|0;s=a+44|0;l=a+40|0;d=a+36|0;u=a+32|0;p=a+28|0;f=a+24|0;h=a+20|0;g=a+16|0;_=a+12|0;v=a+8|0;y=a+4|0;b=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=i;c[g>>2]=0;i=r[s>>2]|0;r[s>>2]=i+4;c[p>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[f>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[h>>2]=+c[i>>2];r[u>>2]=0;while(1){if((r[u>>2]|0)>=((r[d>>2]|0)-3|0))break;i=r[o>>2]|0;r[o>>2]=i+4;c[_>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[g>>2]=+c[i>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[_>>2]*+c[p>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[_>>2]*+c[f>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[_>>2]*+c[h>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[_>>2]*+c[g>>2];i=r[o>>2]|0;r[o>>2]=i+4;c[_>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[p>>2]=+c[i>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[_>>2]*+c[f>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[_>>2]*+c[h>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[_>>2]*+c[g>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[_>>2]*+c[p>>2];i=r[o>>2]|0;r[o>>2]=i+4;c[_>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[f>>2]=+c[i>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[_>>2]*+c[h>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[_>>2]*+c[g>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[_>>2]*+c[p>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[_>>2]*+c[f>>2];i=r[o>>2]|0;r[o>>2]=i+4;c[_>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[h>>2]=+c[i>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[_>>2]*+c[g>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[_>>2]*+c[p>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[_>>2]*+c[f>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[_>>2]*+c[h>>2];r[u>>2]=(r[u>>2]|0)+4}_=r[u>>2]|0;r[u>>2]=_+1;if((_|0)<(r[d>>2]|0)){_=r[o>>2]|0;r[o>>2]=_+4;c[v>>2]=+c[_>>2];_=r[s>>2]|0;r[s>>2]=_+4;c[g>>2]=+c[_>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[v>>2]*+c[p>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[v>>2]*+c[f>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[v>>2]*+c[h>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[v>>2]*+c[g>>2]}v=r[u>>2]|0;r[u>>2]=v+1;if((v|0)<(r[d>>2]|0)){v=r[o>>2]|0;r[o>>2]=v+4;c[y>>2]=+c[v>>2];v=r[s>>2]|0;r[s>>2]=v+4;c[p>>2]=+c[v>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[y>>2]*+c[f>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[y>>2]*+c[h>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[y>>2]*+c[g>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[y>>2]*+c[p>>2]}if((r[u>>2]|0)>=(r[d>>2]|0)){m=a;return}d=r[o>>2]|0;r[o>>2]=d+4;c[b>>2]=+c[d>>2];d=r[s>>2]|0;r[s>>2]=d+4;c[f>>2]=+c[d>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[b>>2]*+c[h>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[b>>2]*+c[g>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[b>>2]*+c[p>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[b>>2]*+c[f>>2];m=a;return}function Vt(e,t,n,i,a,o,s){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;var l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0;l=m;m=m+64|0;d=l+52|0;u=l+48|0;p=l+44|0;f=l+40|0;h=l+36|0;g=l+32|0;_=l+24|0;v=l+20|0;y=l+16|0;b=l+12|0;w=l+8|0;k=l+4|0;M=l;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=i;r[h>>2]=a;r[g>>2]=o;r[l+28>>2]=s;r[b>>2]=(r[g>>2]|0)-(r[h>>2]|0);s=r[g>>2]|0;r[M>>2]=oe()|0;o=m;m=m+((1*(s<<2)|0)+15&-16)|0;if(!(r[f>>2]|0))r[k>>2]=r[d>>2];else{r[v>>2]=0;while(1){if((r[v>>2]|0)>=(r[g>>2]|0))break;c[o+(r[v>>2]<<2)>>2]=+c[(r[d>>2]|0)+(r[v>>2]<<2)>>2];r[v>>2]=(r[v>>2]|0)+1}r[v>>2]=0;while(1){if((r[v>>2]|0)>=(r[f>>2]|0))break;c[o+(r[v>>2]<<2)>>2]=+c[(r[d>>2]|0)+(r[v>>2]<<2)>>2]*+c[(r[p>>2]|0)+(r[v>>2]<<2)>>2];c[o+((r[g>>2]|0)-(r[v>>2]|0)-1<<2)>>2]=+c[(r[d>>2]|0)+((r[g>>2]|0)-(r[v>>2]|0)-1<<2)>>2]*+c[(r[p>>2]|0)+(r[v>>2]<<2)>>2];r[v>>2]=(r[v>>2]|0)+1}r[k>>2]=o}r[w>>2]=0;Bt(r[k>>2]|0,r[k>>2]|0,r[u>>2]|0,r[b>>2]|0,(r[h>>2]|0)+1|0);r[y>>2]=0;while(1){if((r[y>>2]|0)>(r[h>>2]|0))break;r[v>>2]=(r[y>>2]|0)+(r[b>>2]|0);c[_>>2]=0;while(1){S=+c[_>>2];if((r[v>>2]|0)>=(r[g>>2]|0))break;c[_>>2]=S+ +c[(r[k>>2]|0)+(r[v>>2]<<2)>>2]*+c[(r[k>>2]|0)+((r[v>>2]|0)-(r[y>>2]|0)<<2)>>2];r[v>>2]=(r[v>>2]|0)+1}o=(r[u>>2]|0)+(r[y>>2]<<2)|0;c[o>>2]=+c[o>>2]+S;r[y>>2]=(r[y>>2]|0)+1}y=r[w>>2]|0;ce(r[M>>2]|0);m=l;return y|0}function qt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;i=m;m=m+48|0;a=i+40|0;o=i+36|0;s=i+32|0;l=i+28|0;d=i+24|0;u=i+20|0;p=i+16|0;f=i+12|0;h=i+8|0;g=i+4|0;_=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;c[p>>2]=+c[r[o>>2]>>2];r[f>>2]=r[a>>2];r[l>>2]=0;while(1){if((r[l>>2]|0)>=(r[s>>2]|0))break;c[(r[f>>2]|0)+(r[l>>2]<<2)>>2]=0;r[l>>2]=(r[l>>2]|0)+1}if(!(+c[r[o>>2]>>2]!=0)){m=i;return}r[l>>2]=0;while(1){if((r[l>>2]|0)>=(r[s>>2]|0)){v=15;break}c[h>>2]=0;r[d>>2]=0;while(1){if((r[d>>2]|0)>=(r[l>>2]|0))break;c[h>>2]=+c[h>>2]+ +c[(r[f>>2]|0)+(r[d>>2]<<2)>>2]*+c[(r[o>>2]|0)+((r[l>>2]|0)-(r[d>>2]|0)<<2)>>2];r[d>>2]=(r[d>>2]|0)+1}c[h>>2]=+c[h>>2]+ +c[(r[o>>2]|0)+((r[l>>2]|0)+1<<2)>>2];c[u>>2]=-(+c[h>>2]/+c[p>>2]);c[(r[f>>2]|0)+(r[l>>2]<<2)>>2]=+c[u>>2];r[d>>2]=0;while(1){if((r[d>>2]|0)>=((r[l>>2]|0)+1>>1|0))break;c[g>>2]=+c[(r[f>>2]|0)+(r[d>>2]<<2)>>2];c[_>>2]=+c[(r[f>>2]|0)+((r[l>>2]|0)-1-(r[d>>2]|0)<<2)>>2];c[(r[f>>2]|0)+(r[d>>2]<<2)>>2]=+c[g>>2]+ +c[u>>2]*+c[_>>2];c[(r[f>>2]|0)+((r[l>>2]|0)-1-(r[d>>2]|0)<<2)>>2]=+c[_>>2]+ +c[u>>2]*+c[g>>2];r[d>>2]=(r[d>>2]|0)+1}c[p>>2]=+c[p>>2]-+c[u>>2]*+c[u>>2]*+c[p>>2];if(+c[p>>2]<+c[r[o>>2]>>2]*.0010000000474974513){v=15;break}r[l>>2]=(r[l>>2]|0)+1}if((v|0)==15){m=i;return}}function zt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0;o=m;m=m+80|0;s=o+64|0;l=o+60|0;d=o+56|0;u=o+52|0;p=o+48|0;f=o+44|0;h=o+40|0;g=o+36|0;_=o+32|0;v=o+28|0;y=o+24|0;b=o+20|0;w=o+16|0;k=o+12|0;M=o+8|0;S=o+4|0;A=o;r[s>>2]=e;r[l>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=a;c[h>>2]=+c[r[l>>2]>>2];c[g>>2]=+c[(r[l>>2]|0)+4>>2];c[_>>2]=+c[(r[l>>2]|0)+8>>2];c[v>>2]=+c[(r[l>>2]|0)+12>>2];c[y>>2]=+c[(r[l>>2]|0)+16>>2];c[b>>2]=+c[r[p>>2]>>2];c[w>>2]=+c[(r[p>>2]|0)+4>>2];c[k>>2]=+c[(r[p>>2]|0)+8>>2];c[M>>2]=+c[(r[p>>2]|0)+12>>2];c[S>>2]=+c[(r[p>>2]|0)+16>>2];r[f>>2]=0;while(1){if((r[f>>2]|0)>=(r[u>>2]|0))break;c[A>>2]=+c[(r[s>>2]|0)+(r[f>>2]<<2)>>2];c[A>>2]=+c[A>>2]+ +c[h>>2]*+c[b>>2];c[A>>2]=+c[A>>2]+ +c[g>>2]*+c[w>>2];c[A>>2]=+c[A>>2]+ +c[_>>2]*+c[k>>2];c[A>>2]=+c[A>>2]+ +c[v>>2]*+c[M>>2];c[A>>2]=+c[A>>2]+ +c[y>>2]*+c[S>>2];c[S>>2]=+c[M>>2];c[M>>2]=+c[k>>2];c[k>>2]=+c[w>>2];c[w>>2]=+c[b>>2];c[b>>2]=+c[(r[s>>2]|0)+(r[f>>2]<<2)>>2];c[(r[d>>2]|0)+(r[f>>2]<<2)>>2]=+c[A>>2];r[f>>2]=(r[f>>2]|0)+1}c[r[p>>2]>>2]=+c[b>>2];c[(r[p>>2]|0)+4>>2]=+c[w>>2];c[(r[p>>2]|0)+8>>2]=+c[k>>2];c[(r[p>>2]|0)+12>>2]=+c[M>>2];c[(r[p>>2]|0)+16>>2]=+c[S>>2];m=o;return}function Wt(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;r[i>>2]=Ct(48e3,960,0)|0;e=Gt(r[i>>2]|0,r[n>>2]|0)|0;m=t;return e|0}function Gt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[i>>2]=e;r[a>>2]=t;t=88+((W(r[a>>2]|0,2048+(r[(r[i>>2]|0)+4>>2]|0)|0)|0)-1<<2)|0;r[o>>2]=t+((r[a>>2]|0)*24<<2)+(r[(r[i>>2]|0)+8>>2]<<3<<2);m=n;return r[o>>2]|0}function Kt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;n=r[o>>2]|0;t=Ct(48e3,960,0)|0;r[c>>2]=Yt(n,t,r[l>>2]|0)|0;if(r[c>>2]|0){r[a>>2]=r[c>>2];d=r[a>>2]|0;m=i;return d|0}c=kt(r[s>>2]|0)|0;r[(r[o>>2]|0)+16>>2]=c;if(!(r[(r[o>>2]|0)+16>>2]|0)){r[a>>2]=-1;d=r[a>>2]|0;m=i;return d|0}else{r[a>>2]=0;d=r[a>>2]|0;m=i;return d|0}return 0}function Yt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;if((r[l>>2]|0)<0|(r[l>>2]|0)>2){r[a>>2]=-1;c=r[a>>2]|0;m=i;return c|0}if(!(r[o>>2]|0)){r[a>>2]=-7;c=r[a>>2]|0;m=i;return c|0}else{n=r[o>>2]|0;Na(n|0,0,Gt(r[s>>2]|0,r[l>>2]|0)|0)|0;r[r[o>>2]>>2]=r[s>>2];r[(r[o>>2]|0)+4>>2]=r[(r[s>>2]|0)+4>>2];s=r[l>>2]|0;r[(r[o>>2]|0)+8>>2]=s;r[(r[o>>2]|0)+12>>2]=s;r[(r[o>>2]|0)+16>>2]=1;r[(r[o>>2]|0)+20>>2]=0;r[(r[o>>2]|0)+24>>2]=r[(r[r[o>>2]>>2]|0)+12>>2];r[(r[o>>2]|0)+28>>2]=1;s=Xt()|0;r[(r[o>>2]|0)+32>>2]=s;r[(r[o>>2]|0)+48>>2]=0;Jt(r[o>>2]|0,4028,i)|0;r[a>>2]=0;c=r[a>>2]|0;m=i;return c|0}return 0}function Xt(){return 0}function Jt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0;i=m;m=m+128|0;a=i+120|0;o=i+116|0;s=i+112|0;l=i+96|0;d=i+88|0;u=i+84|0;p=i+80|0;f=i+76|0;h=i+72|0;g=i+68|0;_=i+64|0;v=i+60|0;y=i+56|0;b=i+52|0;w=i+48|0;k=i+44|0;M=i+40|0;S=i+36|0;A=i+32|0;C=i+28|0;T=i+24|0;E=i+20|0;$=i+16|0;I=i+12|0;x=i+8|0;P=i+4|0;D=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;e:do switch(r[s>>2]|0){case 10010:{n=(r[l>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[l>>2]=n+4;r[u>>2]=t;r[d>>2]=r[u>>2];if((r[d>>2]|0)>=0?(r[d>>2]|0)<(r[(r[r[o>>2]>>2]|0)+8>>2]|0):0){r[(r[o>>2]|0)+20>>2]=r[d>>2];R=24}else R=25;break}case 10012:{t=(r[l>>2]|0)+(4-1)&~(4-1);n=r[t>>2]|0;r[l>>2]=t+4;r[f>>2]=n;r[p>>2]=r[f>>2];if((r[p>>2]|0)>=1?(r[p>>2]|0)<=(r[(r[r[o>>2]>>2]|0)+8>>2]|0):0){r[(r[o>>2]|0)+24>>2]=r[p>>2];R=24}else R=25;break}case 10008:{n=(r[l>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[l>>2]=n+4;r[g>>2]=t;r[h>>2]=r[g>>2];if((r[h>>2]|0)<1|(r[h>>2]|0)>2)R=25;else{r[(r[o>>2]|0)+12>>2]=r[h>>2];R=24}break}case 10007:{t=(r[l>>2]|0)+(4-1)&~(4-1);n=r[t>>2]|0;r[l>>2]=t+4;r[v>>2]=n;r[_>>2]=r[v>>2];if(!(r[_>>2]|0))R=25;else{r[r[_>>2]>>2]=r[(r[o>>2]|0)+40>>2];r[(r[o>>2]|0)+40>>2]=0;R=24}break}case 4027:{n=(r[l>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[l>>2]=n+4;r[b>>2]=t;r[y>>2]=r[b>>2];if(!(r[y>>2]|0))R=25;else{r[r[y>>2]>>2]=(r[(r[o>>2]|0)+4>>2]|0)/(r[(r[o>>2]|0)+16>>2]|0)|0;R=24}break}case 4028:{r[k>>2]=(r[o>>2]|0)+84+((W(2048+(r[(r[o>>2]|0)+4>>2]|0)|0,r[(r[o>>2]|0)+8>>2]|0)|0)<<2);r[M>>2]=(r[k>>2]|0)+((r[(r[o>>2]|0)+8>>2]|0)*24<<2);r[S>>2]=(r[M>>2]|0)+(r[(r[r[o>>2]>>2]|0)+8>>2]<<1<<2);r[A>>2]=(r[S>>2]|0)+(r[(r[r[o>>2]>>2]|0)+8>>2]<<1<<2);Na((r[o>>2]|0)+36|0,0,(Gt(r[r[o>>2]>>2]|0,r[(r[o>>2]|0)+8>>2]|0)|0)-((r[o>>2]|0)+36-(r[o>>2]|0))|0)|0;r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[(r[r[o>>2]>>2]|0)+8>>2]<<1|0)){R=24;break e}c[(r[A>>2]|0)+(r[w>>2]<<2)>>2]=-28;c[(r[S>>2]|0)+(r[w>>2]<<2)>>2]=-28;r[w>>2]=(r[w>>2]|0)+1}break}case 4033:{t=(r[l>>2]|0)+(4-1)&~(4-1);n=r[t>>2]|0;r[l>>2]=t+4;r[T>>2]=n;r[C>>2]=r[T>>2];if(!(r[C>>2]|0))R=25;else{r[r[C>>2]>>2]=r[(r[o>>2]|0)+52>>2];R=24}break}case 10015:{n=(r[l>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[l>>2]=n+4;r[$>>2]=t;r[E>>2]=r[$>>2];if(!(r[E>>2]|0))R=25;else{r[r[E>>2]>>2]=r[r[o>>2]>>2];R=24}break}case 10016:{t=(r[l>>2]|0)+(4-1)&~(4-1);n=r[t>>2]|0;r[l>>2]=t+4;r[x>>2]=n;r[I>>2]=r[x>>2];r[(r[o>>2]|0)+28>>2]=r[I>>2];R=24;break}case 4031:{n=(r[l>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[l>>2]=n+4;r[D>>2]=t;r[P>>2]=r[D>>2];if(!(r[P>>2]|0))R=25;else{r[r[P>>2]>>2]=r[(r[o>>2]|0)+36>>2];R=24}break}default:{r[a>>2]=-5;O=r[a>>2]|0;m=i;return O|0}}while(0);if((R|0)==24){r[a>>2]=0;O=r[a>>2]|0;m=i;return O|0}else if((R|0)==25){r[a>>2]=-1;O=r[a>>2]|0;m=i;return O|0}return 0}function Zt(e,t,n,i,o,s,l){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;s=s|0;l=l|0;var d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,se=0,le=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,we=0,ke=0,Me=0,Se=0,Te=0,Ee=0,$e=0,Ie=0,xe=0;d=m;m=m+288|0;u=d+280|0;p=d+276|0;f=d+272|0;h=d+268|0;g=d+264|0;_=d+260|0;v=d+256|0;y=d+252|0;b=d+248|0;w=d+244|0;k=d+240|0;M=d+236|0;S=d+232|0;A=d+184|0;C=d+176|0;T=d+168|0;E=d+164|0;$=d+160|0;I=d+156|0;x=d+152|0;P=d+148|0;D=d+144|0;R=d+140|0;O=d+136|0;N=d+132|0;L=d+128|0;F=d+124|0;U=d+120|0;B=d+116|0;H=d+112|0;j=d+108|0;V=d+104|0;q=d+100|0;z=d+96|0;G=d+92|0;K=d+88|0;Y=d+84|0;X=d+80|0;J=d+76|0;Z=d+72|0;Q=d+68|0;ee=d+64|0;te=d+60|0;ne=d+56|0;ie=d+52|0;ae=d+48|0;re=d+44|0;se=d+40|0;le=d+36|0;de=d+32|0;ue=d+28|0;pe=d+24|0;fe=d+20|0;me=d+16|0;he=d+12|0;ge=d+8|0;_e=d+4|0;ve=d;r[p>>2]=e;r[f>>2]=t;r[h>>2]=n;r[g>>2]=i;r[_>>2]=o;r[v>>2]=s;r[y>>2]=l;r[N>>2]=r[(r[p>>2]|0)+8>>2];r[G>>2]=0;r[K>>2]=0;r[te>>2]=0;r[ie>>2]=r[(r[p>>2]|0)+12>>2];r[ae>>2]=r[r[p>>2]>>2];r[re>>2]=r[(r[ae>>2]|0)+8>>2];r[se>>2]=r[(r[ae>>2]|0)+4>>2];r[le>>2]=r[(r[ae>>2]|0)+32>>2];r[U>>2]=r[(r[p>>2]|0)+20>>2];r[B>>2]=r[(r[p>>2]|0)+24>>2];r[_>>2]=W(r[_>>2]|0,r[(r[p>>2]|0)+16>>2]|0)|0;r[E>>2]=(r[p>>2]|0)+84+((W(2048+(r[se>>2]|0)|0,r[N>>2]|0)|0)<<2);r[$>>2]=(r[E>>2]|0)+((r[N>>2]|0)*24<<2);r[I>>2]=(r[$>>2]|0)+(r[re>>2]<<1<<2);r[x>>2]=(r[I>>2]|0)+(r[re>>2]<<1<<2);r[P>>2]=(r[x>>2]|0)+(r[re>>2]<<1<<2);r[L>>2]=0;while(1){if((r[L>>2]|0)>(r[(r[ae>>2]|0)+36>>2]|0))break;if((r[(r[ae>>2]|0)+44>>2]<<r[L>>2]|0)==(r[_>>2]|0))break;r[L>>2]=(r[L>>2]|0)+1}if((r[L>>2]|0)>(r[(r[ae>>2]|0)+36>>2]|0)){r[u>>2]=-1;ye=r[u>>2]|0;m=d;return ye|0}r[F>>2]=1<<r[L>>2];if((r[h>>2]|0)<0|(r[h>>2]|0)>1275|(r[g>>2]|0)==0){r[u>>2]=-1;ye=r[u>>2]|0;m=d;return ye|0}r[k>>2]=W(r[F>>2]|0,r[(r[ae>>2]|0)+44>>2]|0)|0;r[b>>2]=0;do{E=(r[p>>2]|0)+84+((W(r[b>>2]|0,2048+(r[se>>2]|0)|0)|0)<<2)|0;r[C+(r[b>>2]<<2)>>2]=E;r[T+(r[b>>2]<<2)>>2]=(r[C+(r[b>>2]<<2)>>2]|0)+8192+(0-(r[k>>2]|0)<<2);E=(r[b>>2]|0)+1|0;r[b>>2]=E}while((E|0)<(r[N>>2]|0));r[H>>2]=r[B>>2];if((r[H>>2]|0)>(r[(r[ae>>2]|0)+12>>2]|0))r[H>>2]=r[(r[ae>>2]|0)+12>>2];if((r[f>>2]|0)==0|(r[h>>2]|0)<=1){Qt(r[p>>2]|0,r[k>>2]|0,r[L>>2]|0);en(T,r[g>>2]|0,r[k>>2]|0,r[N>>2]|0,r[(r[p>>2]|0)+16>>2]|0,(r[ae>>2]|0)+16|0,(r[p>>2]|0)+76|0,r[y>>2]|0);r[u>>2]=(r[_>>2]|0)/(r[(r[p>>2]|0)+16>>2]|0)|0;ye=r[u>>2]|0;m=d;return ye|0}if(!(r[v>>2]|0)){tn(A,r[f>>2]|0,r[h>>2]|0);r[v>>2]=A}e:do if((r[ie>>2]|0)==1){r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[re>>2]|0))break e;if(+c[(r[$>>2]|0)+(r[w>>2]<<2)>>2]>+c[(r[$>>2]|0)+((r[re>>2]|0)+(r[w>>2]|0)<<2)>>2])we=r[w>>2]|0;else we=(r[re>>2]|0)+(r[w>>2]|0)|0;c[(r[$>>2]|0)+(r[w>>2]<<2)>>2]=+c[(r[$>>2]|0)+(we<<2)>>2];r[w>>2]=(r[w>>2]|0)+1}}while(0);r[Y>>2]=r[h>>2]<<3;r[J>>2]=nn(r[v>>2]|0)|0;do if((r[J>>2]|0)<(r[Y>>2]|0))if((r[J>>2]|0)==1){r[ne>>2]=Ye(r[v>>2]|0,15)|0;break}else{r[ne>>2]=0;break}else r[ne>>2]=1;while(0);if(r[ne>>2]|0){r[J>>2]=r[h>>2]<<3;we=r[J>>2]|0;A=we-(nn(r[v>>2]|0)|0)|0;we=(r[v>>2]|0)+20|0;r[we>>2]=(r[we>>2]|0)+A}c[z>>2]=0;
r[q>>2]=0;r[Q>>2]=0;if((r[U>>2]|0)==0?((r[J>>2]|0)+16|0)<=(r[Y>>2]|0):0){if(Ye(r[v>>2]|0,1)|0){r[ue>>2]=qe(r[v>>2]|0,6)|0;A=16<<r[ue>>2];r[q>>2]=A+(De(r[v>>2]|0,4+(r[ue>>2]|0)|0)|0)-1;r[de>>2]=De(r[v>>2]|0,3)|0;ue=(nn(r[v>>2]|0)|0)+2|0;if((ue|0)<=(r[Y>>2]|0))r[Q>>2]=an(r[v>>2]|0,25134,2)|0;c[z>>2]=+((r[de>>2]|0)+1|0)*.09375}r[J>>2]=nn(r[v>>2]|0)|0}if((r[L>>2]|0)>0?((r[J>>2]|0)+3|0)<=(r[Y>>2]|0):0){r[R>>2]=Ye(r[v>>2]|0,3)|0;r[J>>2]=nn(r[v>>2]|0)|0}else r[R>>2]=0;if(r[R>>2]|0)r[D>>2]=r[F>>2];else r[D>>2]=0;if(((r[J>>2]|0)+3|0)<=(r[Y>>2]|0))ke=Ye(r[v>>2]|0,3)|0;else ke=0;r[O>>2]=ke;rn(r[ae>>2]|0,r[U>>2]|0,r[B>>2]|0,r[$>>2]|0,r[O>>2]|0,r[v>>2]|0,r[ie>>2]|0,r[L>>2]|0);O=r[re>>2]|0;r[pe>>2]=oe()|0;ke=m;m=m+((1*(O<<2)|0)+15&-16)|0;on(r[U>>2]|0,r[B>>2]|0,r[R>>2]|0,ke,r[L>>2]|0,r[v>>2]|0);r[J>>2]=nn(r[v>>2]|0)|0;r[M>>2]=2;if(((r[J>>2]|0)+4|0)<=(r[Y>>2]|0))r[M>>2]=an(r[v>>2]|0,25137,5)|0;O=m;m=m+((1*(r[re>>2]<<2)|0)+15&-16)|0;At(r[ae>>2]|0,O,r[L>>2]|0,r[ie>>2]|0);de=m;m=m+((1*(r[re>>2]<<2)|0)+15&-16)|0;r[Z>>2]=6;r[Y>>2]=r[Y>>2]<<3;r[J>>2]=Ce(r[v>>2]|0)|0;r[w>>2]=r[U>>2];while(1){if((r[w>>2]|0)>=(r[B>>2]|0))break;ue=W(r[ie>>2]|0,(a[(r[le>>2]|0)+((r[w>>2]|0)+1<<1)>>1]|0)-(a[(r[le>>2]|0)+(r[w>>2]<<1)>>1]|0)|0)|0;r[fe>>2]=ue<<r[L>>2];ue=r[fe>>2]|0;if((r[fe>>2]<<3|0)<((48>(r[fe>>2]|0)?48:r[fe>>2]|0)|0))Me=ue<<3;else Me=48>(ue|0)?48:r[fe>>2]|0;r[me>>2]=Me;r[he>>2]=r[Z>>2];r[ge>>2]=0;while(1){if(((r[J>>2]|0)+(r[he>>2]<<3)|0)>=(r[Y>>2]|0))break;if((r[ge>>2]|0)>=(r[O+(r[w>>2]<<2)>>2]|0))break;r[_e>>2]=Ye(r[v>>2]|0,r[he>>2]|0)|0;r[J>>2]=Ce(r[v>>2]|0)|0;if(!(r[_e>>2]|0))break;r[ge>>2]=(r[ge>>2]|0)+(r[me>>2]|0);r[Y>>2]=(r[Y>>2]|0)-(r[me>>2]|0);r[he>>2]=1}r[de+(r[w>>2]<<2)>>2]=r[ge>>2];if((r[ge>>2]|0)>0)r[Z>>2]=2>((r[Z>>2]|0)-1|0)?2:(r[Z>>2]|0)-1|0;r[w>>2]=(r[w>>2]|0)+1}Z=m;m=m+((1*(r[re>>2]<<2)|0)+15&-16)|0;if(((r[J>>2]|0)+48|0)<=(r[Y>>2]|0))Se=an(r[v>>2]|0,25141,7)|0;else Se=5;r[V>>2]=Se;Se=r[h>>2]<<3<<3;r[S>>2]=Se-(Ce(r[v>>2]|0)|0)-1;if((r[R>>2]|0)!=0&(r[L>>2]|0)>=2)Te=(r[S>>2]|0)>=((r[L>>2]|0)+2<<3|0);else Te=0;r[ee>>2]=Te?8:0;r[S>>2]=(r[S>>2]|0)-(r[ee>>2]|0);Te=m;m=m+((1*(r[re>>2]<<2)|0)+15&-16)|0;Se=m;m=m+((1*(r[re>>2]<<2)|0)+15&-16)|0;r[j>>2]=Tt(r[ae>>2]|0,r[U>>2]|0,r[B>>2]|0,de,O,r[V>>2]|0,G,K,r[S>>2]|0,X,Te,Z,Se,r[ie>>2]|0,r[L>>2]|0,r[v>>2]|0,0,0,0)|0;sn(r[ae>>2]|0,r[U>>2]|0,r[B>>2]|0,r[$>>2]|0,Z,r[v>>2]|0,r[ie>>2]|0);r[b>>2]=0;do{Ba(r[C+(r[b>>2]<<2)>>2]|0,(r[C+(r[b>>2]<<2)>>2]|0)+(r[k>>2]<<2)|0,(2048-(r[k>>2]|0)+((r[se>>2]|0)/2|0)<<2)+0|0)|0;S=(r[b>>2]|0)+1|0;r[b>>2]=S}while((S|0)<(r[N>>2]|0));C=W(r[ie>>2]|0,r[re>>2]|0)|0;S=m;m=m+((1*C|0)+15&-16)|0;C=(W(r[ie>>2]|0,r[k>>2]|0)|0)<<2;V=m;m=m+((1*C|0)+15&-16)|0;Ae(0,r[ae>>2]|0,r[U>>2]|0,r[B>>2]|0,V,(r[ie>>2]|0)==2?V+(r[k>>2]<<2)|0:0,S,0,Te,r[D>>2]|0,r[M>>2]|0,r[K>>2]|0,r[G>>2]|0,ke,(r[h>>2]<<6)-(r[ee>>2]|0)|0,r[X>>2]|0,r[v>>2]|0,r[L>>2]|0,r[j>>2]|0,(r[p>>2]|0)+36|0);if((r[ee>>2]|0)>0)r[te>>2]=De(r[v>>2]|0,1)|0;ee=r[ae>>2]|0;j=r[U>>2]|0;X=r[B>>2]|0;ke=r[$>>2]|0;G=r[h>>2]<<3;K=G-(nn(r[v>>2]|0)|0)|0;ln(ee,j,X,ke,Z,Se,K,r[v>>2]|0,r[ie>>2]|0);if(r[te>>2]|0)be(r[ae>>2]|0,V,S,r[L>>2]|0,r[ie>>2]|0,r[k>>2]|0,r[U>>2]|0,r[B>>2]|0,r[$>>2]|0,r[I>>2]|0,r[x>>2]|0,Te,r[(r[p>>2]|0)+36>>2]|0);e:do if(r[ne>>2]|0){r[w>>2]=0;while(1){if((r[w>>2]|0)>=(W(r[ie>>2]|0,r[re>>2]|0)|0))break e;c[(r[$>>2]|0)+(r[w>>2]<<2)>>2]=-28;r[w>>2]=(r[w>>2]|0)+1}}while(0);cn(r[ae>>2]|0,V,T,r[$>>2]|0,r[U>>2]|0,r[H>>2]|0,r[ie>>2]|0,r[N>>2]|0,r[R>>2]|0,r[L>>2]|0,r[(r[p>>2]|0)+16>>2]|0,r[ne>>2]|0);r[b>>2]=0;do{if((r[(r[p>>2]|0)+52>>2]|0)>15)Ee=r[(r[p>>2]|0)+52>>2]|0;else Ee=15;r[(r[p>>2]|0)+52>>2]=Ee;if((r[(r[p>>2]|0)+56>>2]|0)>15)$e=r[(r[p>>2]|0)+56>>2]|0;else $e=15;r[(r[p>>2]|0)+56>>2]=$e;Mt(r[T+(r[b>>2]<<2)>>2]|0,r[T+(r[b>>2]<<2)>>2]|0,r[(r[p>>2]|0)+56>>2]|0,r[(r[p>>2]|0)+52>>2]|0,r[(r[ae>>2]|0)+44>>2]|0,+c[(r[p>>2]|0)+64>>2],+c[(r[p>>2]|0)+60>>2],r[(r[p>>2]|0)+72>>2]|0,r[(r[p>>2]|0)+68>>2]|0,r[(r[ae>>2]|0)+60>>2]|0,r[se>>2]|0);if(r[L>>2]|0)Mt((r[T+(r[b>>2]<<2)>>2]|0)+(r[(r[ae>>2]|0)+44>>2]<<2)|0,(r[T+(r[b>>2]<<2)>>2]|0)+(r[(r[ae>>2]|0)+44>>2]<<2)|0,r[(r[p>>2]|0)+52>>2]|0,r[q>>2]|0,(r[k>>2]|0)-(r[(r[ae>>2]|0)+44>>2]|0)|0,+c[(r[p>>2]|0)+60>>2],+c[z>>2],r[(r[p>>2]|0)+68>>2]|0,r[Q>>2]|0,r[(r[ae>>2]|0)+60>>2]|0,r[se>>2]|0);ne=(r[b>>2]|0)+1|0;r[b>>2]=ne}while((ne|0)<(r[N>>2]|0));r[(r[p>>2]|0)+56>>2]=r[(r[p>>2]|0)+52>>2];c[(r[p>>2]|0)+64>>2]=+c[(r[p>>2]|0)+60>>2];r[(r[p>>2]|0)+72>>2]=r[(r[p>>2]|0)+68>>2];r[(r[p>>2]|0)+52>>2]=r[q>>2];c[(r[p>>2]|0)+60>>2]=+c[z>>2];r[(r[p>>2]|0)+68>>2]=r[Q>>2];if(r[L>>2]|0){r[(r[p>>2]|0)+56>>2]=r[(r[p>>2]|0)+52>>2];c[(r[p>>2]|0)+64>>2]=+c[(r[p>>2]|0)+60>>2];r[(r[p>>2]|0)+72>>2]=r[(r[p>>2]|0)+68>>2]}if((r[ie>>2]|0)==1)La((r[$>>2]|0)+(r[re>>2]<<2)|0,r[$>>2]|0,(r[re>>2]<<2)+0|0)|0;e:do if(r[R>>2]|0){r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[re>>2]<<1|0))break e;if(+c[(r[I>>2]|0)+(r[w>>2]<<2)>>2]<+c[(r[$>>2]|0)+(r[w>>2]<<2)>>2])Ie=(r[I>>2]|0)+(r[w>>2]<<2)|0;else Ie=(r[$>>2]|0)+(r[w>>2]<<2)|0;c[(r[I>>2]|0)+(r[w>>2]<<2)>>2]=+c[Ie>>2];r[w>>2]=(r[w>>2]|0)+1}}else{La(r[x>>2]|0,r[I>>2]|0,(r[re>>2]<<1<<2)+0|0)|0;La(r[I>>2]|0,r[$>>2]|0,(r[re>>2]<<1<<2)+0|0)|0;r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[re>>2]<<1|0))break e;if(+c[(r[P>>2]|0)+(r[w>>2]<<2)>>2]+ +(r[F>>2]|0)*.0010000000474974513<+c[(r[$>>2]|0)+(r[w>>2]<<2)>>2])xe=+c[(r[P>>2]|0)+(r[w>>2]<<2)>>2]+ +(r[F>>2]|0)*.0010000000474974513;else xe=+c[(r[$>>2]|0)+(r[w>>2]<<2)>>2];c[(r[P>>2]|0)+(r[w>>2]<<2)>>2]=xe;r[w>>2]=(r[w>>2]|0)+1}}while(0);r[b>>2]=0;do{r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[U>>2]|0))break;P=W(r[b>>2]|0,r[re>>2]|0)|0;c[(r[$>>2]|0)+(P+(r[w>>2]|0)<<2)>>2]=0;P=W(r[b>>2]|0,r[re>>2]|0)|0;c[(r[x>>2]|0)+(P+(r[w>>2]|0)<<2)>>2]=-28;P=W(r[b>>2]|0,r[re>>2]|0)|0;c[(r[I>>2]|0)+(P+(r[w>>2]|0)<<2)>>2]=-28;r[w>>2]=(r[w>>2]|0)+1}r[w>>2]=r[B>>2];while(1){if((r[w>>2]|0)>=(r[re>>2]|0))break;P=W(r[b>>2]|0,r[re>>2]|0)|0;c[(r[$>>2]|0)+(P+(r[w>>2]|0)<<2)>>2]=0;P=W(r[b>>2]|0,r[re>>2]|0)|0;c[(r[x>>2]|0)+(P+(r[w>>2]|0)<<2)>>2]=-28;P=W(r[b>>2]|0,r[re>>2]|0)|0;c[(r[I>>2]|0)+(P+(r[w>>2]|0)<<2)>>2]=-28;r[w>>2]=(r[w>>2]|0)+1}P=(r[b>>2]|0)+1|0;r[b>>2]=P}while((P|0)<2);r[(r[p>>2]|0)+36>>2]=r[(r[v>>2]|0)+28>>2];en(T,r[g>>2]|0,r[k>>2]|0,r[N>>2]|0,r[(r[p>>2]|0)+16>>2]|0,(r[ae>>2]|0)+16|0,(r[p>>2]|0)+76|0,r[y>>2]|0);r[(r[p>>2]|0)+48>>2]=0;y=nn(r[v>>2]|0)|0;if((y|0)>(r[h>>2]<<3|0)){r[u>>2]=-3;r[ve>>2]=1}else{if(dn(r[v>>2]|0)|0)r[(r[p>>2]|0)+40>>2]=1;r[u>>2]=(r[_>>2]|0)/(r[(r[p>>2]|0)+16>>2]|0)|0;r[ve>>2]=1}ce(r[pe>>2]|0);ye=r[u>>2]|0;m=d;return ye|0}function Qt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,se=0,le=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ye=0;i=m;m=m+4608|0;o=i+4604|0;s=i+4600|0;l=i+4596|0;d=i+4592|0;u=i+4588|0;p=i+4584|0;f=i+4576|0;h=i+4568|0;g=i+4560|0;_=i+4556|0;v=i+4552|0;y=i+4548|0;b=i+4544|0;w=i+4540|0;k=i+4536|0;M=i+4532|0;S=i+4528|0;A=i+4524|0;C=i+4520|0;T=i+4516|0;E=i+4512|0;$=i+4508|0;I=i+4504|0;x=i+4500|0;P=i+4496|0;D=i+4492|0;O=i+4488|0;N=i+4484|0;L=i+4480|0;F=i+4476|0;U=i+4472|0;B=i+4468|0;H=i+4464|0;j=i+368|0;V=i+360|0;q=i+356|0;z=i+352|0;G=i+348|0;K=i+344|0;Y=i+340|0;X=i+336|0;J=i+332|0;Z=i+232|0;Q=i+136|0;ee=i+128|0;te=i+124|0;ne=i+120|0;ie=i+116|0;ae=i+112|0;re=i+16|0;se=i+12|0;le=i+8|0;de=i+4|0;ue=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[p>>2]=r[(r[o>>2]|0)+8>>2];r[w>>2]=r[r[o>>2]>>2];r[k>>2]=r[(r[w>>2]|0)+8>>2];r[M>>2]=r[(r[w>>2]|0)+4>>2];r[T>>2]=r[(r[w>>2]|0)+32>>2];r[d>>2]=0;do{n=(r[o>>2]|0)+84+((W(r[d>>2]|0,2048+(r[M>>2]|0)|0)|0)<<2)|0;r[f+(r[d>>2]<<2)>>2]=n;r[h+(r[d>>2]<<2)>>2]=(r[f+(r[d>>2]<<2)>>2]|0)+8192+(0-(r[s>>2]|0)<<2);n=(r[d>>2]|0)+1|0;r[d>>2]=n}while((n|0)<(r[p>>2]|0));r[g>>2]=(r[o>>2]|0)+84+((W(2048+(r[M>>2]|0)|0,r[p>>2]|0)|0)<<2);r[_>>2]=(r[g>>2]|0)+((r[p>>2]|0)*24<<2);r[v>>2]=(r[_>>2]|0)+(r[k>>2]<<1<<2);r[y>>2]=(r[v>>2]|0)+(r[k>>2]<<1<<2);r[b>>2]=(r[y>>2]|0)+(r[k>>2]<<1<<2);r[A>>2]=r[(r[o>>2]|0)+48>>2];r[S>>2]=r[(r[o>>2]|0)+20>>2];r[C>>2]=((r[A>>2]|0)>=5?1:(r[S>>2]|0)!=0)&1;if(r[C>>2]|0){r[I>>2]=r[(r[o>>2]|0)+24>>2];if((r[I>>2]|0)<(r[(r[w>>2]|0)+12>>2]|0))pe=r[I>>2]|0;else pe=r[(r[w>>2]|0)+12>>2]|0;do if((r[S>>2]|0)<=(pe|0))if((r[I>>2]|0)<(r[(r[w>>2]|0)+12>>2]|0)){fe=r[I>>2]|0;break}else{fe=r[(r[w>>2]|0)+12>>2]|0;break}else fe=r[S>>2]|0;while(0);r[x>>2]=fe;fe=W(r[p>>2]|0,r[s>>2]|0)|0;r[P>>2]=oe()|0;pe=m;m=m+((1*(fe<<2)|0)+15&-16)|0;if((r[A>>2]|0)>=5)r[$>>2]=r[b>>2];else{c[D>>2]=(r[A>>2]|0)==0?1.5:.5;r[d>>2]=0;do{r[u>>2]=r[S>>2];while(1){if((r[u>>2]|0)>=(r[I>>2]|0))break;b=W(r[d>>2]|0,r[k>>2]|0)|0;fe=(r[_>>2]|0)+(b+(r[u>>2]|0)<<2)|0;c[fe>>2]=+c[fe>>2]-+c[D>>2];r[u>>2]=(r[u>>2]|0)+1}fe=(r[d>>2]|0)+1|0;r[d>>2]=fe}while((fe|0)<(r[p>>2]|0));r[$>>2]=r[_>>2]}r[E>>2]=r[(r[o>>2]|0)+36>>2];r[d>>2]=0;while(1){if((r[d>>2]|0)>=(r[p>>2]|0))break;r[u>>2]=r[S>>2];while(1){if((r[u>>2]|0)>=(r[x>>2]|0))break;_=W(r[s>>2]|0,r[d>>2]|0)|0;r[N>>2]=_+(a[(r[T>>2]|0)+(r[u>>2]<<1)>>1]<<r[l>>2]);r[L>>2]=(a[(r[T>>2]|0)+((r[u>>2]|0)+1<<1)>>1]|0)-(a[(r[T>>2]|0)+(r[u>>2]<<1)>>1]|0)<<r[l>>2];r[O>>2]=0;while(1){if((r[O>>2]|0)>=(r[L>>2]|0))break;r[E>>2]=ve(r[E>>2]|0)|0;c[pe+((r[N>>2]|0)+(r[O>>2]|0)<<2)>>2]=+(r[E>>2]>>20|0);r[O>>2]=(r[O>>2]|0)+1}ke(pe+(r[N>>2]<<2)|0,r[L>>2]|0,1);r[u>>2]=(r[u>>2]|0)+1}r[d>>2]=(r[d>>2]|0)+1}r[(r[o>>2]|0)+36>>2]=r[E>>2];r[d>>2]=0;do{Ba(r[f+(r[d>>2]<<2)>>2]|0,(r[f+(r[d>>2]<<2)>>2]|0)+(r[s>>2]<<2)|0,(2048-(r[s>>2]|0)+(r[M>>2]>>1)<<2)+0|0)|0;E=(r[d>>2]|0)+1|0;r[d>>2]=E}while((E|0)<(r[p>>2]|0));cn(r[w>>2]|0,pe,h,r[$>>2]|0,r[S>>2]|0,r[x>>2]|0,r[p>>2]|0,r[p>>2]|0,0,r[l>>2]|0,r[(r[o>>2]|0)+16>>2]|0,0);ce(r[P>>2]|0);me=r[A>>2]|0;he=me+1|0;ge=r[o>>2]|0;_e=ge+48|0;r[_e>>2]=he;m=i;return}c[U>>2]=1;if(!(r[A>>2]|0)){P=mn(f,r[p>>2]|0,r[(r[o>>2]|0)+32>>2]|0)|0;r[B>>2]=P;r[(r[o>>2]|0)+44>>2]=P}else{r[B>>2]=r[(r[o>>2]|0)+44>>2];c[U>>2]=.800000011920929}P=r[M>>2]|0;r[H>>2]=oe()|0;l=m;m=m+((1*(P<<2)|0)+15&-16)|0;r[F>>2]=r[(r[w>>2]|0)+60>>2];r[d>>2]=0;do{c[z>>2]=0;r[G>>2]=r[f+(r[d>>2]<<2)>>2];r[u>>2]=0;while(1){if((r[u>>2]|0)>=1024)break;c[j+(r[u>>2]<<2)>>2]=+c[(r[G>>2]|0)+(1024+(r[u>>2]|0)<<2)>>2];r[u>>2]=(r[u>>2]|0)+1}if(!(r[A>>2]|0)){Vt(j,Z,r[F>>2]|0,r[M>>2]|0,24,1024,r[(r[o>>2]|0)+32>>2]|0)|0;c[Z>>2]=+c[Z>>2]*1.000100016593933;r[u>>2]=1;while(1){if((r[u>>2]|0)>24)break;w=Z+(r[u>>2]<<2)|0;c[w>>2]=+c[w>>2]-+c[Z+(r[u>>2]<<2)>>2]*6400000711437315e-20*+(r[u>>2]|0)*+(r[u>>2]|0);r[u>>2]=(r[u>>2]|0)+1}qt((r[g>>2]|0)+((r[d>>2]|0)*24<<2)|0,Z,24)}r[X>>2]=(r[B>>2]<<1|0)<1024?r[B>>2]<<1:1024;r[u>>2]=0;while(1){if((r[u>>2]|0)>=24)break;c[Q+(r[u>>2]<<2)>>2]=+c[(r[G>>2]|0)+(2048-(r[X>>2]|0)-1-(r[u>>2]|0)<<2)>>2];r[u>>2]=(r[u>>2]|0)+1}hn(j+4096+(0-(r[X>>2]|0)<<2)|0,(r[g>>2]|0)+((r[d>>2]|0)*24<<2)|0,j+4096+(0-(r[X>>2]|0)<<2)|0,r[X>>2]|0,24,Q);c[ee>>2]=1;c[te>>2]=1;r[ne>>2]=r[X>>2]>>1;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[ne>>2]|0))break;c[ie>>2]=+c[j+(1024-(r[ne>>2]|0)+(r[u>>2]|0)<<2)>>2];c[ee>>2]=+c[ee>>2]+ +c[ie>>2]*+c[ie>>2];c[ie>>2]=+c[j+(1024-(r[ne>>2]<<1)+(r[u>>2]|0)<<2)>>2];c[te>>2]=+c[te>>2]+ +c[ie>>2]*+c[ie>>2];r[u>>2]=(r[u>>2]|0)+1}c[ee>>2]=+c[ee>>2]<+c[te>>2]?+c[ee>>2]:+c[te>>2];c[V>>2]=+R(+(+c[ee>>2]/+c[te>>2]));Ba(r[G>>2]|0,(r[G>>2]|0)+(r[s>>2]<<2)|0,(2048-(r[s>>2]|0)<<2)+0|0)|0;r[K>>2]=1024-(r[B>>2]|0);r[Y>>2]=(r[s>>2]|0)+(r[M>>2]|0);c[q>>2]=+c[U>>2]*+c[V>>2];r[J>>2]=0;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[Y>>2]|0))break;if((r[J>>2]|0)>=(r[B>>2]|0)){r[J>>2]=(r[J>>2]|0)-(r[B>>2]|0);c[q>>2]=+c[q>>2]*+c[V>>2]}c[(r[G>>2]|0)+(2048-(r[s>>2]|0)+(r[u>>2]|0)<<2)>>2]=+c[q>>2]*+c[j+((r[K>>2]|0)+(r[J>>2]|0)<<2)>>2];c[ae>>2]=+c[(r[G>>2]|0)+(1024-(r[s>>2]|0)+(r[K>>2]|0)+(r[J>>2]|0)<<2)>>2];c[z>>2]=+c[z>>2]+ +c[ae>>2]*+c[ae>>2];r[u>>2]=(r[u>>2]|0)+1;r[J>>2]=(r[J>>2]|0)+1}r[u>>2]=0;while(1){ye=r[G>>2]|0;if((r[u>>2]|0)>=24)break;c[re+(r[u>>2]<<2)>>2]=+c[ye+(2048-(r[s>>2]|0)-1-(r[u>>2]|0)<<2)>>2];r[u>>2]=(r[u>>2]|0)+1}gn(ye+8192+(0-(r[s>>2]|0)<<2)|0,(r[g>>2]|0)+((r[d>>2]|0)*24<<2)|0,(r[G>>2]|0)+8192+(0-(r[s>>2]|0)<<2)|0,r[Y>>2]|0,24,re);c[se>>2]=0;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[Y>>2]|0))break;c[le>>2]=+c[(r[G>>2]|0)+(2048-(r[s>>2]|0)+(r[u>>2]|0)<<2)>>2];c[se>>2]=+c[se>>2]+ +c[le>>2]*+c[le>>2];r[u>>2]=(r[u>>2]|0)+1}e:do if(+c[z>>2]>+c[se>>2]*.20000000298023224){if(+c[z>>2]<+c[se>>2]){c[de>>2]=+R(+((+c[z>>2]+1)/(+c[se>>2]+1)));r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[M>>2]|0))break;c[ue>>2]=1-+c[(r[F>>2]|0)+(r[u>>2]<<2)>>2]*(1-+c[de>>2]);c[(r[G>>2]|0)+(2048-(r[s>>2]|0)+(r[u>>2]|0)<<2)>>2]=+c[ue>>2]*+c[(r[G>>2]|0)+(2048-(r[s>>2]|0)+(r[u>>2]|0)<<2)>>2];r[u>>2]=(r[u>>2]|0)+1}r[u>>2]=r[M>>2];while(1){if((r[u>>2]|0)>=(r[Y>>2]|0))break e;c[(r[G>>2]|0)+(2048-(r[s>>2]|0)+(r[u>>2]|0)<<2)>>2]=+c[de>>2]*+c[(r[G>>2]|0)+(2048-(r[s>>2]|0)+(r[u>>2]|0)<<2)>>2];r[u>>2]=(r[u>>2]|0)+1}}}else{r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[Y>>2]|0))break e;c[(r[G>>2]|0)+(2048-(r[s>>2]|0)+(r[u>>2]|0)<<2)>>2]=0;r[u>>2]=(r[u>>2]|0)+1}}while(0);Mt(l,(r[G>>2]|0)+8192|0,r[(r[o>>2]|0)+52>>2]|0,r[(r[o>>2]|0)+52>>2]|0,r[M>>2]|0,-+c[(r[o>>2]|0)+60>>2],-+c[(r[o>>2]|0)+60>>2],r[(r[o>>2]|0)+68>>2]|0,r[(r[o>>2]|0)+68>>2]|0,0,0);r[u>>2]=0;while(1){if((r[u>>2]|0)>=((r[M>>2]|0)/2|0|0))break;c[(r[G>>2]|0)+(2048+(r[u>>2]|0)<<2)>>2]=+c[(r[F>>2]|0)+(r[u>>2]<<2)>>2]*+c[l+((r[M>>2]|0)-1-(r[u>>2]|0)<<2)>>2]+ +c[(r[F>>2]|0)+((r[M>>2]|0)-(r[u>>2]|0)-1<<2)>>2]*+c[l+(r[u>>2]<<2)>>2];r[u>>2]=(r[u>>2]|0)+1}w=(r[d>>2]|0)+1|0;r[d>>2]=w}while((w|0)<(r[p>>2]|0));ce(r[H>>2]|0);me=r[A>>2]|0;he=me+1|0;ge=r[o>>2]|0;_e=ge+48|0;r[_e>>2]=he;m=i;return}function en(e,t,n,i,a,o,s,l){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;l=l|0;var d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0;d=m;m=m+80|0;u=d+72|0;p=d+68|0;f=d+64|0;h=d+60|0;g=d+56|0;_=d+52|0;v=d+48|0;y=d+40|0;b=d+36|0;w=d+32|0;k=d+28|0;M=d+24|0;S=d+20|0;A=d+16|0;C=d+12|0;T=d+8|0;E=d+4|0;$=d;r[u>>2]=e;r[p>>2]=t;r[f>>2]=n;r[h>>2]=i;r[g>>2]=a;r[_>>2]=o;r[v>>2]=s;r[d+44>>2]=l;r[w>>2]=0;l=r[f>>2]|0;r[M>>2]=oe()|0;s=m;m=m+((1*(l<<2)|0)+15&-16)|0;c[k>>2]=+c[r[_>>2]>>2];r[b>>2]=(r[f>>2]|0)/(r[g>>2]|0)|0;r[y>>2]=0;do{c[T>>2]=+c[(r[v>>2]|0)+(r[y>>2]<<2)>>2];r[A>>2]=r[(r[u>>2]|0)+(r[y>>2]<<2)>>2];r[C>>2]=(r[p>>2]|0)+(r[y>>2]<<2);_=(r[g>>2]|0)>1;r[S>>2]=0;e:do if(_){while(1){if((r[S>>2]|0)>=(r[f>>2]|0))break;c[E>>2]=+c[(r[A>>2]|0)+(r[S>>2]<<2)>>2]+ +c[T>>2]+1.0000000031710769e-30;c[T>>2]=+c[k>>2]*+c[E>>2];c[s+(r[S>>2]<<2)>>2]=+c[E>>2];r[S>>2]=(r[S>>2]|0)+1}r[w>>2]=1}else while(1){if((r[S>>2]|0)>=(r[f>>2]|0))break e;c[$>>2]=+c[(r[A>>2]|0)+(r[S>>2]<<2)>>2]+ +c[T>>2]+1.0000000031710769e-30;c[T>>2]=+c[k>>2]*+c[$>>2];c[(r[C>>2]|0)+((W(r[S>>2]|0,r[h>>2]|0)|0)<<2)>>2]=+c[$>>2]*30517578125e-15;r[S>>2]=(r[S>>2]|0)+1}while(0);c[(r[v>>2]|0)+(r[y>>2]<<2)>>2]=+c[T>>2];e:do if(r[w>>2]|0){r[S>>2]=0;while(1){if((r[S>>2]|0)>=(r[b>>2]|0))break e;I=+c[s+((W(r[S>>2]|0,r[g>>2]|0)|0)<<2)>>2]*30517578125e-15;c[(r[C>>2]|0)+((W(r[S>>2]|0,r[h>>2]|0)|0)<<2)>>2]=I;r[S>>2]=(r[S>>2]|0)+1}}while(0);_=(r[y>>2]|0)+1|0;r[y>>2]=_}while((_|0)<(r[h>>2]|0));ce(r[M>>2]|0);m=d;return}function tn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0;i=m;m=m+16|0;a=i+8|0;o=i+4|0;s=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[r[a>>2]>>2]=r[o>>2];r[(r[a>>2]|0)+4>>2]=r[s>>2];r[(r[a>>2]|0)+8>>2]=0;r[(r[a>>2]|0)+12>>2]=0;r[(r[a>>2]|0)+16>>2]=0;r[(r[a>>2]|0)+20>>2]=9;r[(r[a>>2]|0)+24>>2]=0;r[(r[a>>2]|0)+28>>2]=128;s=Qe(r[a>>2]|0)|0;r[(r[a>>2]|0)+40>>2]=s;r[(r[a>>2]|0)+32>>2]=(r[(r[a>>2]|0)+28>>2]|0)-1-(r[(r[a>>2]|0)+40>>2]>>1);r[(r[a>>2]|0)+44>>2]=0;Ze(r[a>>2]|0);m=i;return}function nn(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;e=(r[(r[n>>2]|0)+20>>2]|0)-(32-(Y(r[(r[n>>2]|0)+28>>2]|0)|0))|0;m=t;return e|0}function an(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;i=m;m=m+32|0;a=i+28|0;s=i+24|0;l=i+20|0;c=i+16|0;d=i+12|0;u=i+8|0;p=i+4|0;f=i;r[a>>2]=e;r[s>>2]=t;r[l>>2]=n;r[u>>2]=r[(r[a>>2]|0)+28>>2];r[d>>2]=r[(r[a>>2]|0)+32>>2];r[c>>2]=(r[u>>2]|0)>>>(r[l>>2]|0);r[f>>2]=-1;do{r[p>>2]=r[u>>2];l=r[c>>2]|0;n=r[s>>2]|0;t=(r[f>>2]|0)+1|0;r[f>>2]=t;r[u>>2]=W(l,o[n+t>>0]|0)|0}while((r[d>>2]|0)>>>0<(r[u>>2]|0)>>>0);r[(r[a>>2]|0)+32>>2]=(r[d>>2]|0)-(r[u>>2]|0);r[(r[a>>2]|0)+28>>2]=(r[p>>2]|0)-(r[u>>2]|0);Ze(r[a>>2]|0);m=i;return r[f>>2]|0}function rn(e,t,n,i,a,s,l,d){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;s=s|0;l=l|0;d=d|0;var u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0;u=m;m=m+96|0;p=u+80|0;f=u+76|0;h=u+72|0;g=u+68|0;_=u+64|0;v=u+60|0;y=u+56|0;b=u+52|0;w=u+48|0;k=u+44|0;M=u+40|0;S=u+32|0;A=u+28|0;C=u+24|0;T=u+20|0;E=u+16|0;$=u+12|0;I=u+8|0;x=u+4|0;P=u;r[p>>2]=e;r[f>>2]=t;r[h>>2]=n;r[g>>2]=i;r[_>>2]=a;r[v>>2]=s;r[y>>2]=l;r[b>>2]=d;r[w>>2]=24795+((r[b>>2]|0)*84|0)+((r[_>>2]|0)*42|0);r[S>>2]=0;r[S+4>>2]=0;if(r[_>>2]|0){c[A>>2]=0;c[C>>2]=.149993896484375}else{c[C>>2]=+c[17416+(r[b>>2]<<2)>>2];c[A>>2]=+c[17400+(r[b>>2]<<2)>>2]}r[T>>2]=r[(r[v>>2]|0)+4>>2]<<3;r[k>>2]=r[f>>2];while(1){if((r[k>>2]|0)>=(r[h>>2]|0))break;r[M>>2]=0;do{r[E>>2]=It(r[v>>2]|0)|0;do if(((r[T>>2]|0)-(r[E>>2]|0)|0)<15){if(((r[T>>2]|0)-(r[E>>2]|0)|0)>=2){r[$>>2]=an(r[v>>2]|0,25131,2)|0;r[$>>2]=r[$>>2]>>1^0-(r[$>>2]&1);break}if(((r[T>>2]|0)-(r[E>>2]|0)|0)>=1){r[$>>2]=0-(Ye(r[v>>2]|0,1)|0);break}else{r[$>>2]=-1;break}}else{r[P>>2]=((r[k>>2]|0)<20?r[k>>2]|0:20)<<1;r[$>>2]=pn(r[v>>2]|0,(o[(r[w>>2]|0)+(r[P>>2]|0)>>0]|0)<<7,(o[(r[w>>2]|0)+((r[P>>2]|0)+1)>>0]|0)<<6)|0}while(0);c[I>>2]=+(r[$>>2]|0);if(-9>+c[(r[g>>2]|0)+((r[k>>2]|0)+(W(r[M>>2]|0,r[(r[p>>2]|0)+8>>2]|0)|0)<<2)>>2])D=-9;else D=+c[(r[g>>2]|0)+((r[k>>2]|0)+(W(r[M>>2]|0,r[(r[p>>2]|0)+8>>2]|0)|0)<<2)>>2];c[(r[g>>2]|0)+((r[k>>2]|0)+(W(r[M>>2]|0,r[(r[p>>2]|0)+8>>2]|0)|0)<<2)>>2]=D;R=+c[A>>2]*+c[(r[g>>2]|0)+((r[k>>2]|0)+(W(r[M>>2]|0,r[(r[p>>2]|0)+8>>2]|0)|0)<<2)>>2];c[x>>2]=R+ +c[S+(r[M>>2]<<2)>>2]+ +c[I>>2];c[(r[g>>2]|0)+((r[k>>2]|0)+(W(r[M>>2]|0,r[(r[p>>2]|0)+8>>2]|0)|0)<<2)>>2]=+c[x>>2];c[S+(r[M>>2]<<2)>>2]=+c[S+(r[M>>2]<<2)>>2]+ +c[I>>2]-+c[C>>2]*+c[I>>2];f=(r[M>>2]|0)+1|0;r[M>>2]=f}while((f|0)<(r[y>>2]|0));r[k>>2]=(r[k>>2]|0)+1}m=u;return}function on(e,t,n,a,o,s){e=e|0;t=t|0;n=n|0;a=a|0;o=o|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0;l=m;m=m+64|0;c=l+52|0;d=l+48|0;u=l+44|0;p=l+40|0;f=l+36|0;h=l+32|0;g=l+28|0;_=l+24|0;v=l+20|0;y=l+16|0;b=l+12|0;w=l+8|0;k=l+4|0;M=l;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=a;r[f>>2]=o;r[h>>2]=s;r[k>>2]=r[(r[h>>2]|0)+4>>2]<<3;r[M>>2]=nn(r[h>>2]|0)|0;r[w>>2]=r[u>>2]|0?2:4;if((r[f>>2]|0)>0)S=((r[M>>2]|0)+(r[w>>2]|0)+1|0)>>>0<=(r[k>>2]|0)>>>0;else S=0;r[y>>2]=S&1;r[k>>2]=(r[k>>2]|0)-(r[y>>2]|0);r[_>>2]=0;r[b>>2]=0;r[g>>2]=r[c>>2];while(1){if((r[g>>2]|0)>=(r[d>>2]|0))break;if(((r[M>>2]|0)+(r[w>>2]|0)|0)>>>0<=(r[k>>2]|0)>>>0){S=Ye(r[h>>2]|0,r[w>>2]|0)|0;r[_>>2]=r[_>>2]^S;r[M>>2]=nn(r[h>>2]|0)|0;r[b>>2]=r[b>>2]|r[_>>2]}r[(r[p>>2]|0)+(r[g>>2]<<2)>>2]=r[_>>2];r[w>>2]=r[u>>2]|0?4:5;r[g>>2]=(r[g>>2]|0)+1}r[v>>2]=0;if(r[y>>2]|0?(i[20526+(r[f>>2]<<3)+((r[u>>2]<<2)+0+(r[b>>2]|0))>>0]|0)!=(i[20526+(r[f>>2]<<3)+((r[u>>2]<<2)+2+(r[b>>2]|0))>>0]|0):0)r[v>>2]=Ye(r[h>>2]|0,1)|0;r[g>>2]=r[c>>2];while(1){if((r[g>>2]|0)>=(r[d>>2]|0))break;r[(r[p>>2]|0)+(r[g>>2]<<2)>>2]=i[20526+(r[f>>2]<<3)+((r[u>>2]<<2)+(r[v>>2]<<1)+(r[(r[p>>2]|0)+(r[g>>2]<<2)>>2]|0))>>0];r[g>>2]=(r[g>>2]|0)+1}m=l;return}function sn(e,t,n,i,a,o,s){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;var l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;l=m;m=m+48|0;d=l+40|0;u=l+36|0;p=l+32|0;f=l+28|0;h=l+24|0;g=l+20|0;_=l+16|0;v=l+12|0;y=l+8|0;b=l+4|0;w=l;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=i;r[h>>2]=a;r[g>>2]=o;r[_>>2]=s;r[v>>2]=r[u>>2];while(1){if((r[v>>2]|0)>=(r[p>>2]|0))break;if((r[(r[h>>2]|0)+(r[v>>2]<<2)>>2]|0)>0){r[y>>2]=0;do{r[b>>2]=De(r[g>>2]|0,r[(r[h>>2]|0)+(r[v>>2]<<2)>>2]|0)|0;c[w>>2]=(+(r[b>>2]|0)+.5)*+(1<<14-(r[(r[h>>2]|0)+(r[v>>2]<<2)>>2]|0)|0)*6103515625e-14-.5;u=(r[f>>2]|0)+((r[v>>2]|0)+(W(r[y>>2]|0,r[(r[d>>2]|0)+8>>2]|0)|0)<<2)|0;c[u>>2]=+c[u>>2]+ +c[w>>2];u=(r[y>>2]|0)+1|0;r[y>>2]=u}while((u|0)<(r[_>>2]|0))}r[v>>2]=(r[v>>2]|0)+1}m=l;return}function ln(e,t,n,i,a,o,s,l,d){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;l=l|0;d=d|0;var u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0;u=m;m=m+64|0;p=u+52|0;f=u+48|0;h=u+44|0;g=u+40|0;_=u+36|0;v=u+32|0;y=u+28|0;b=u+24|0;w=u+20|0;k=u+16|0;M=u+12|0;S=u+8|0;A=u+4|0;C=u;r[p>>2]=e;r[f>>2]=t;r[h>>2]=n;r[g>>2]=i;r[_>>2]=a;r[v>>2]=o;r[y>>2]=s;r[b>>2]=l;r[w>>2]=d;r[M>>2]=0;while(1){if((r[M>>2]|0)>=2)break;r[k>>2]=r[f>>2];while(1){if((r[k>>2]|0)>=(r[h>>2]|0))break;if((r[y>>2]|0)<(r[w>>2]|0))break;if((r[(r[_>>2]|0)+(r[k>>2]<<2)>>2]|0)<8?(r[(r[v>>2]|0)+(r[k>>2]<<2)>>2]|0)==(r[M>>2]|0):0){r[S>>2]=0;do{r[A>>2]=De(r[b>>2]|0,1)|0;c[C>>2]=(+(r[A>>2]|0)-.5)*+(1<<14-(r[(r[_>>2]|0)+(r[k>>2]<<2)>>2]|0)-1|0)*6103515625e-14;d=(r[g>>2]|0)+((r[k>>2]|0)+(W(r[S>>2]|0,r[(r[p>>2]|0)+8>>2]|0)|0)<<2)|0;c[d>>2]=+c[d>>2]+ +c[C>>2];r[y>>2]=(r[y>>2]|0)+-1;d=(r[S>>2]|0)+1|0;r[S>>2]=d}while((d|0)<(r[w>>2]|0))}r[k>>2]=(r[k>>2]|0)+1}r[M>>2]=(r[M>>2]|0)+1}m=u;return}function cn(e,t,n,i,a,o,s,l,d,u,p,f){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;l=l|0;d=d|0;u=u|0;p=p|0;f=f|0;var h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0;h=m;m=m+112|0;g=h+96|0;_=h+92|0;v=h+88|0;y=h+84|0;b=h+80|0;w=h+76|0;k=h+72|0;M=h+68|0;S=h+64|0;A=h+60|0;C=h+56|0;T=h+52|0;E=h+48|0;$=h+44|0;I=h+40|0;x=h+36|0;P=h+32|0;D=h+28|0;R=h+24|0;O=h+20|0;N=h+16|0;L=h+12|0;F=h+8|0;U=h+4|0;B=h;r[g>>2]=e;r[_>>2]=t;r[v>>2]=n;r[y>>2]=i;r[b>>2]=a;r[w>>2]=o;r[k>>2]=s;r[M>>2]=l;r[S>>2]=d;r[A>>2]=u;r[C>>2]=p;r[T>>2]=f;r[L>>2]=r[(r[g>>2]|0)+4>>2];r[N>>2]=r[(r[g>>2]|0)+8>>2];r[D>>2]=r[(r[g>>2]|0)+44>>2]<<r[A>>2];f=r[D>>2]|0;r[F>>2]=oe()|0;p=m;m=m+((1*(f<<2)|0)+15&-16)|0;r[I>>2]=1<<r[A>>2];if(r[S>>2]|0){r[P>>2]=r[I>>2];r[R>>2]=r[(r[g>>2]|0)+44>>2];r[O>>2]=r[(r[g>>2]|0)+36>>2]}else{r[P>>2]=1;r[R>>2]=r[(r[g>>2]|0)+44>>2]<<r[A>>2];r[O>>2]=(r[(r[g>>2]|0)+36>>2]|0)-(r[A>>2]|0)}if((r[M>>2]|0)==2&(r[k>>2]|0)==1){ye(r[g>>2]|0,r[_>>2]|0,p,r[y>>2]|0,r[b>>2]|0,r[w>>2]|0,r[I>>2]|0,r[C>>2]|0,r[T>>2]|0);r[U>>2]=(r[(r[v>>2]|0)+4>>2]|0)+(((r[L>>2]|0)/2|0)<<2);La(r[U>>2]|0,p|0,(r[D>>2]<<2)+0|0)|0;r[x>>2]=0;while(1){if((r[x>>2]|0)>=(r[P>>2]|0))break;A=(r[r[v>>2]>>2]|0)+((W(r[R>>2]|0,r[x>>2]|0)|0)<<2)|0;un((r[g>>2]|0)+64|0,(r[U>>2]|0)+(r[x>>2]<<2)|0,A,r[(r[g>>2]|0)+60>>2]|0,r[L>>2]|0,r[O>>2]|0,r[P>>2]|0);r[x>>2]=(r[x>>2]|0)+1}r[x>>2]=0;while(1){if((r[x>>2]|0)>=(r[P>>2]|0))break;U=(r[(r[v>>2]|0)+4>>2]|0)+((W(r[R>>2]|0,r[x>>2]|0)|0)<<2)|0;un((r[g>>2]|0)+64|0,p+(r[x>>2]<<2)|0,U,r[(r[g>>2]|0)+60>>2]|0,r[L>>2]|0,r[O>>2]|0,r[P>>2]|0);r[x>>2]=(r[x>>2]|0)+1}H=r[F>>2]|0;ce(H|0);m=h;return}if(!((r[M>>2]|0)==1&(r[k>>2]|0)==2)){r[E>>2]=0;do{k=(r[_>>2]|0)+((W(r[E>>2]|0,r[D>>2]|0)|0)<<2)|0;U=(r[y>>2]|0)+((W(r[E>>2]|0,r[N>>2]|0)|0)<<2)|0;ye(r[g>>2]|0,k,p,U,r[b>>2]|0,r[w>>2]|0,r[I>>2]|0,r[C>>2]|0,r[T>>2]|0);r[x>>2]=0;while(1){if((r[x>>2]|0)>=(r[P>>2]|0))break;U=(r[(r[v>>2]|0)+(r[E>>2]<<2)>>2]|0)+((W(r[R>>2]|0,r[x>>2]|0)|0)<<2)|0;un((r[g>>2]|0)+64|0,p+(r[x>>2]<<2)|0,U,r[(r[g>>2]|0)+60>>2]|0,r[L>>2]|0,r[O>>2]|0,r[P>>2]|0);r[x>>2]=(r[x>>2]|0)+1}U=(r[E>>2]|0)+1|0;r[E>>2]=U}while((U|0)<(r[M>>2]|0));H=r[F>>2]|0;ce(H|0);m=h;return}r[B>>2]=(r[r[v>>2]>>2]|0)+(((r[L>>2]|0)/2|0)<<2);ye(r[g>>2]|0,r[_>>2]|0,p,r[y>>2]|0,r[b>>2]|0,r[w>>2]|0,r[I>>2]|0,r[C>>2]|0,r[T>>2]|0);ye(r[g>>2]|0,(r[_>>2]|0)+(r[D>>2]<<2)|0,r[B>>2]|0,(r[y>>2]|0)+(r[N>>2]<<2)|0,r[b>>2]|0,r[w>>2]|0,r[I>>2]|0,r[C>>2]|0,r[T>>2]|0);r[$>>2]=0;while(1){if((r[$>>2]|0)>=(r[D>>2]|0))break;c[p+(r[$>>2]<<2)>>2]=(+c[p+(r[$>>2]<<2)>>2]+ +c[(r[B>>2]|0)+(r[$>>2]<<2)>>2])*.5;r[$>>2]=(r[$>>2]|0)+1}r[x>>2]=0;while(1){if((r[x>>2]|0)>=(r[P>>2]|0))break;$=(r[r[v>>2]>>2]|0)+((W(r[R>>2]|0,r[x>>2]|0)|0)<<2)|0;un((r[g>>2]|0)+64|0,p+(r[x>>2]<<2)|0,$,r[(r[g>>2]|0)+60>>2]|0,r[L>>2]|0,r[O>>2]|0,r[P>>2]|0);r[x>>2]=(r[x>>2]|0)+1}H=r[F>>2]|0;ce(H|0);m=h;return}function dn(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;m=t;return r[(r[n>>2]|0)+44>>2]|0}function un(e,t,n,i,o,s,l){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;s=s|0;l=l|0;var d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0;d=m;m=m+144|0;u=d+136|0;p=d+132|0;f=d+128|0;h=d+124|0;g=d+120|0;_=d+116|0;v=d+112|0;y=d+108|0;b=d+104|0;w=d+100|0;k=d+96|0;M=d+92|0;S=d+88|0;A=d+84|0;C=d+80|0;T=d+76|0;E=d+72|0;$=d+68|0;I=d+64|0;x=d+60|0;P=d+56|0;D=d+52|0;R=d+48|0;O=d+44|0;N=d+40|0;L=d+36|0;F=d+32|0;U=d+28|0;B=d+24|0;H=d+20|0;j=d+16|0;V=d+12|0;q=d+8|0;z=d+4|0;G=d;r[u>>2]=e;r[p>>2]=t;r[f>>2]=n;r[h>>2]=i;r[g>>2]=o;r[_>>2]=s;r[v>>2]=l;r[b>>2]=r[r[u>>2]>>2];r[M>>2]=r[(r[u>>2]|0)+24>>2];r[y>>2]=0;while(1){K=r[b>>2]>>1;if((r[y>>2]|0)>=(r[_>>2]|0))break;r[b>>2]=K;r[M>>2]=(r[M>>2]|0)+(r[b>>2]<<2);r[y>>2]=(r[y>>2]|0)+1}r[w>>2]=K;r[k>>2]=r[b>>2]>>2;r[S>>2]=r[p>>2];r[A>>2]=(r[p>>2]|0)+((W(r[v>>2]|0,(r[w>>2]|0)-1|0)|0)<<2);r[C>>2]=(r[f>>2]|0)+(r[g>>2]>>1<<2);r[T>>2]=r[M>>2];r[E>>2]=r[(r[(r[u>>2]|0)+8+(r[_>>2]<<2)>>2]|0)+44>>2];r[y>>2]=0;while(1){if((r[y>>2]|0)>=(r[k>>2]|0))break;p=r[E>>2]|0;r[E>>2]=p+2;r[$>>2]=a[p>>1];c[I>>2]=+c[r[A>>2]>>2]*+c[(r[T>>2]|0)+(r[y>>2]<<2)>>2]+ +c[r[S>>2]>>2]*+c[(r[T>>2]|0)+((r[k>>2]|0)+(r[y>>2]|0)<<2)>>2];c[x>>2]=+c[r[S>>2]>>2]*+c[(r[T>>2]|0)+(r[y>>2]<<2)>>2]-+c[r[A>>2]>>2]*+c[(r[T>>2]|0)+((r[k>>2]|0)+(r[y>>2]|0)<<2)>>2];c[(r[C>>2]|0)+((r[$>>2]<<1)+1<<2)>>2]=+c[I>>2];c[(r[C>>2]|0)+(r[$>>2]<<1<<2)>>2]=+c[x>>2];r[S>>2]=(r[S>>2]|0)+(r[v>>2]<<1<<2);r[A>>2]=(r[A>>2]|0)+(0-(r[v>>2]<<1)<<2);r[y>>2]=(r[y>>2]|0)+1}Pt(r[(r[u>>2]|0)+8+(r[_>>2]<<2)>>2]|0,(r[f>>2]|0)+(r[g>>2]>>1<<2)|0);r[P>>2]=(r[f>>2]|0)+(r[g>>2]>>1<<2);r[D>>2]=(r[f>>2]|0)+(r[g>>2]>>1<<2)+(r[w>>2]<<2)+-8;r[R>>2]=r[M>>2];r[y>>2]=0;while(1){if((r[y>>2]|0)>=((r[k>>2]|0)+1>>1|0))break;c[O>>2]=+c[(r[P>>2]|0)+4>>2];c[N>>2]=+c[r[P>>2]>>2];c[U>>2]=+c[(r[R>>2]|0)+(r[y>>2]<<2)>>2];c[B>>2]=+c[(r[R>>2]|0)+((r[k>>2]|0)+(r[y>>2]|0)<<2)>>2];c[L>>2]=+c[O>>2]*+c[U>>2]+ +c[N>>2]*+c[B>>2];c[F>>2]=+c[O>>2]*+c[B>>2]-+c[N>>2]*+c[U>>2];c[O>>2]=+c[(r[D>>2]|0)+4>>2];c[N>>2]=+c[r[D>>2]>>2];c[r[P>>2]>>2]=+c[L>>2];c[(r[D>>2]|0)+4>>2]=+c[F>>2];c[U>>2]=+c[(r[R>>2]|0)+((r[k>>2]|0)-(r[y>>2]|0)-1<<2)>>2];c[B>>2]=+c[(r[R>>2]|0)+((r[w>>2]|0)-(r[y>>2]|0)-1<<2)>>2];c[L>>2]=+c[O>>2]*+c[U>>2]+ +c[N>>2]*+c[B>>2];c[F>>2]=+c[O>>2]*+c[B>>2]-+c[N>>2]*+c[U>>2];c[r[D>>2]>>2]=+c[L>>2];c[(r[P>>2]|0)+4>>2]=+c[F>>2];r[P>>2]=(r[P>>2]|0)+8;r[D>>2]=(r[D>>2]|0)+-8;r[y>>2]=(r[y>>2]|0)+1}r[H>>2]=(r[f>>2]|0)+(r[g>>2]<<2)+-4;r[j>>2]=r[f>>2];r[V>>2]=r[h>>2];r[q>>2]=(r[h>>2]|0)+(r[g>>2]<<2)+-4;r[y>>2]=0;while(1){if((r[y>>2]|0)>=((r[g>>2]|0)/2|0|0))break;c[z>>2]=+c[r[H>>2]>>2];c[G>>2]=+c[r[j>>2]>>2];Y=+c[r[q>>2]>>2]*+c[G>>2]-+c[r[V>>2]>>2]*+c[z>>2];h=r[j>>2]|0;r[j>>2]=h+4;c[h>>2]=Y;Y=+c[r[V>>2]>>2]*+c[G>>2]+ +c[r[q>>2]>>2]*+c[z>>2];h=r[H>>2]|0;r[H>>2]=h+-4;c[h>>2]=Y;r[V>>2]=(r[V>>2]|0)+4;r[q>>2]=(r[q>>2]|0)+-4;r[y>>2]=(r[y>>2]|0)+1}m=d;return}function pn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;i=m;m=m+32|0;a=i+24|0;o=i+20|0;s=i+16|0;l=i+12|0;c=i+8|0;d=i+4|0;u=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[l>>2]=0;r[d>>2]=fn(r[a>>2]|0,15)|0;r[c>>2]=0;do if((r[d>>2]|0)>>>0>=(r[o>>2]|0)>>>0){r[l>>2]=(r[l>>2]|0)+1;r[c>>2]=r[o>>2];r[o>>2]=(xt(r[o>>2]|0,r[s>>2]|0)|0)+1;while(1){if((r[o>>2]|0)>>>0>1)p=(r[d>>2]|0)>>>0>=((r[c>>2]|0)+(r[o>>2]<<1)|0)>>>0;else p=0;f=r[o>>2]|0;if(!p)break;r[o>>2]=f<<1;r[c>>2]=(r[c>>2]|0)+(r[o>>2]|0);r[o>>2]=(W((r[o>>2]|0)-2|0,r[s>>2]|0)|0)>>>15;r[o>>2]=(r[o>>2]|0)+1;r[l>>2]=(r[l>>2]|0)+1}if(f>>>0<=1){r[u>>2]=((r[d>>2]|0)-(r[c>>2]|0)|0)>>>1;r[l>>2]=(r[l>>2]|0)+(r[u>>2]|0);r[c>>2]=(r[c>>2]|0)+(r[u>>2]<<1)}if((r[d>>2]|0)>>>0<((r[c>>2]|0)+(r[o>>2]|0)|0)>>>0){r[l>>2]=0-(r[l>>2]|0);break}else{r[c>>2]=(r[c>>2]|0)+(r[o>>2]|0);break}}while(0);d=r[a>>2]|0;a=r[c>>2]|0;if(((r[c>>2]|0)+(r[o>>2]|0)|0)>>>0>=32768){h=32768;je(d,a,h,32768);g=r[l>>2]|0;m=i;return g|0}h=(r[c>>2]|0)+(r[o>>2]|0)|0;je(d,a,h,32768);g=r[l>>2]|0;m=i;return g|0}function fn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;o=n;r[i>>2]=e;r[a>>2]=t;r[(r[i>>2]|0)+36>>2]=(r[(r[i>>2]|0)+28>>2]|0)>>>(r[a>>2]|0);r[o>>2]=((r[(r[i>>2]|0)+32>>2]|0)>>>0)/((r[(r[i>>2]|0)+36>>2]|0)>>>0)|0;m=n;return(1<<r[a>>2])-((r[o>>2]|0)+1+((1<<r[a>>2])-((r[o>>2]|0)+1)&0-(1<<r[a>>2]>>>0<((r[o>>2]|0)+1|0)>>>0&1)))|0}function mn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0;i=m;m=m+4112|0;a=i+4108|0;o=i+4104|0;s=i+4100|0;l=i+4096|0;c=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;Lt(r[a>>2]|0,c,2048,r[o>>2]|0,r[s>>2]|0);Ft(c+1440|0,c,1328,620,l,r[s>>2]|0);r[l>>2]=720-(r[l>>2]|0);m=i;return r[l>>2]|0}function hn(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;s=m;m=m+64|0;l=s+56|0;d=s+52|0;u=s+48|0;p=s+44|0;f=s+40|0;h=s+36|0;g=s+32|0;_=s+28|0;v=s+24|0;y=s+8|0;b=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;o=r[f>>2]|0;r[v>>2]=oe()|0;a=m;m=m+((1*(o<<2)|0)+15&-16)|0;o=m;m=m+((1*((r[p>>2]|0)+(r[f>>2]|0)<<2)|0)+15&-16)|0;r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;c[a+(r[g>>2]<<2)>>2]=+c[(r[d>>2]|0)+((r[f>>2]|0)-(r[g>>2]|0)-1<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;c[o+(r[g>>2]<<2)>>2]=+c[(r[h>>2]|0)+((r[f>>2]|0)-(r[g>>2]|0)-1<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[p>>2]|0))break;c[o+((r[g>>2]|0)+(r[f>>2]|0)<<2)>>2]=+c[(r[l>>2]|0)+(r[g>>2]<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;c[(r[h>>2]|0)+(r[g>>2]<<2)>>2]=+c[(r[l>>2]|0)+((r[p>>2]|0)-(r[g>>2]|0)-1<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}r[g>>2]=0;while(1){if((r[g>>2]|0)>=((r[p>>2]|0)-3|0))break;r[y>>2]=0;r[y+4>>2]=0;r[y+8>>2]=0;r[y+12>>2]=0;_n(a,o+(r[g>>2]<<2)|0,y,r[f>>2]|0);c[(r[u>>2]|0)+(r[g>>2]<<2)>>2]=+c[(r[l>>2]|0)+(r[g>>2]<<2)>>2]+ +c[y>>2];c[(r[u>>2]|0)+((r[g>>2]|0)+1<<2)>>2]=+c[(r[l>>2]|0)+((r[g>>2]|0)+1<<2)>>2]+ +c[y+4>>2];c[(r[u>>2]|0)+((r[g>>2]|0)+2<<2)>>2]=+c[(r[l>>2]|0)+((r[g>>2]|0)+2<<2)>>2]+ +c[y+8>>2];c[(r[u>>2]|0)+((r[g>>2]|0)+3<<2)>>2]=+c[(r[l>>2]|0)+((r[g>>2]|0)+3<<2)>>2]+ +c[y+12>>2];r[g>>2]=(r[g>>2]|0)+4}while(1){if((r[g>>2]|0)>=(r[p>>2]|0))break;c[b>>2]=0;r[_>>2]=0;while(1){if((r[_>>2]|0)>=(r[f>>2]|0))break;c[b>>2]=+c[b>>2]+ +c[a+(r[_>>2]<<2)>>2]*+c[o+((r[g>>2]|0)+(r[_>>2]|0)<<2)>>2];r[_>>2]=(r[_>>2]|0)+1}c[(r[u>>2]|0)+(r[g>>2]<<2)>>2]=+c[(r[l>>2]|0)+(r[g>>2]<<2)>>2]+ +c[b>>2];r[g>>2]=(r[g>>2]|0)+1}ce(r[v>>2]|0);m=s;return}function gn(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;s=m;m=m+64|0;l=s+56|0;d=s+52|0;u=s+48|0;p=s+44|0;f=s+40|0;h=s+36|0;g=s+32|0;_=s+28|0;v=s+24|0;y=s+8|0;b=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;o=r[f>>2]|0;r[v>>2]=oe()|0;a=m;m=m+((1*(o<<2)|0)+15&-16)|0;o=m;m=m+((1*((r[p>>2]|0)+(r[f>>2]|0)<<2)|0)+15&-16)|0;r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;c[a+(r[g>>2]<<2)>>2]=+c[(r[d>>2]|0)+((r[f>>2]|0)-(r[g>>2]|0)-1<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;c[o+(r[g>>2]<<2)>>2]=-+c[(r[h>>2]|0)+((r[f>>2]|0)-(r[g>>2]|0)-1<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}while(1){if((r[g>>2]|0)>=((r[p>>2]|0)+(r[f>>2]|0)|0))break;c[o+(r[g>>2]<<2)>>2]=0;r[g>>2]=(r[g>>2]|0)+1}r[g>>2]=0;while(1){if((r[g>>2]|0)>=((r[p>>2]|0)-3|0))break;c[y>>2]=+c[(r[l>>2]|0)+(r[g>>2]<<2)>>2];c[y+4>>2]=+c[(r[l>>2]|0)+((r[g>>2]|0)+1<<2)>>2];c[y+8>>2]=+c[(r[l>>2]|0)+((r[g>>2]|0)+2<<2)>>2];c[y+12>>2]=+c[(r[l>>2]|0)+((r[g>>2]|0)+3<<2)>>2];_n(a,o+(r[g>>2]<<2)|0,y,r[f>>2]|0);c[o+((r[g>>2]|0)+(r[f>>2]|0)<<2)>>2]=-+c[y>>2];c[(r[u>>2]|0)+(r[g>>2]<<2)>>2]=+c[y>>2];c[y+4>>2]=+c[y+4>>2]+ +c[o+((r[g>>2]|0)+(r[f>>2]|0)<<2)>>2]*+c[r[d>>2]>>2];c[o+((r[g>>2]|0)+(r[f>>2]|0)+1<<2)>>2]=-+c[y+4>>2];c[(r[u>>2]|0)+((r[g>>2]|0)+1<<2)>>2]=+c[y+4>>2];c[y+8>>2]=+c[y+8>>2]+ +c[o+((r[g>>2]|0)+(r[f>>2]|0)+1<<2)>>2]*+c[r[d>>2]>>2];c[y+8>>2]=+c[y+8>>2]+ +c[o+((r[g>>2]|0)+(r[f>>2]|0)<<2)>>2]*+c[(r[d>>2]|0)+4>>2];c[o+((r[g>>2]|0)+(r[f>>2]|0)+2<<2)>>2]=-+c[y+8>>2];c[(r[u>>2]|0)+((r[g>>2]|0)+2<<2)>>2]=+c[y+8>>2];c[y+12>>2]=+c[y+12>>2]+ +c[o+((r[g>>2]|0)+(r[f>>2]|0)+2<<2)>>2]*+c[r[d>>2]>>2];c[y+12>>2]=+c[y+12>>2]+ +c[o+((r[g>>2]|0)+(r[f>>2]|0)+1<<2)>>2]*+c[(r[d>>2]|0)+4>>2];c[y+12>>2]=+c[y+12>>2]+ +c[o+((r[g>>2]|0)+(r[f>>2]|0)<<2)>>2]*+c[(r[d>>2]|0)+8>>2];c[o+((r[g>>2]|0)+(r[f>>2]|0)+3<<2)>>2]=-+c[y+12>>2];c[(r[u>>2]|0)+((r[g>>2]|0)+3<<2)>>2]=+c[y+12>>2];r[g>>2]=(r[g>>2]|0)+4}while(1){if((r[g>>2]|0)>=(r[p>>2]|0))break;
c[b>>2]=+c[(r[l>>2]|0)+(r[g>>2]<<2)>>2];r[_>>2]=0;while(1){if((r[_>>2]|0)>=(r[f>>2]|0))break;c[b>>2]=+c[b>>2]-+c[a+(r[_>>2]<<2)>>2]*+c[o+((r[g>>2]|0)+(r[_>>2]|0)<<2)>>2];r[_>>2]=(r[_>>2]|0)+1}c[o+((r[g>>2]|0)+(r[f>>2]|0)<<2)>>2]=+c[b>>2];c[(r[u>>2]|0)+(r[g>>2]<<2)>>2]=+c[b>>2];r[g>>2]=(r[g>>2]|0)+1}r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;c[(r[h>>2]|0)+(r[g>>2]<<2)>>2]=+c[(r[u>>2]|0)+((r[p>>2]|0)-(r[g>>2]|0)-1<<2)>>2];r[g>>2]=(r[g>>2]|0)+1}ce(r[v>>2]|0);m=s;return}function _n(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;a=m;m=m+64|0;o=a+48|0;s=a+44|0;l=a+40|0;d=a+36|0;u=a+32|0;p=a+28|0;f=a+24|0;h=a+20|0;g=a+16|0;_=a+12|0;v=a+8|0;y=a+4|0;b=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=i;c[g>>2]=0;i=r[s>>2]|0;r[s>>2]=i+4;c[p>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[f>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[h>>2]=+c[i>>2];r[u>>2]=0;while(1){if((r[u>>2]|0)>=((r[d>>2]|0)-3|0))break;i=r[o>>2]|0;r[o>>2]=i+4;c[_>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[g>>2]=+c[i>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[_>>2]*+c[p>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[_>>2]*+c[f>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[_>>2]*+c[h>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[_>>2]*+c[g>>2];i=r[o>>2]|0;r[o>>2]=i+4;c[_>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[p>>2]=+c[i>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[_>>2]*+c[f>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[_>>2]*+c[h>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[_>>2]*+c[g>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[_>>2]*+c[p>>2];i=r[o>>2]|0;r[o>>2]=i+4;c[_>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[f>>2]=+c[i>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[_>>2]*+c[h>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[_>>2]*+c[g>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[_>>2]*+c[p>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[_>>2]*+c[f>>2];i=r[o>>2]|0;r[o>>2]=i+4;c[_>>2]=+c[i>>2];i=r[s>>2]|0;r[s>>2]=i+4;c[h>>2]=+c[i>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[_>>2]*+c[g>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[_>>2]*+c[p>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[_>>2]*+c[f>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[_>>2]*+c[h>>2];r[u>>2]=(r[u>>2]|0)+4}_=r[u>>2]|0;r[u>>2]=_+1;if((_|0)<(r[d>>2]|0)){_=r[o>>2]|0;r[o>>2]=_+4;c[v>>2]=+c[_>>2];_=r[s>>2]|0;r[s>>2]=_+4;c[g>>2]=+c[_>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[v>>2]*+c[p>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[v>>2]*+c[f>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[v>>2]*+c[h>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[v>>2]*+c[g>>2]}v=r[u>>2]|0;r[u>>2]=v+1;if((v|0)<(r[d>>2]|0)){v=r[o>>2]|0;r[o>>2]=v+4;c[y>>2]=+c[v>>2];v=r[s>>2]|0;r[s>>2]=v+4;c[p>>2]=+c[v>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[y>>2]*+c[f>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[y>>2]*+c[h>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[y>>2]*+c[g>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[y>>2]*+c[p>>2]}if((r[u>>2]|0)>=(r[d>>2]|0)){m=a;return}d=r[o>>2]|0;r[o>>2]=d+4;c[b>>2]=+c[d>>2];d=r[s>>2]|0;r[s>>2]=d+4;c[f>>2]=+c[d>>2];c[r[l>>2]>>2]=+c[r[l>>2]>>2]+ +c[b>>2]*+c[h>>2];c[(r[l>>2]|0)+4>>2]=+c[(r[l>>2]|0)+4>>2]+ +c[b>>2]*+c[g>>2];c[(r[l>>2]|0)+8>>2]=+c[(r[l>>2]|0)+8>>2]+ +c[b>>2]*+c[p>>2];c[(r[l>>2]|0)+12>>2]=+c[(r[l>>2]|0)+12>>2]+ +c[b>>2]*+c[f>>2];m=a;return}function vn(e){e=e|0;var t=0,n=0,i=0,o=0,s=0;t=m;m=m+16|0;n=t+12|0;i=t+8|0;o=t+4|0;s=t;r[n>>2]=e;r[o>>2]=32767/((r[(r[n>>2]|0)+2340>>2]|0)+1|0)|0;r[s>>2]=0;r[i>>2]=0;while(1){if((r[i>>2]|0)>=(r[(r[n>>2]|0)+2340>>2]|0))break;r[s>>2]=(r[s>>2]|0)+(r[o>>2]|0);a[(r[n>>2]|0)+2772+1280+(r[i>>2]<<1)>>1]=r[s>>2];r[i>>2]=(r[i>>2]|0)+1}r[(r[n>>2]|0)+2772+1376>>2]=0;r[(r[n>>2]|0)+2772+1380>>2]=3176576;m=t;return}function yn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0;o=m;m=m+80|0;s=o+36|0;l=o+32|0;c=o+28|0;d=o+24|0;u=o+20|0;p=o+16|0;f=o+12|0;h=o+8|0;g=o+40|0;_=o+4|0;v=o;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[_>>2]=(r[s>>2]|0)+2772;if((r[(r[s>>2]|0)+2316>>2]|0)!=(r[(r[_>>2]|0)+1384>>2]|0)){vn(r[s>>2]|0);r[(r[_>>2]|0)+1384>>2]=r[(r[s>>2]|0)+2316>>2]}e:do if((r[(r[s>>2]|0)+4160>>2]|0)==0?(r[(r[s>>2]|0)+4164>>2]|0)==0:0){r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[(r[s>>2]|0)+2340>>2]|0))break;i=(r[_>>2]|0)+1280+(r[u>>2]<<1)|0;a[i>>1]=(a[i>>1]|0)+((((a[(r[s>>2]|0)+2344+(r[u>>2]<<1)>>1]|0)-(a[(r[_>>2]|0)+1280+(r[u>>2]<<1)>>1]|0)>>16)*16348|0)+(((a[(r[s>>2]|0)+2344+(r[u>>2]<<1)>>1]|0)-(a[(r[_>>2]|0)+1280+(r[u>>2]<<1)>>1]|0)&65535)*16348>>16));r[u>>2]=(r[u>>2]|0)+1}r[h>>2]=0;r[p>>2]=0;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[(r[s>>2]|0)+2324>>2]|0))break;if((r[(r[l>>2]|0)+16+(r[u>>2]<<2)>>2]|0)>(r[h>>2]|0)){r[h>>2]=r[(r[l>>2]|0)+16+(r[u>>2]<<2)>>2];r[p>>2]=r[u>>2]}r[u>>2]=(r[u>>2]|0)+1}Ba((r[_>>2]|0)+(r[(r[s>>2]|0)+2332>>2]<<2)|0,r[_>>2]|0,(W((r[(r[s>>2]|0)+2324>>2]|0)-1|0,r[(r[s>>2]|0)+2332>>2]|0)|0)<<2|0)|0;i=(r[s>>2]|0)+4+((W(r[p>>2]|0,r[(r[s>>2]|0)+2332>>2]|0)|0)<<2)|0;La(r[_>>2]|0,i|0,r[(r[s>>2]|0)+2332>>2]<<2|0)|0;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[(r[s>>2]|0)+2324>>2]|0))break e;i=(r[_>>2]|0)+1376|0;r[i>>2]=(r[i>>2]|0)+((((r[(r[l>>2]|0)+16+(r[u>>2]<<2)>>2]|0)-(r[(r[_>>2]|0)+1376>>2]|0)>>16)*4634|0)+(((r[(r[l>>2]|0)+16+(r[u>>2]<<2)>>2]|0)-(r[(r[_>>2]|0)+1376>>2]|0)&65535)*4634>>16));r[u>>2]=(r[u>>2]|0)+1}}while(0);if(!(r[(r[s>>2]|0)+4160>>2]|0)){Na((r[_>>2]|0)+1312|0,0,r[(r[s>>2]|0)+2340>>2]<<2|0)|0;m=o;return}l=(r[d>>2]|0)+16|0;r[v>>2]=oe()|0;p=m;m=m+((1*(l<<2)|0)+15&-16)|0;bn(p+64|0,r[_>>2]|0,r[(r[_>>2]|0)+1376>>2]|0,r[d>>2]|0,(r[_>>2]|0)+1380|0);wn(g,(r[_>>2]|0)+1280|0,r[(r[s>>2]|0)+2340>>2]|0);l=p;h=(r[_>>2]|0)+1312|0;i=l+64|0;do{r[l>>2]=r[h>>2];l=l+4|0;h=h+4|0}while((l|0)<(i|0));r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[d>>2]|0))break;r[f>>2]=r[(r[s>>2]|0)+2340>>2]>>1;n=W(r[p+(16+(r[u>>2]|0)-1<<2)>>2]>>16,a[g>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-1<<2)>>2]&65535,a[g>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-2<<2)>>2]>>16,a[g+2>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-2<<2)>>2]&65535,a[g+2>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-3<<2)>>2]>>16,a[g+4>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-3<<2)>>2]&65535,a[g+4>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-4<<2)>>2]>>16,a[g+6>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-4<<2)>>2]&65535,a[g+6>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-5<<2)>>2]>>16,a[g+8>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-5<<2)>>2]&65535,a[g+8>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-6<<2)>>2]>>16,a[g+10>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-6<<2)>>2]&65535,a[g+10>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-7<<2)>>2]>>16,a[g+12>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-7<<2)>>2]&65535,a[g+12>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-8<<2)>>2]>>16,a[g+14>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-8<<2)>>2]&65535,a[g+14>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-9<<2)>>2]>>16,a[g+16>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-9<<2)>>2]&65535,a[g+16>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-10<<2)>>2]>>16,a[g+18>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-10<<2)>>2]&65535,a[g+18>>1]|0)|0)>>16));if((r[(r[s>>2]|0)+2340>>2]|0)==16){n=W(r[p+(16+(r[u>>2]|0)-11<<2)>>2]>>16,a[g+20>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-11<<2)>>2]&65535,a[g+20>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-12<<2)>>2]>>16,a[g+22>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-12<<2)>>2]&65535,a[g+22>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-13<<2)>>2]>>16,a[g+24>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-13<<2)>>2]&65535,a[g+24>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-14<<2)>>2]>>16,a[g+26>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-14<<2)>>2]&65535,a[g+26>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-15<<2)>>2]>>16,a[g+28>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-15<<2)>>2]&65535,a[g+28>>1]|0)|0)>>16));n=W(r[p+(16+(r[u>>2]|0)-16<<2)>>2]>>16,a[g+30>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(n+((W(r[p+(16+(r[u>>2]|0)-16<<2)>>2]&65535,a[g+30>>1]|0)|0)>>16))}r[p+(16+(r[u>>2]|0)<<2)>>2]=(r[p+(16+(r[u>>2]|0)<<2)>>2]|0)+(r[f>>2]<<4);if(((a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]|0)+((r[f>>2]>>5)+1>>1)|0)<=32767)if(((a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]|0)+((r[f>>2]>>5)+1>>1)|0)<-32768)y=-32768;else y=(a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]|0)+((r[f>>2]>>5)+1>>1)|0;else y=32767;a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]=y;r[u>>2]=(r[u>>2]|0)+1}l=(r[_>>2]|0)+1312|0;h=p+(r[d>>2]<<2)|0;i=l+64|0;do{r[l>>2]=r[h>>2];l=l+4|0;h=h+4|0}while((l|0)<(i|0));ce(r[v>>2]|0);m=o;return}function bn(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;o=m;m=m+48|0;s=o+32|0;l=o+28|0;c=o+24|0;d=o+20|0;u=o+16|0;p=o+12|0;f=o+8|0;h=o+4|0;g=o;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[u>>2]=a;r[g>>2]=255;while(1){if((r[g>>2]|0)<=(r[d>>2]|0))break;r[g>>2]=r[g>>2]>>1}r[p>>2]=r[r[u>>2]>>2];r[f>>2]=0;while(1){_=r[p>>2]|0;if((r[f>>2]|0)>=(r[d>>2]|0))break;r[p>>2]=907633515+(W(_,196314165)|0);r[h>>2]=r[p>>2]>>24&r[g>>2];a=W(r[(r[l>>2]|0)+(r[h>>2]<<2)>>2]>>16,(r[c>>2]>>4&65535)<<16>>16)|0;i=a+((W(r[(r[l>>2]|0)+(r[h>>2]<<2)>>2]&65535,(r[c>>2]>>4&65535)<<16>>16)|0)>>16)|0;if((i+(W(r[(r[l>>2]|0)+(r[h>>2]<<2)>>2]|0,(r[c>>2]>>4>>15)+1>>1)|0)|0)<=32767){i=W(r[(r[l>>2]|0)+(r[h>>2]<<2)>>2]>>16,(r[c>>2]>>4&65535)<<16>>16)|0;a=i+((W(r[(r[l>>2]|0)+(r[h>>2]<<2)>>2]&65535,(r[c>>2]>>4&65535)<<16>>16)|0)>>16)|0;if((a+(W(r[(r[l>>2]|0)+(r[h>>2]<<2)>>2]|0,(r[c>>2]>>4>>15)+1>>1)|0)|0)<-32768)v=-32768;else{a=W(r[(r[l>>2]|0)+(r[h>>2]<<2)>>2]>>16,(r[c>>2]>>4&65535)<<16>>16)|0;i=a+((W(r[(r[l>>2]|0)+(r[h>>2]<<2)>>2]&65535,(r[c>>2]>>4&65535)<<16>>16)|0)>>16)|0;v=i+(W(r[(r[l>>2]|0)+(r[h>>2]<<2)>>2]|0,(r[c>>2]>>4>>15)+1>>1)|0)|0}}else v=32767;r[(r[s>>2]|0)+(r[f>>2]<<2)>>2]=(v&65535)<<16>>16;r[f>>2]=(r[f>>2]|0)+1}r[r[u>>2]>>2]=_;m=o;return}function wn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0;i=m;m=m+272|0;s=i+264|0;l=i+260|0;c=i+256|0;d=i+252|0;u=i+248|0;p=i+244|0;f=i+240|0;h=i+176|0;g=i+140|0;_=i+104|0;v=i+100|0;y=i+96|0;b=i+92|0;w=i+88|0;k=i+84|0;M=i+80|0;S=i+16|0;A=i+12|0;C=i+8|0;T=i+4|0;E=i;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[T>>2]=0;r[d>>2]=(r[c>>2]|0)==16?25152:25168;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[c>>2]|0))break;r[b>>2]=a[(r[l>>2]|0)+(r[u>>2]<<1)>>1]>>8;r[w>>2]=(a[(r[l>>2]|0)+(r[u>>2]<<1)>>1]|0)-(r[b>>2]<<8);r[k>>2]=a[17790+(r[b>>2]<<1)>>1];r[M>>2]=(a[17790+((r[b>>2]|0)+1<<1)>>1]|0)-(r[k>>2]|0);n=((r[k>>2]<<8)+(W(r[M>>2]|0,r[w>>2]|0)|0)>>3)+1>>1;r[h+(o[(r[d>>2]|0)+(r[u>>2]|0)>>0]<<2)>>2]=n;r[u>>2]=(r[u>>2]|0)+1}r[f>>2]=r[c>>2]>>1;kn(g,h,r[f>>2]|0);kn(_,h+4|0,r[f>>2]|0);r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[f>>2]|0))break;r[v>>2]=(r[g+((r[u>>2]|0)+1<<2)>>2]|0)+(r[g+(r[u>>2]<<2)>>2]|0);r[y>>2]=(r[_+((r[u>>2]|0)+1<<2)>>2]|0)-(r[_+(r[u>>2]<<2)>>2]|0);r[S+(r[u>>2]<<2)>>2]=0-(r[y>>2]|0)-(r[v>>2]|0);r[S+((r[c>>2]|0)-(r[u>>2]|0)-1<<2)>>2]=(r[y>>2]|0)-(r[v>>2]|0);r[u>>2]=(r[u>>2]|0)+1}r[p>>2]=0;while(1){if((r[p>>2]|0)>=10)break;r[A>>2]=0;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[c>>2]|0))break;v=r[S+(r[u>>2]<<2)>>2]|0;r[C>>2]=(r[S+(r[u>>2]<<2)>>2]|0)>0?v:0-v|0;if((r[C>>2]|0)>(r[A>>2]|0)){r[A>>2]=r[C>>2];r[T>>2]=r[u>>2]}r[u>>2]=(r[u>>2]|0)+1}r[A>>2]=(r[A>>2]>>4)+1>>1;if((r[A>>2]|0)<=32767)break;r[A>>2]=(r[A>>2]|0)<163838?r[A>>2]|0:163838;r[E>>2]=65470-(((r[A>>2]|0)-32767<<14|0)/((W(r[A>>2]|0,(r[T>>2]|0)+1|0)|0)>>2|0)|0);Mn(S,r[c>>2]|0,r[E>>2]|0);r[p>>2]=(r[p>>2]|0)+1}E=(r[p>>2]|0)==10;r[u>>2]=0;e:do if(E)while(1){if((r[u>>2]|0)>=(r[c>>2]|0))break e;if(((r[S+(r[u>>2]<<2)>>2]>>4)+1>>1|0)<=32767)if(((r[S+(r[u>>2]<<2)>>2]>>4)+1>>1|0)<-32768)$=-32768;else $=(r[S+(r[u>>2]<<2)>>2]>>4)+1>>1;else $=32767;a[(r[s>>2]|0)+(r[u>>2]<<1)>>1]=$;r[S+(r[u>>2]<<2)>>2]=a[(r[s>>2]|0)+(r[u>>2]<<1)>>1]<<5;r[u>>2]=(r[u>>2]|0)+1}else while(1){if((r[u>>2]|0)>=(r[c>>2]|0))break e;a[(r[s>>2]|0)+(r[u>>2]<<1)>>1]=(r[S+(r[u>>2]<<2)>>2]>>4)+1>>1;r[u>>2]=(r[u>>2]|0)+1}while(0);r[p>>2]=0;while(1){if((r[p>>2]|0)>=16){I=31;break}if((Sn(r[s>>2]|0,r[c>>2]|0)|0)>=107374){I=31;break}Mn(S,r[c>>2]|0,65536-(2<<r[p>>2])|0);r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[c>>2]|0))break;a[(r[s>>2]|0)+(r[u>>2]<<1)>>1]=(r[S+(r[u>>2]<<2)>>2]>>4)+1>>1;r[u>>2]=(r[u>>2]|0)+1}r[p>>2]=(r[p>>2]|0)+1}if((I|0)==31){m=i;return}}function kn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[r[a>>2]>>2]=65536;r[(r[a>>2]|0)+4>>2]=0-(r[r[o>>2]>>2]|0);r[l>>2]=1;while(1){if((r[l>>2]|0)>=(r[s>>2]|0))break;r[d>>2]=r[(r[o>>2]|0)+(r[l>>2]<<1<<2)>>2];n=r[(r[a>>2]|0)+((r[l>>2]|0)-1<<2)>>2]<<1;t=r[d>>2]|0;e=r[(r[a>>2]|0)+(r[l>>2]<<2)>>2]|0;u=Ua(t|0,((t|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;e=Ra(u|0,x|0,15)|0;u=Oa(e|0,x|0,1,0)|0;e=Ra(u|0,x|0,1)|0;r[(r[a>>2]|0)+((r[l>>2]|0)+1<<2)>>2]=n-e;r[c>>2]=r[l>>2];while(1){if((r[c>>2]|0)<=1)break;e=r[(r[a>>2]|0)+((r[c>>2]|0)-2<<2)>>2]|0;n=r[d>>2]|0;u=r[(r[a>>2]|0)+((r[c>>2]|0)-1<<2)>>2]|0;t=Ua(n|0,((n|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;u=Ra(t|0,x|0,15)|0;t=Oa(u|0,x|0,1,0)|0;u=Ra(t|0,x|0,1)|0;t=(r[a>>2]|0)+(r[c>>2]<<2)|0;r[t>>2]=(r[t>>2]|0)+(e-u);r[c>>2]=(r[c>>2]|0)+-1}u=(r[a>>2]|0)+4|0;r[u>>2]=(r[u>>2]|0)-(r[d>>2]|0);r[l>>2]=(r[l>>2]|0)+1}m=i;return}function Mn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;i=m;m=m+32|0;a=i+16|0;o=i+12|0;s=i+8|0;l=i+4|0;c=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[c>>2]=(r[s>>2]|0)-65536;r[l>>2]=0;while(1){d=r[s>>2]>>16;u=r[a>>2]|0;if((r[l>>2]|0)>=((r[o>>2]|0)-1|0))break;n=W(d,(r[u+(r[l>>2]<<2)>>2]&65535)<<16>>16)|0;t=n+((W(r[s>>2]&65535,(r[(r[a>>2]|0)+(r[l>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;n=t+(W(r[s>>2]|0,(r[(r[a>>2]|0)+(r[l>>2]<<2)>>2]>>15)+1>>1)|0)|0;r[(r[a>>2]|0)+(r[l>>2]<<2)>>2]=n;n=((W(r[s>>2]|0,r[c>>2]|0)|0)>>15)+1>>1;r[s>>2]=(r[s>>2]|0)+n;r[l>>2]=(r[l>>2]|0)+1}l=W(d,(r[u+((r[o>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0;u=l+((W(r[s>>2]&65535,(r[(r[a>>2]|0)+((r[o>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0)>>16)|0;l=u+(W(r[s>>2]|0,(r[(r[a>>2]|0)+((r[o>>2]|0)-1<<2)>>2]>>15)+1>>1)|0)|0;r[(r[a>>2]|0)+((r[o>>2]|0)-1<<2)>>2]=l;m=i;return}function Sn(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;n=m;m=m+160|0;i=n+148|0;o=n+144|0;s=n+140|0;l=n+136|0;c=n+8|0;d=n+4|0;u=n;r[o>>2]=e;r[s>>2]=t;r[u>>2]=0;r[d>>2]=c+((r[s>>2]&1)<<6);r[l>>2]=0;while(1){if((r[l>>2]|0)>=(r[s>>2]|0))break;r[u>>2]=(r[u>>2]|0)+(a[(r[o>>2]|0)+(r[l>>2]<<1)>>1]|0);r[(r[d>>2]|0)+(r[l>>2]<<2)>>2]=a[(r[o>>2]|0)+(r[l>>2]<<1)>>1]<<12;r[l>>2]=(r[l>>2]|0)+1}if((r[u>>2]|0)>=4096){r[i>>2]=0;p=r[i>>2]|0;m=n;return p|0}else{r[i>>2]=An(c,r[s>>2]|0)|0;p=r[i>>2]|0;m=n;return p|0}return 0}function An(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0;n=m;m=m+64|0;i=n+48|0;a=n+44|0;o=n+40|0;s=n+36|0;l=n+32|0;c=n+28|0;d=n+24|0;u=n+20|0;p=n+16|0;f=n+12|0;h=n+8|0;g=n+4|0;_=n;r[a>>2]=e;r[o>>2]=t;r[_>>2]=(r[a>>2]|0)+((r[o>>2]&1)<<6);r[d>>2]=1073741824;r[s>>2]=(r[o>>2]|0)-1;while(1){v=r[_>>2]|0;if((r[s>>2]|0)<=0)break;if((r[v+(r[s>>2]<<2)>>2]|0)>16773022){y=5;break}if((r[(r[_>>2]|0)+(r[s>>2]<<2)>>2]|0)<-16773022){y=5;break}r[u>>2]=0-(r[(r[_>>2]|0)+(r[s>>2]<<2)>>2]<<7);o=r[u>>2]|0;t=r[u>>2]|0;e=Ua(o|0,((o|0)<0)<<31>>31|0,t|0,((t|0)<0)<<31>>31|0)|0;t=Ra(e|0,x|0,32)|0;r[p>>2]=1073741824-t;t=r[p>>2]|0;r[c>>2]=32-(Cn((r[p>>2]|0)>0?t:0-t|0)|0);r[f>>2]=Tn(r[p>>2]|0,(r[c>>2]|0)+30|0)|0;t=r[d>>2]|0;e=r[p>>2]|0;o=Ua(t|0,((t|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;e=Ra(o|0,x|0,32)|0;r[d>>2]=e<<2;r[g>>2]=r[_>>2];r[_>>2]=(r[a>>2]|0)+((r[s>>2]&1)<<6);r[l>>2]=0;while(1){if((r[l>>2]|0)>=(r[s>>2]|0))break;e=r[(r[g>>2]|0)+(r[l>>2]<<2)>>2]|0;o=r[(r[g>>2]|0)+((r[s>>2]|0)-(r[l>>2]|0)-1<<2)>>2]|0;t=r[u>>2]|0;b=Ua(o|0,((o|0)<0)<<31>>31|0,t|0,((t|0)<0)<<31>>31|0)|0;t=Ra(b|0,x|0,30)|0;b=Oa(t|0,x|0,1,0)|0;t=Ra(b|0,x|0,1)|0;r[h>>2]=e-t;t=(r[c>>2]|0)==1;e=r[h>>2]|0;b=r[f>>2]|0;o=Ua(e|0,((e|0)<0)<<31>>31|0,b|0,((b|0)<0)<<31>>31|0)|0;b=x;if(t){t=Ra(o|0,b|0,1)|0;e=x;w=r[h>>2]|0;k=r[f>>2]|0;M=Ua(w|0,((w|0)<0)<<31>>31|0,k|0,((k|0)<0)<<31>>31|0)|0;k=Oa(t|0,e|0,M&1|0,0)|0;S=x;A=k}else{k=Ra(o|0,b|0,(r[c>>2]|0)-1|0)|0;b=Oa(k|0,x|0,1,0)|0;k=Ra(b|0,x|0,1)|0;S=x;A=k}r[(r[_>>2]|0)+(r[l>>2]<<2)>>2]=A;r[l>>2]=(r[l>>2]|0)+1}r[s>>2]=(r[s>>2]|0)+-1}if((y|0)==5){r[i>>2]=0;C=r[i>>2]|0;m=n;return C|0}if((r[v>>2]|0)<=16773022?(r[r[_>>2]>>2]|0)>=-16773022:0){r[u>>2]=0-(r[r[_>>2]>>2]<<7);_=r[u>>2]|0;v=r[u>>2]|0;u=Ua(_|0,((_|0)<0)<<31>>31|0,v|0,((v|0)<0)<<31>>31|0)|0;v=Ra(u|0,x|0,32)|0;r[p>>2]=1073741824-v;v=r[d>>2]|0;u=r[p>>2]|0;p=Ua(v|0,((v|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;u=Ra(p|0,x|0,32)|0;r[d>>2]=u<<2;r[i>>2]=r[d>>2];C=r[i>>2]|0;m=n;return C|0}r[i>>2]=0;C=r[i>>2]|0;m=n;return C|0}function Cn(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t;r[n>>2]=e;if(!(r[n>>2]|0)){i=32;m=t;return i|0}i=32-(32-(Y(r[n>>2]|0)|0))|0;m=t;return i|0}function Tn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;n=m;m=m+48|0;i=n+32|0;a=n+28|0;o=n+24|0;s=n+20|0;l=n+16|0;c=n+12|0;d=n+8|0;u=n+4|0;p=n;r[a>>2]=e;r[o>>2]=t;t=r[a>>2]|0;r[s>>2]=(Cn((r[a>>2]|0)>0?t:0-t|0)|0)-1;r[d>>2]=r[a>>2]<<r[s>>2];r[c>>2]=536870911/(r[d>>2]>>16|0)|0;r[p>>2]=r[c>>2]<<16;a=W(r[d>>2]>>16,(r[c>>2]&65535)<<16>>16)|0;r[u>>2]=536870912-(a+((W(r[d>>2]&65535,(r[c>>2]&65535)<<16>>16)|0)>>16))<<3;d=W(r[u>>2]>>16,(r[c>>2]&65535)<<16>>16)|0;a=(r[p>>2]|0)+(d+((W(r[u>>2]&65535,(r[c>>2]&65535)<<16>>16)|0)>>16))|0;r[p>>2]=a+(W(r[u>>2]|0,(r[c>>2]>>15)+1>>1)|0);r[l>>2]=61-(r[s>>2]|0)-(r[o>>2]|0);o=r[l>>2]|0;if((r[l>>2]|0)>0)if((o|0)<32){r[i>>2]=r[p>>2]>>r[l>>2];f=r[i>>2]|0;m=n;return f|0}else{r[i>>2]=0;f=r[i>>2]|0;m=n;return f|0}s=r[p>>2]|0;c=0-(r[l>>2]|0)|0;do if((-2147483648>>0-o|0)>(2147483647>>0-(r[l>>2]|0)|0)){if((s|0)>(-2147483648>>c|0)){h=-2147483648>>0-(r[l>>2]|0);break}if((r[p>>2]|0)<(2147483647>>0-(r[l>>2]|0)|0)){h=2147483647>>0-(r[l>>2]|0);break}else{h=r[p>>2]|0;break}}else{if((s|0)>(2147483647>>c|0)){h=2147483647>>0-(r[l>>2]|0);break}if((r[p>>2]|0)<(-2147483648>>0-(r[l>>2]|0)|0)){h=-2147483648>>0-(r[l>>2]|0);break}else{h=r[p>>2]|0;break}}while(0);r[i>>2]=h<<0-(r[l>>2]|0);f=r[i>>2]|0;m=n;return f|0}function En(e,t,n,o,s,l){e=e|0;t=t|0;n=n|0;o=o|0;s=s|0;l=l|0;var c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;c=m;m=m+48|0;d=c+40|0;u=c+36|0;p=c+32|0;f=c+28|0;h=c+24|0;g=c+20|0;_=c+16|0;v=c+12|0;y=c+8|0;b=c+44|0;w=c+4|0;k=c;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=o;r[h>>2]=s;r[g>>2]=l;i[b+1>>0]=0;r[w>>2]=r[u>>2];r[_>>2]=(((r[h>>2]|0)+(r[f>>2]<<1)&65535)<<16>>16)*7;r[k>>2]=23696+(r[_>>2]|0);r[p>>2]=(r[p>>2]|0)+8>>4;r[_>>2]=0;while(1){if((r[_>>2]|0)>=(r[p>>2]|0))break;r[y>>2]=r[(r[g>>2]|0)+(r[_>>2]<<2)>>2];e:do if((r[y>>2]|0)>0){i[b>>0]=i[(r[k>>2]|0)+((r[y>>2]&31|0)<6?r[y>>2]&31:6)>>0]|0;r[v>>2]=0;while(1){if((r[v>>2]|0)>=16)break e;if((a[(r[w>>2]|0)+(r[v>>2]<<1)>>1]|0)>0){f=((an(r[d>>2]|0,b,8)|0)<<1)-1|0;h=(r[w>>2]|0)+(r[v>>2]<<1)|0;a[h>>1]=W(a[h>>1]|0,f)|0}r[v>>2]=(r[v>>2]|0)+1}}while(0);r[w>>2]=(r[w>>2]|0)+32;r[_>>2]=(r[_>>2]|0)+1}m=c;return}function $n(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;Na(r[n>>2]|0,0,4260)|0;r[(r[n>>2]|0)+2376>>2]=1;r[r[n>>2]>>2]=65536;vn(r[n>>2]|0);In(r[n>>2]|0);m=t;return 0}function In(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;r[(r[n>>2]|0)+4168>>2]=r[(r[n>>2]|0)+2328>>2]<<7;r[(r[n>>2]|0)+4168+72>>2]=65536;r[(r[n>>2]|0)+4168+72+4>>2]=65536;r[(r[n>>2]|0)+4168+88>>2]=20;r[(r[n>>2]|0)+4168+84>>2]=2;m=t;return}function xn(e,t,n,o){e=e|0;t=t|0;n=n|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0;s=m;m=m+144|0;l=s+96|0;c=s+92|0;d=s+88|0;u=s+84|0;p=s+80|0;f=s+76|0;h=s+72|0;g=s+68|0;_=s+64|0;v=s+60|0;y=s+56|0;b=s+52|0;w=s+48|0;k=s+44|0;M=s+104|0;S=s+40|0;A=s+36|0;C=s+32|0;T=s+28|0;E=s+24|0;$=s+20|0;I=s+16|0;x=s+12|0;P=s+8|0;D=s+4|0;R=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=o;r[h>>2]=0;o=r[(r[l>>2]|0)+2336>>2]|0;r[R>>2]=oe()|0;n=m;m=m+((1*(o<<1)|0)+15&-16)|0;o=m;m=m+((1*((r[(r[l>>2]|0)+2336>>2]|0)+(r[(r[l>>2]|0)+2328>>2]|0)<<2)|0)+15&-16)|0;t=m;m=m+((1*(r[(r[l>>2]|0)+2332>>2]<<2)|0)+15&-16)|0;e=m;m=m+((1*((r[(r[l>>2]|0)+2332>>2]|0)+16<<2)|0)+15&-16)|0;r[I>>2]=a[17776+(i[(r[l>>2]|0)+2736+29>>0]>>1<<2)+(i[(r[l>>2]|0)+2736+30>>0]<<1)>>1];if((i[(r[l>>2]|0)+2736+31>>0]|0)<4)r[v>>2]=1;else r[v>>2]=0;r[$>>2]=i[(r[l>>2]|0)+2736+34>>0];r[p>>2]=0;while(1){if((r[p>>2]|0)>=(r[(r[l>>2]|0)+2328>>2]|0))break;r[$>>2]=907633515+(W(r[$>>2]|0,196314165)|0);r[(r[l>>2]|0)+4+(r[p>>2]<<2)>>2]=a[(r[u>>2]|0)+(r[p>>2]<<1)>>1]<<14;O=(r[l>>2]|0)+4+(r[p>>2]<<2)|0;N=r[O>>2]|0;if((r[(r[l>>2]|0)+4+(r[p>>2]<<2)>>2]|0)<=0){if((N|0)<0){L=(r[l>>2]|0)+4+(r[p>>2]<<2)|0;r[L>>2]=(r[L>>2]|0)+1280}}else r[O>>2]=N-1280;N=(r[l>>2]|0)+4+(r[p>>2]<<2)|0;r[N>>2]=(r[N>>2]|0)+(r[I>>2]<<4);if((r[$>>2]|0)<0)r[(r[l>>2]|0)+4+(r[p>>2]<<2)>>2]=0-(r[(r[l>>2]|0)+4+(r[p>>2]<<2)>>2]|0);r[$>>2]=(r[$>>2]|0)+(a[(r[u>>2]|0)+(r[p>>2]<<1)>>1]|0);r[p>>2]=(r[p>>2]|0)+1}u=e;$=(r[l>>2]|0)+1284|0;I=u+64|0;do{r[u>>2]=r[$>>2];u=u+4|0;$=$+4|0}while((u|0)<(I|0));r[P>>2]=(r[l>>2]|0)+4;r[k>>2]=r[d>>2];r[_>>2]=r[(r[l>>2]|0)+2336>>2];r[f>>2]=0;while(1){if((r[f>>2]|0)>=(r[(r[l>>2]|0)+2324>>2]|0))break;r[D>>2]=t;r[b>>2]=(r[c>>2]|0)+32+(r[f>>2]>>1<<5);La(M|0,r[b>>2]|0,r[(r[l>>2]|0)+2340>>2]<<1|0)|0;r[w>>2]=(r[c>>2]|0)+96+((r[f>>2]|0)*5<<1);r[y>>2]=i[(r[l>>2]|0)+2736+29>>0];r[C>>2]=r[(r[c>>2]|0)+16+(r[f>>2]<<2)>>2]>>6;r[T>>2]=Pn(r[(r[c>>2]|0)+16+(r[f>>2]<<2)>>2]|0,47)|0;e:do if((r[(r[c>>2]|0)+16+(r[f>>2]<<2)>>2]|0)!=(r[r[l>>2]>>2]|0)){r[E>>2]=Dn(r[r[l>>2]>>2]|0,r[(r[c>>2]|0)+16+(r[f>>2]<<2)>>2]|0,16)|0;r[p>>2]=0;while(1){if((r[p>>2]|0)>=16)break e;N=W(r[E>>2]>>16,(r[e+(r[p>>2]<<2)>>2]&65535)<<16>>16)|0;O=N+((W(r[E>>2]&65535,(r[e+(r[p>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;N=O+(W(r[E>>2]|0,(r[e+(r[p>>2]<<2)>>2]>>15)+1>>1)|0)|0;r[e+(r[p>>2]<<2)>>2]=N;r[p>>2]=(r[p>>2]|0)+1}}else r[E>>2]=65536;while(0);r[r[l>>2]>>2]=r[(r[c>>2]|0)+16+(r[f>>2]<<2)>>2];if((r[(r[l>>2]|0)+4160>>2]|0?(r[(r[l>>2]|0)+4164>>2]|0)==2:0)?(r[f>>2]|0)<2?(i[(r[l>>2]|0)+2736+29>>0]|0)!=2:0:0){N=r[w>>2]|0;a[N>>1]=0;a[N+2>>1]=0;a[N+4>>1]=0;a[N+6>>1]=0;a[N+8>>1]=0;a[(r[w>>2]|0)+4>>1]=4096;r[y>>2]=2;r[(r[c>>2]|0)+(r[f>>2]<<2)>>2]=r[(r[l>>2]|0)+2308>>2]}e:do if((r[y>>2]|0)==2){r[h>>2]=r[(r[c>>2]|0)+(r[f>>2]<<2)>>2];if(r[f>>2]|0?!((r[f>>2]|0)==2&(r[v>>2]|0)!=0):0){if((r[E>>2]|0)==65536)break;r[p>>2]=0;while(1){if((r[p>>2]|0)>=((r[h>>2]|0)+2|0))break e;N=W(r[E>>2]>>16,(r[o+((r[_>>2]|0)-(r[p>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0;O=N+((W(r[E>>2]&65535,(r[o+((r[_>>2]|0)-(r[p>>2]|0)-1<<2)>>2]&65535)<<16>>16)|0)>>16)|0;N=O+(W(r[E>>2]|0,(r[o+((r[_>>2]|0)-(r[p>>2]|0)-1<<2)>>2]>>15)+1>>1)|0)|0;r[o+((r[_>>2]|0)-(r[p>>2]|0)-1<<2)>>2]=N;r[p>>2]=(r[p>>2]|0)+1}}r[g>>2]=(r[(r[l>>2]|0)+2336>>2]|0)-(r[h>>2]|0)-(r[(r[l>>2]|0)+2340>>2]|0)-2;if((r[f>>2]|0)==2)La((r[l>>2]|0)+1348+(r[(r[l>>2]|0)+2336>>2]<<1)|0,r[d>>2]|0,r[(r[l>>2]|0)+2332>>2]<<1<<1|0)|0;N=(r[l>>2]|0)+1348+((r[g>>2]|0)+(W(r[f>>2]|0,r[(r[l>>2]|0)+2332>>2]|0)|0)<<1)|0;Rn(n+(r[g>>2]<<1)|0,N,r[b>>2]|0,(r[(r[l>>2]|0)+2336>>2]|0)-(r[g>>2]|0)|0,r[(r[l>>2]|0)+2340>>2]|0);if(!(r[f>>2]|0)){N=W(r[T>>2]>>16,(r[(r[c>>2]|0)+136>>2]&65535)<<16>>16)|0;r[T>>2]=N+((W(r[T>>2]&65535,(r[(r[c>>2]|0)+136>>2]&65535)<<16>>16)|0)>>16)<<2}r[p>>2]=0;while(1){if((r[p>>2]|0)>=((r[h>>2]|0)+2|0))break e;N=W(r[T>>2]>>16,a[n+((r[(r[l>>2]|0)+2336>>2]|0)-(r[p>>2]|0)-1<<1)>>1]|0)|0;O=N+((W(r[T>>2]&65535,a[n+((r[(r[l>>2]|0)+2336>>2]|0)-(r[p>>2]|0)-1<<1)>>1]|0)|0)>>16)|0;r[o+((r[_>>2]|0)-(r[p>>2]|0)-1<<2)>>2]=O;r[p>>2]=(r[p>>2]|0)+1}}while(0);e:do if((r[y>>2]|0)==2){r[x>>2]=o+((r[_>>2]|0)-(r[h>>2]|0)+2<<2);r[p>>2]=0;while(1){if((r[p>>2]|0)>=(r[(r[l>>2]|0)+2332>>2]|0))break e;r[S>>2]=2;O=W(r[r[x>>2]>>2]>>16,a[r[w>>2]>>1]|0)|0;r[S>>2]=(r[S>>2]|0)+(O+((W(r[r[x>>2]>>2]&65535,a[r[w>>2]>>1]|0)|0)>>16));O=W(r[(r[x>>2]|0)+-4>>2]>>16,a[(r[w>>2]|0)+2>>1]|0)|0;r[S>>2]=(r[S>>2]|0)+(O+((W(r[(r[x>>2]|0)+-4>>2]&65535,a[(r[w>>2]|0)+2>>1]|0)|0)>>16));O=W(r[(r[x>>2]|0)+-8>>2]>>16,a[(r[w>>2]|0)+4>>1]|0)|0;r[S>>2]=(r[S>>2]|0)+(O+((W(r[(r[x>>2]|0)+-8>>2]&65535,a[(r[w>>2]|0)+4>>1]|0)|0)>>16));O=W(r[(r[x>>2]|0)+-12>>2]>>16,a[(r[w>>2]|0)+6>>1]|0)|0;r[S>>2]=(r[S>>2]|0)+(O+((W(r[(r[x>>2]|0)+-12>>2]&65535,a[(r[w>>2]|0)+6>>1]|0)|0)>>16));O=W(r[(r[x>>2]|0)+-16>>2]>>16,a[(r[w>>2]|0)+8>>1]|0)|0;r[S>>2]=(r[S>>2]|0)+(O+((W(r[(r[x>>2]|0)+-16>>2]&65535,a[(r[w>>2]|0)+8>>1]|0)|0)>>16));r[x>>2]=(r[x>>2]|0)+4;r[(r[D>>2]|0)+(r[p>>2]<<2)>>2]=(r[(r[P>>2]|0)+(r[p>>2]<<2)>>2]|0)+(r[S>>2]<<1);r[o+(r[_>>2]<<2)>>2]=r[(r[D>>2]|0)+(r[p>>2]<<2)>>2]<<1;r[_>>2]=(r[_>>2]|0)+1;r[p>>2]=(r[p>>2]|0)+1}}else r[D>>2]=r[P>>2];while(0);r[p>>2]=0;while(1){if((r[p>>2]|0)>=(r[(r[l>>2]|0)+2332>>2]|0))break;r[A>>2]=r[(r[l>>2]|0)+2340>>2]>>1;O=W(r[e+(16+(r[p>>2]|0)-1<<2)>>2]>>16,a[M>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-1<<2)>>2]&65535,a[M>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-2<<2)>>2]>>16,a[M+2>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-2<<2)>>2]&65535,a[M+2>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-3<<2)>>2]>>16,a[M+4>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-3<<2)>>2]&65535,a[M+4>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-4<<2)>>2]>>16,a[M+6>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-4<<2)>>2]&65535,a[M+6>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-5<<2)>>2]>>16,a[M+8>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-5<<2)>>2]&65535,a[M+8>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-6<<2)>>2]>>16,a[M+10>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-6<<2)>>2]&65535,a[M+10>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-7<<2)>>2]>>16,a[M+12>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-7<<2)>>2]&65535,a[M+12>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-8<<2)>>2]>>16,a[M+14>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-8<<2)>>2]&65535,a[M+14>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-9<<2)>>2]>>16,a[M+16>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-9<<2)>>2]&65535,a[M+16>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-10<<2)>>2]>>16,a[M+18>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-10<<2)>>2]&65535,a[M+18>>1]|0)|0)>>16));if((r[(r[l>>2]|0)+2340>>2]|0)==16){O=W(r[e+(16+(r[p>>2]|0)-11<<2)>>2]>>16,a[M+20>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-11<<2)>>2]&65535,a[M+20>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-12<<2)>>2]>>16,a[M+22>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-12<<2)>>2]&65535,a[M+22>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-13<<2)>>2]>>16,a[M+24>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-13<<2)>>2]&65535,a[M+24>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-14<<2)>>2]>>16,a[M+26>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-14<<2)>>2]&65535,a[M+26>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-15<<2)>>2]>>16,a[M+28>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-15<<2)>>2]&65535,a[M+28>>1]|0)|0)>>16));O=W(r[e+(16+(r[p>>2]|0)-16<<2)>>2]>>16,a[M+30>>1]|0)|0;r[A>>2]=(r[A>>2]|0)+(O+((W(r[e+(16+(r[p>>2]|0)-16<<2)>>2]&65535,a[M+30>>1]|0)|0)>>16))}r[e+(16+(r[p>>2]|0)<<2)>>2]=(r[(r[D>>2]|0)+(r[p>>2]<<2)>>2]|0)+(r[A>>2]<<4);O=W(r[e+(16+(r[p>>2]|0)<<2)>>2]>>16,(r[C>>2]&65535)<<16>>16)|0;N=O+((W(r[e+(16+(r[p>>2]|0)<<2)>>2]&65535,(r[C>>2]&65535)<<16>>16)|0)>>16)|0;if(((N+(W(r[e+(16+(r[p>>2]|0)<<2)>>2]|0,(r[C>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){N=W(r[e+(16+(r[p>>2]|0)<<2)>>2]>>16,(r[C>>2]&65535)<<16>>16)|0;O=N+((W(r[e+(16+(r[p>>2]|0)<<2)>>2]&65535,(r[C>>2]&65535)<<16>>16)|0)>>16)|0;if(((O+(W(r[e+(16+(r[p>>2]|0)<<2)>>2]|0,(r[C>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)F=-32768;else{O=W(r[e+(16+(r[p>>2]|0)<<2)>>2]>>16,(r[C>>2]&65535)<<16>>16)|0;N=O+((W(r[e+(16+(r[p>>2]|0)<<2)>>2]&65535,(r[C>>2]&65535)<<16>>16)|0)>>16)|0;F=(N+(W(r[e+(16+(r[p>>2]|0)<<2)>>2]|0,(r[C>>2]>>15)+1>>1)|0)>>7)+1>>1}}else F=32767;a[(r[k>>2]|0)+(r[p>>2]<<1)>>1]=F;r[p>>2]=(r[p>>2]|0)+1}u=e;$=e+(r[(r[l>>2]|0)+2332>>2]<<2)|0;I=u+64|0;do{r[u>>2]=r[$>>2];u=u+4|0;$=$+4|0}while((u|0)<(I|0));r[P>>2]=(r[P>>2]|0)+(r[(r[l>>2]|0)+2332>>2]<<2);r[k>>2]=(r[k>>2]|0)+(r[(r[l>>2]|0)+2332>>2]<<1);r[f>>2]=(r[f>>2]|0)+1}u=(r[l>>2]|0)+1284|0;$=e;I=u+64|0;do{r[u>>2]=r[$>>2];u=u+4|0;$=$+4|0}while((u|0)<(I|0));ce(r[R>>2]|0);m=s;return}function Pn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;n=m;m=m+48|0;i=n+32|0;a=n+28|0;o=n+24|0;s=n+20|0;l=n+16|0;c=n+12|0;d=n+8|0;u=n+4|0;p=n;r[a>>2]=e;r[o>>2]=t;t=r[a>>2]|0;r[s>>2]=(On((r[a>>2]|0)>0?t:0-t|0)|0)-1;r[d>>2]=r[a>>2]<<r[s>>2];r[c>>2]=536870911/(r[d>>2]>>16|0)|0;r[p>>2]=r[c>>2]<<16;a=W(r[d>>2]>>16,(r[c>>2]&65535)<<16>>16)|0;r[u>>2]=536870912-(a+((W(r[d>>2]&65535,(r[c>>2]&65535)<<16>>16)|0)>>16))<<3;d=W(r[u>>2]>>16,(r[c>>2]&65535)<<16>>16)|0;a=(r[p>>2]|0)+(d+((W(r[u>>2]&65535,(r[c>>2]&65535)<<16>>16)|0)>>16))|0;r[p>>2]=a+(W(r[u>>2]|0,(r[c>>2]>>15)+1>>1)|0);r[l>>2]=61-(r[s>>2]|0)-(r[o>>2]|0);o=r[l>>2]|0;if((r[l>>2]|0)>0)if((o|0)<32){r[i>>2]=r[p>>2]>>r[l>>2];f=r[i>>2]|0;m=n;return f|0}else{r[i>>2]=0;f=r[i>>2]|0;m=n;return f|0}s=r[p>>2]|0;c=0-(r[l>>2]|0)|0;do if((-2147483648>>0-o|0)>(2147483647>>0-(r[l>>2]|0)|0)){if((s|0)>(-2147483648>>c|0)){h=-2147483648>>0-(r[l>>2]|0);break}if((r[p>>2]|0)<(2147483647>>0-(r[l>>2]|0)|0)){h=2147483647>>0-(r[l>>2]|0);break}else{h=r[p>>2]|0;break}}else{if((s|0)>(2147483647>>c|0)){h=2147483647>>0-(r[l>>2]|0);break}if((r[p>>2]|0)<(-2147483648>>0-(r[l>>2]|0)|0)){h=-2147483648>>0-(r[l>>2]|0);break}else{h=r[p>>2]|0;break}}while(0);r[i>>2]=h<<0-(r[l>>2]|0);f=r[i>>2]|0;m=n;return f|0}function Dn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;i=m;m=m+48|0;a=i+40|0;o=i+36|0;s=i+32|0;l=i+28|0;c=i+24|0;d=i+20|0;u=i+16|0;p=i+12|0;f=i+8|0;h=i+4|0;g=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;n=r[o>>2]|0;r[c>>2]=(On((r[o>>2]|0)>0?n:0-n|0)|0)-1;r[f>>2]=r[o>>2]<<r[c>>2];o=r[s>>2]|0;r[d>>2]=(On((r[s>>2]|0)>0?o:0-o|0)|0)-1;r[h>>2]=r[s>>2]<<r[d>>2];r[p>>2]=536870911/(r[h>>2]>>16|0)|0;s=W(r[f>>2]>>16,(r[p>>2]&65535)<<16>>16)|0;r[g>>2]=s+((W(r[f>>2]&65535,(r[p>>2]&65535)<<16>>16)|0)>>16);s=r[f>>2]|0;o=r[h>>2]|0;h=r[g>>2]|0;n=Ua(o|0,((o|0)<0)<<31>>31|0,h|0,((h|0)<0)<<31>>31|0)|0;h=Ra(n|0,x|0,32)|0;r[f>>2]=s-(h<<3);h=W(r[f>>2]>>16,(r[p>>2]&65535)<<16>>16)|0;r[g>>2]=(r[g>>2]|0)+(h+((W(r[f>>2]&65535,(r[p>>2]&65535)<<16>>16)|0)>>16));r[u>>2]=29+(r[c>>2]|0)-(r[d>>2]|0)-(r[l>>2]|0);l=r[u>>2]|0;if((r[u>>2]|0)>=0)if((l|0)<32){r[a>>2]=r[g>>2]>>r[u>>2];_=r[a>>2]|0;m=i;return _|0}else{r[a>>2]=0;_=r[a>>2]|0;m=i;return _|0}d=r[g>>2]|0;c=0-(r[u>>2]|0)|0;do if((-2147483648>>0-l|0)>(2147483647>>0-(r[u>>2]|0)|0)){if((d|0)>(-2147483648>>c|0)){v=-2147483648>>0-(r[u>>2]|0);break}if((r[g>>2]|0)<(2147483647>>0-(r[u>>2]|0)|0)){v=2147483647>>0-(r[u>>2]|0);break}else{v=r[g>>2]|0;break}}else{if((d|0)>(2147483647>>c|0)){v=2147483647>>0-(r[u>>2]|0);break}if((r[g>>2]|0)<(-2147483648>>0-(r[u>>2]|0)|0)){v=-2147483648>>0-(r[u>>2]|0);break}else{v=r[g>>2]|0;break}}while(0);r[a>>2]=v<<0-(r[u>>2]|0);_=r[a>>2]|0;m=i;return _|0}function Rn(e,t,n,i,o){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0;s=m;m=m+48|0;l=s+36|0;c=s+32|0;d=s+28|0;u=s+24|0;p=s+20|0;f=s+16|0;h=s+12|0;g=s+8|0;_=s+4|0;v=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=o;r[h>>2]=r[p>>2];while(1){if((r[h>>2]|0)>=(r[u>>2]|0))break;r[v>>2]=(r[c>>2]|0)+((r[h>>2]|0)-1<<1);r[g>>2]=W(a[r[v>>2]>>1]|0,a[r[d>>2]>>1]|0)|0;r[g>>2]=(r[g>>2]|0)+(W(a[(r[v>>2]|0)+-2>>1]|0,a[(r[d>>2]|0)+2>>1]|0)|0);r[g>>2]=(r[g>>2]|0)+(W(a[(r[v>>2]|0)+-4>>1]|0,a[(r[d>>2]|0)+4>>1]|0)|0);r[g>>2]=(r[g>>2]|0)+(W(a[(r[v>>2]|0)+-6>>1]|0,a[(r[d>>2]|0)+6>>1]|0)|0);r[g>>2]=(r[g>>2]|0)+(W(a[(r[v>>2]|0)+-8>>1]|0,a[(r[d>>2]|0)+8>>1]|0)|0);r[g>>2]=(r[g>>2]|0)+(W(a[(r[v>>2]|0)+-10>>1]|0,a[(r[d>>2]|0)+10>>1]|0)|0);r[f>>2]=6;while(1){if((r[f>>2]|0)>=(r[p>>2]|0))break;r[g>>2]=(r[g>>2]|0)+(W(a[(r[v>>2]|0)+(0-(r[f>>2]|0)<<1)>>1]|0,a[(r[d>>2]|0)+(r[f>>2]<<1)>>1]|0)|0);r[g>>2]=(r[g>>2]|0)+(W(a[(r[v>>2]|0)+(0-(r[f>>2]|0)-1<<1)>>1]|0,a[(r[d>>2]|0)+((r[f>>2]|0)+1<<1)>>1]|0)|0);r[f>>2]=(r[f>>2]|0)+2}r[g>>2]=(a[(r[v>>2]|0)+2>>1]<<12)-(r[g>>2]|0);r[_>>2]=(r[g>>2]>>11)+1>>1;if((r[_>>2]|0)>32767)y=32767;else y=(r[_>>2]|0)<-32768?-32768:r[_>>2]|0;a[(r[l>>2]|0)+(r[h>>2]<<1)>>1]=y;r[h>>2]=(r[h>>2]|0)+1}Na(r[l>>2]|0,0,r[p>>2]<<1|0)|0;m=s;return}function On(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t;r[n>>2]=e;if(!(r[n>>2]|0)){i=32;m=t;return i|0;
}i=32-(32-(Y(r[n>>2]|0)|0))|0;m=t;return i|0}function Nn(e,t,n,a,o,s){e=e|0;t=t|0;n=n|0;a=a|0;o=o|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;l=m;m=m+192|0;c=l+176|0;d=l+172|0;u=l+168|0;p=l+164|0;f=l+160|0;h=l+156|0;g=l+152|0;_=l+148|0;v=l+144|0;y=l+4|0;b=l;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=a;r[f>>2]=o;r[h>>2]=s;r[v>>2]=0;r[g>>2]=r[(r[c>>2]|0)+2328>>2];r[y+136>>2]=0;do if(!(r[f>>2]|0))w=4;else{if((r[f>>2]|0)==2?(r[(r[c>>2]|0)+2420+(r[(r[c>>2]|0)+2388>>2]<<2)>>2]|0)==1:0){w=4;break}Bn(r[c>>2]|0,y,r[u>>2]|0,1)}while(0);if((w|0)==4){w=(r[g>>2]|0)+16-1&-16;r[b>>2]=oe()|0;s=m;m=m+((1*(w<<1)|0)+15&-16)|0;Ln(r[c>>2]|0,r[d>>2]|0,r[(r[c>>2]|0)+2388>>2]|0,r[f>>2]|0,r[h>>2]|0);Fn(r[d>>2]|0,s,i[(r[c>>2]|0)+2736+29>>0]|0,i[(r[c>>2]|0)+2736+30>>0]|0,r[(r[c>>2]|0)+2328>>2]|0);Un(r[c>>2]|0,y,r[h>>2]|0);xn(r[c>>2]|0,y,r[u>>2]|0,s);Bn(r[c>>2]|0,y,r[u>>2]|0,0);r[(r[c>>2]|0)+4160>>2]=0;r[(r[c>>2]|0)+4164>>2]=i[(r[c>>2]|0)+2736+29>>0];r[(r[c>>2]|0)+2376>>2]=0;ce(r[b>>2]|0)}r[_>>2]=(r[(r[c>>2]|0)+2336>>2]|0)-(r[(r[c>>2]|0)+2328>>2]|0);Ba((r[c>>2]|0)+1348|0,(r[c>>2]|0)+1348+(r[(r[c>>2]|0)+2328>>2]<<1)|0,r[_>>2]<<1|0)|0;La((r[c>>2]|0)+1348+(r[_>>2]<<1)|0,r[u>>2]|0,r[(r[c>>2]|0)+2328>>2]<<1|0)|0;Hn(r[c>>2]|0,r[u>>2]|0,r[g>>2]|0);yn(r[c>>2]|0,y,r[u>>2]|0,r[g>>2]|0);r[(r[c>>2]|0)+2308>>2]=r[y+((r[(r[c>>2]|0)+2324>>2]|0)-1<<2)>>2];r[r[p>>2]>>2]=r[g>>2];m=l;return r[v>>2]|0}function Ln(e,t,n,o,s){e=e|0;t=t|0;n=n|0;o=o|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0;l=m;m=m+96|0;c=l+36|0;d=l+32|0;u=l+28|0;p=l+24|0;f=l+20|0;h=l+16|0;g=l+12|0;_=l+8|0;v=l+4|0;y=l;b=l+40|0;w=l+72|0;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=o;r[f>>2]=s;if(!(r[p>>2]|0)?!(r[(r[c>>2]|0)+2404+(r[u>>2]<<2)>>2]|0):0)r[_>>2]=an(r[d>>2]|0,22720,8)|0;else r[_>>2]=(an(r[d>>2]|0,22716,8)|0)+2;i[(r[c>>2]|0)+2736+29>>0]=r[_>>2]>>1;i[(r[c>>2]|0)+2736+30>>0]=r[_>>2]&1;u=r[d>>2]|0;if((r[f>>2]|0)==2){p=(an(u,20582,8)|0)&255;i[(r[c>>2]|0)+2736>>0]=p}else{p=(an(u,20558+(i[(r[c>>2]|0)+2736+29>>0]<<3)|0,8)|0)<<3&255;i[(r[c>>2]|0)+2736>>0]=p;p=((an(r[d>>2]|0,22745,8)|0)&255)<<24>>24;u=(r[c>>2]|0)+2736|0;i[u>>0]=(i[u>>0]|0)+p}r[h>>2]=1;while(1){k=r[d>>2]|0;if((r[h>>2]|0)>=(r[(r[c>>2]|0)+2324>>2]|0))break;p=(an(k,20582,8)|0)&255;i[(r[c>>2]|0)+2736+(r[h>>2]|0)>>0]=p;r[h>>2]=(r[h>>2]|0)+1}p=(an(k,(r[(r[(r[c>>2]|0)+2732>>2]|0)+12>>2]|0)+(W(i[(r[c>>2]|0)+2736+29>>0]>>1,a[r[(r[c>>2]|0)+2732>>2]>>1]|0)|0)|0,8)|0)&255;i[(r[c>>2]|0)+2736+8>>0]=p;oi(b,w,r[(r[c>>2]|0)+2732>>2]|0,i[(r[c>>2]|0)+2736+8>>0]|0);r[h>>2]=0;while(1){if((r[h>>2]|0)>=(a[(r[(r[c>>2]|0)+2732>>2]|0)+2>>1]|0))break;r[_>>2]=an(r[d>>2]|0,(r[(r[(r[c>>2]|0)+2732>>2]|0)+24>>2]|0)+(a[b+(r[h>>2]<<1)>>1]|0)|0,8)|0;if(r[_>>2]|0){if((r[_>>2]|0)==8){w=an(r[d>>2]|0,22753,8)|0;r[_>>2]=(r[_>>2]|0)+w}}else{w=an(r[d>>2]|0,22753,8)|0;r[_>>2]=(r[_>>2]|0)-w}i[(r[c>>2]|0)+2736+8+((r[h>>2]|0)+1)>>0]=(r[_>>2]|0)-4;r[h>>2]=(r[h>>2]|0)+1}if((r[(r[c>>2]|0)+2324>>2]|0)==4){h=(an(r[d>>2]|0,22722,8)|0)&255;M=h;S=r[c>>2]|0}else{M=4;S=r[c>>2]|0}i[S+2736+31>>0]=M;if((i[(r[c>>2]|0)+2736+29>>0]|0)!=2){A=r[c>>2]|0;C=A+2736|0;T=C+29|0;E=i[T>>0]|0;$=E<<24>>24;I=r[c>>2]|0;x=I+2396|0;r[x>>2]=$;P=r[d>>2]|0;D=an(P,22730,8)|0;R=D&255;O=r[c>>2]|0;N=O+2736|0;L=N+34|0;i[L>>0]=R;m=l;return}r[v>>2]=1;if(((r[f>>2]|0)==2?(r[(r[c>>2]|0)+2396>>2]|0)==2:0)?(r[y>>2]=((an(r[d>>2]|0,22792,8)|0)&65535)<<16>>16,(r[y>>2]|0)>0):0){r[y>>2]=(r[y>>2]|0)-9;a[(r[c>>2]|0)+2736+26>>1]=(a[(r[c>>2]|0)+2400>>1]|0)+(r[y>>2]|0);r[v>>2]=0}if(r[v>>2]|0){v=((an(r[d>>2]|0,22760,8)|0)&65535)<<16>>16;y=(W(v,r[(r[c>>2]|0)+2316>>2]>>1)|0)&65535;a[(r[c>>2]|0)+2736+26>>1]=y;y=((an(r[d>>2]|0,r[(r[c>>2]|0)+2380>>2]|0,8)|0)&65535)<<16>>16;v=(r[c>>2]|0)+2736+26|0;a[v>>1]=(a[v>>1]|0)+y}a[(r[c>>2]|0)+2400>>1]=a[(r[c>>2]|0)+2736+26>>1]|0;y=(an(r[d>>2]|0,r[(r[c>>2]|0)+2384>>2]|0,8)|0)&255;i[(r[c>>2]|0)+2736+28>>0]=y;y=(an(r[d>>2]|0,20623,8)|0)&255;i[(r[c>>2]|0)+2736+32>>0]=y;r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[(r[c>>2]|0)+2324>>2]|0))break;y=(an(r[d>>2]|0,r[108+(i[(r[c>>2]|0)+2736+32>>0]<<2)>>2]|0,8)|0)&255;i[(r[c>>2]|0)+2736+4+(r[g>>2]|0)>>0]=y;r[g>>2]=(r[g>>2]|0)+1}if(!(r[f>>2]|0)){f=(an(r[d>>2]|0,22713,8)|0)&255;F=f;U=r[c>>2]|0}else{F=0;U=r[c>>2]|0}i[U+2736+33>>0]=F;A=r[c>>2]|0;C=A+2736|0;T=C+29|0;E=i[T>>0]|0;$=E<<24>>24;I=r[c>>2]|0;x=I+2396|0;r[x>>2]=$;P=r[d>>2]|0;D=an(P,22730,8)|0;R=D&255;O=r[c>>2]|0;N=O+2736|0;L=N+34|0;i[L>>0]=R;m=l;return}function Fn(e,t,n,i,o){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0;s=m;m=m+224|0;l=s+212|0;c=s+208|0;d=s+204|0;u=s+200|0;p=s+196|0;f=s+192|0;h=s+188|0;g=s+184|0;_=s+180|0;v=s+176|0;y=s+172|0;b=s+168|0;w=s+88|0;k=s+8|0;M=s+4|0;S=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=o;r[b>>2]=an(r[l>>2]|0,23053+((r[d>>2]>>1)*9|0)|0,8)|0;r[_>>2]=r[p>>2]>>4;if((r[_>>2]<<4|0)<(r[p>>2]|0))r[_>>2]=(r[_>>2]|0)+1;r[S>>2]=22873+((r[b>>2]|0)*18|0);r[f>>2]=0;while(1){if((r[f>>2]|0)>=(r[_>>2]|0))break;r[k+(r[f>>2]<<2)>>2]=0;b=an(r[l>>2]|0,r[S>>2]|0,8)|0;o=r[f>>2]|0;i=b;while(1){r[w+(o<<2)>>2]=i;A=r[f>>2]|0;if((r[w+(r[f>>2]<<2)>>2]|0)!=17)break;b=k+(A<<2)|0;r[b>>2]=(r[b>>2]|0)+1;b=an(r[l>>2]|0,23035+((r[k+(r[f>>2]<<2)>>2]|0)==10&1)|0,8)|0;o=r[f>>2]|0;i=b}r[f>>2]=A+1}r[f>>2]=0;while(1){if((r[f>>2]|0)>=(r[_>>2]|0))break;A=(r[c>>2]|0)+((r[f>>2]&65535)<<16>>16<<4<<1)|0;if((r[w+(r[f>>2]<<2)>>2]|0)>0)ki(A,r[l>>2]|0,r[w+(r[f>>2]<<2)>>2]|0);else{S=A;A=S+32|0;do{a[S>>1]=0;S=S+2|0}while((S|0)<(A|0))}r[f>>2]=(r[f>>2]|0)+1}r[f>>2]=0;while(1){if((r[f>>2]|0)>=(r[_>>2]|0))break;if((r[k+(r[f>>2]<<2)>>2]|0)>0){r[y>>2]=r[k+(r[f>>2]<<2)>>2];r[M>>2]=(r[c>>2]|0)+((r[f>>2]&65535)<<16>>16<<4<<1);r[g>>2]=0;while(1){if((r[g>>2]|0)>=16)break;r[v>>2]=a[(r[M>>2]|0)+(r[g>>2]<<1)>>1];r[h>>2]=0;while(1){C=r[v>>2]|0;if((r[h>>2]|0)>=(r[y>>2]|0))break;r[v>>2]=C<<1;S=an(r[l>>2]|0,22711,8)|0;r[v>>2]=(r[v>>2]|0)+S;r[h>>2]=(r[h>>2]|0)+1}a[(r[M>>2]|0)+(r[g>>2]<<1)>>1]=C;r[g>>2]=(r[g>>2]|0)+1}S=w+(r[f>>2]<<2)|0;r[S>>2]=r[S>>2]|r[y>>2]<<5}r[f>>2]=(r[f>>2]|0)+1}En(r[l>>2]|0,r[c>>2]|0,r[p>>2]|0,r[d>>2]|0,r[u>>2]|0,w);m=s;return}function Un(e,t,n){e=e|0;t=t|0;n=n|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;o=m;m=m+96|0;s=o+24|0;l=o+20|0;c=o+16|0;d=o+12|0;u=o+8|0;p=o+4|0;f=o+64|0;h=o+32|0;g=o;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;ii((r[l>>2]|0)+16|0,(r[s>>2]|0)+2736|0,(r[s>>2]|0)+2312|0,(r[c>>2]|0)==2&1,r[(r[s>>2]|0)+2324>>2]|0);ai(f,(r[s>>2]|0)+2736+8|0,r[(r[s>>2]|0)+2732>>2]|0);wn((r[l>>2]|0)+32+32|0,f,r[(r[s>>2]|0)+2340>>2]|0);if((r[(r[s>>2]|0)+2376>>2]|0)==1)i[(r[s>>2]|0)+2736+31>>0]=4;if((i[(r[s>>2]|0)+2736+31>>0]|0)<4){r[d>>2]=0;while(1){if((r[d>>2]|0)>=(r[(r[s>>2]|0)+2340>>2]|0))break;c=(a[(r[s>>2]|0)+2344+(r[d>>2]<<1)>>1]|0)+((W(i[(r[s>>2]|0)+2736+31>>0]|0,(a[f+(r[d>>2]<<1)>>1]|0)-(a[(r[s>>2]|0)+2344+(r[d>>2]<<1)>>1]|0)|0)|0)>>2)&65535;a[h+(r[d>>2]<<1)>>1]=c;r[d>>2]=(r[d>>2]|0)+1}wn((r[l>>2]|0)+32|0,h,r[(r[s>>2]|0)+2340>>2]|0)}else La((r[l>>2]|0)+32|0,(r[l>>2]|0)+32+32|0,r[(r[s>>2]|0)+2340>>2]<<1|0)|0;La((r[s>>2]|0)+2344|0,f|0,r[(r[s>>2]|0)+2340>>2]<<1|0)|0;if(r[(r[s>>2]|0)+4160>>2]|0){Qn((r[l>>2]|0)+32|0,r[(r[s>>2]|0)+2340>>2]|0,63570);Qn((r[l>>2]|0)+32+32|0,r[(r[s>>2]|0)+2340>>2]|0,63570)}if((i[(r[s>>2]|0)+2736+29>>0]|0)!=2){Na(r[l>>2]|0,0,r[(r[s>>2]|0)+2324>>2]<<2|0)|0;Na((r[l>>2]|0)+96|0,0,(r[(r[s>>2]|0)+2324>>2]|0)*5<<1|0)|0;i[(r[s>>2]|0)+2736+32>>0]=0;_=0;v=r[l>>2]|0;y=v+136|0;r[y>>2]=_;m=o;return}ri(a[(r[s>>2]|0)+2736+26>>1]|0,i[(r[s>>2]|0)+2736+28>>0]|0,r[l>>2]|0,r[(r[s>>2]|0)+2316>>2]|0,r[(r[s>>2]|0)+2324>>2]|0);r[g>>2]=r[120+(i[(r[s>>2]|0)+2736+32>>0]<<2)>>2];r[u>>2]=0;while(1){b=(r[s>>2]|0)+2736|0;if((r[u>>2]|0)>=(r[(r[s>>2]|0)+2324>>2]|0))break;r[p>>2]=i[b+4+(r[u>>2]|0)>>0];r[d>>2]=0;while(1){if((r[d>>2]|0)>=5)break;a[(r[l>>2]|0)+96+(((r[u>>2]|0)*5|0)+(r[d>>2]|0)<<1)>>1]=i[(r[g>>2]|0)+(((r[p>>2]|0)*5|0)+(r[d>>2]|0))>>0]<<7;r[d>>2]=(r[d>>2]|0)+1}r[u>>2]=(r[u>>2]|0)+1}r[p>>2]=i[b+33>>0];_=a[17784+(r[p>>2]<<1)>>1]|0;v=r[l>>2]|0;y=v+136|0;r[y>>2]=_;m=o;return}function Bn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0;a=m;m=m+16|0;o=a+12|0;s=a+8|0;l=a+4|0;c=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=i;if((r[(r[o>>2]|0)+2316>>2]|0)!=(r[(r[o>>2]|0)+4168+80>>2]|0)){In(r[o>>2]|0);r[(r[o>>2]|0)+4168+80>>2]=r[(r[o>>2]|0)+2316>>2]}i=r[o>>2]|0;n=r[s>>2]|0;if(r[c>>2]|0){Kn(i,n,r[l>>2]|0);l=(r[o>>2]|0)+4160|0;r[l>>2]=(r[l>>2]|0)+1;m=a;return}else{Yn(i,n);m=a;return}}function Hn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;i=m;m=m+48|0;o=i+40|0;s=i+36|0;l=i+32|0;c=i+28|0;d=i+24|0;u=i+20|0;p=i+16|0;f=i+12|0;h=i+8|0;g=i+4|0;_=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[p>>2]=(r[o>>2]|0)+4168;if(r[(r[o>>2]|0)+4160>>2]|0){jn((r[p>>2]|0)+60|0,(r[p>>2]|0)+64|0,r[s>>2]|0,r[l>>2]|0);v=1;y=r[p>>2]|0;b=y+48|0;r[b>>2]=v;m=i;return}e:do if(r[(r[o>>2]|0)+4168+48>>2]|0){jn(u,d,r[s>>2]|0,r[l>>2]|0);if((r[d>>2]|0)<=(r[(r[p>>2]|0)+64>>2]|0)){if((r[d>>2]|0)<(r[(r[p>>2]|0)+64>>2]|0))r[u>>2]=r[u>>2]>>(r[(r[p>>2]|0)+64>>2]|0)-(r[d>>2]|0)}else r[(r[p>>2]|0)+60>>2]=r[(r[p>>2]|0)+60>>2]>>(r[d>>2]|0)-(r[(r[p>>2]|0)+64>>2]|0);if((r[u>>2]|0)>(r[(r[p>>2]|0)+60>>2]|0)){r[h>>2]=Vn(r[(r[p>>2]|0)+60>>2]|0)|0;r[h>>2]=(r[h>>2]|0)-1;r[(r[p>>2]|0)+60>>2]=r[(r[p>>2]|0)+60>>2]<<r[h>>2];n=r[u>>2]|0;r[u>>2]=n>>(qn(24-(r[h>>2]|0)|0,0)|0);r[f>>2]=(r[(r[p>>2]|0)+60>>2]|0)/(((r[u>>2]|0)>1?r[u>>2]|0:1)|0)|0;r[g>>2]=(zn(r[f>>2]|0)|0)<<4;r[_>>2]=(65536-(r[g>>2]|0)|0)/(r[l>>2]|0)|0;r[_>>2]=r[_>>2]<<2;r[c>>2]=0;while(1){if((r[c>>2]|0)>=(r[l>>2]|0))break e;n=W(r[g>>2]>>16,a[(r[s>>2]|0)+(r[c>>2]<<1)>>1]|0)|0;t=n+((W(r[g>>2]&65535,a[(r[s>>2]|0)+(r[c>>2]<<1)>>1]|0)|0)>>16)&65535;a[(r[s>>2]|0)+(r[c>>2]<<1)>>1]=t;r[g>>2]=(r[g>>2]|0)+(r[_>>2]|0);if((r[g>>2]|0)>65536)break e;r[c>>2]=(r[c>>2]|0)+1}}}while(0);v=0;y=r[p>>2]|0;b=y+48|0;r[b>>2]=v;m=i;return}function jn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;o=m;m=m+32|0;s=o+28|0;l=o+24|0;c=o+20|0;d=o+16|0;u=o+12|0;p=o+8|0;f=o+4|0;h=o;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[h>>2]=0;r[p>>2]=0;r[d>>2]=(r[d>>2]|0)+-1;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[d>>2]|0))break;r[h>>2]=(r[h>>2]|0)+(W(a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]|0,a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]|0)|0);r[h>>2]=(r[h>>2]|0)+(W(a[(r[c>>2]|0)+((r[u>>2]|0)+1<<1)>>1]|0,a[(r[c>>2]|0)+((r[u>>2]|0)+1<<1)>>1]|0)|0);if((r[h>>2]|0)<0){g=4;break}r[u>>2]=(r[u>>2]|0)+2}if((g|0)==4){r[h>>2]=(r[h>>2]|0)>>>2;r[p>>2]=2}while(1){if((r[u>>2]|0)>=(r[d>>2]|0))break;r[f>>2]=W(a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]|0,a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]|0)|0;r[f>>2]=(r[f>>2]|0)+(W(a[(r[c>>2]|0)+((r[u>>2]|0)+1<<1)>>1]|0,a[(r[c>>2]|0)+((r[u>>2]|0)+1<<1)>>1]|0)|0);r[h>>2]=(r[h>>2]|0)+((r[f>>2]|0)>>>(r[p>>2]|0));if((r[h>>2]|0)<0){r[h>>2]=(r[h>>2]|0)>>>2;r[p>>2]=(r[p>>2]|0)+2}r[u>>2]=(r[u>>2]|0)+2}if((r[u>>2]|0)==(r[d>>2]|0)){r[f>>2]=W(a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]|0,a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]|0)|0;r[h>>2]=(r[h>>2]|0)+(r[f>>2]>>r[p>>2])}if(!(r[h>>2]&-1073741824)){_=r[p>>2]|0;v=r[l>>2]|0;r[v>>2]=_;y=r[h>>2]|0;b=r[s>>2]|0;r[b>>2]=y;m=o;return}r[h>>2]=(r[h>>2]|0)>>>2;r[p>>2]=(r[p>>2]|0)+2;_=r[p>>2]|0;v=r[l>>2]|0;r[v>>2]=_;y=r[h>>2]|0;b=r[s>>2]|0;r[b>>2]=y;m=o;return}function Vn(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t;r[n>>2]=e;if(!(r[n>>2]|0)){i=32;m=t;return i|0}i=32-(32-(Y(r[n>>2]|0)|0))|0;m=t;return i|0}function qn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function zn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0;t=m;m=m+32|0;n=t+16|0;i=t+12|0;a=t+8|0;o=t+4|0;s=t;r[i>>2]=e;if((r[i>>2]|0)<=0){r[n>>2]=0;l=r[n>>2]|0;m=t;return l|0}Wn(r[i>>2]|0,o,s);if(r[o>>2]&1|0)r[a>>2]=32768;else r[a>>2]=46214;r[a>>2]=r[a>>2]>>(r[o>>2]>>1);o=W(r[a>>2]>>16,(((r[s>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;r[a>>2]=(r[a>>2]|0)+(o+((W(r[a>>2]&65535,(((r[s>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));r[n>>2]=r[a>>2];l=r[n>>2]|0;m=t;return l|0}function Wn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0;i=m;m=m+16|0;a=i+12|0;o=i+8|0;s=i+4|0;l=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[l>>2]=Vn(r[a>>2]|0)|0;r[r[o>>2]>>2]=r[l>>2];o=(Gn(r[a>>2]|0,24-(r[l>>2]|0)|0)|0)&127;r[r[s>>2]>>2]=o;m=i;return}function Gn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0;n=m;m=m+32|0;i=n+20|0;a=n+16|0;o=n+12|0;s=n+8|0;l=n+4|0;c=n;r[a>>2]=e;r[o>>2]=t;r[s>>2]=r[a>>2];r[l>>2]=r[o>>2];r[c>>2]=0-(r[o>>2]|0);if(!(r[o>>2]|0)){r[i>>2]=r[a>>2];d=r[i>>2]|0;m=n;return d|0}a=r[s>>2]|0;if((r[o>>2]|0)<0){r[i>>2]=a<<r[c>>2]|(r[s>>2]|0)>>>(32-(r[c>>2]|0)|0);d=r[i>>2]|0;m=n;return d|0}else{r[i>>2]=a<<32-(r[l>>2]|0)|(r[s>>2]|0)>>>(r[l>>2]|0);d=r[i>>2]|0;m=n;return d|0}return 0}function Kn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0;i=m;m=m+160|0;o=i+116|0;s=i+112|0;l=i+108|0;c=i+104|0;d=i+100|0;u=i+96|0;p=i+92|0;f=i+88|0;h=i+84|0;g=i+80|0;_=i+76|0;v=i+72|0;y=i+68|0;b=i+64|0;w=i+60|0;k=i+56|0;M=i+52|0;S=i+48|0;A=i+44|0;C=i+40|0;T=i+36|0;E=i+152|0;$=i+32|0;I=i+28|0;x=i+120|0;P=i+24|0;D=i+16|0;R=i+8|0;O=i+4|0;N=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[P>>2]=(r[o>>2]|0)+4168;n=(r[(r[o>>2]|0)+2336>>2]|0)+(r[(r[o>>2]|0)+2328>>2]|0)|0;r[R>>2]=oe()|0;t=m;m=m+((1*(n<<2)|0)+15&-16)|0;n=m;m=m+((1*(r[(r[o>>2]|0)+2336>>2]<<1)|0)+15&-16)|0;r[D>>2]=r[(r[P>>2]|0)+72>>2]>>6;r[D+4>>2]=r[(r[P>>2]|0)+72+4>>2]>>6;if(r[(r[o>>2]|0)+2376>>2]|0){L=(r[P>>2]|0)+14|0;F=L+32|0;do{a[L>>1]=0;L=L+2|0}while((L|0)<(F|0))}Xn(k,g,M,_,(r[o>>2]|0)+4|0,D,r[(r[o>>2]|0)+2332>>2]|0,r[(r[o>>2]|0)+2324>>2]|0);e=(r[o>>2]|0)+4|0;U=r[(r[P>>2]|0)+84>>2]|0;if((r[k>>2]>>r[_>>2]|0)<(r[M>>2]>>r[g>>2]|0))r[S>>2]=e+((Jn(0,(W(U-1|0,r[(r[P>>2]|0)+88>>2]|0)|0)-128|0)|0)<<2);else r[S>>2]=e+((Jn(0,(W(U,r[(r[P>>2]|0)+88>>2]|0)|0)-128|0)|0)<<2);r[$>>2]=(r[P>>2]|0)+4;a[E>>1]=a[(r[P>>2]|0)+56>>1]|0;r[y>>2]=a[20502+((Zn(1,r[(r[o>>2]|0)+4160>>2]|0)|0)<<1)>>1];U=(r[(r[o>>2]|0)+4164>>2]|0)==2;e=Zn(1,r[(r[o>>2]|0)+4160>>2]|0)|0;if(U)r[b>>2]=a[20506+(e<<1)>>1];else r[b>>2]=a[20510+(e<<1)>>1];Qn((r[P>>2]|0)+14|0,r[(r[o>>2]|0)+2340>>2]|0,64881);La(x|0,(r[P>>2]|0)+14|0,r[(r[o>>2]|0)+2340>>2]<<1|0)|0;do if(!(r[(r[o>>2]|0)+4160>>2]|0)){a[E>>1]=16384;if((r[(r[o>>2]|0)+4164>>2]|0)!=2){r[O>>2]=Sn((r[P>>2]|0)+14|0,r[(r[o>>2]|0)+2340>>2]|0)|0;r[N>>2]=ti(134217728,r[O>>2]|0)|0;r[N>>2]=qn(4194304,r[N>>2]|0)|0;r[N>>2]=r[N>>2]<<3;e=W(r[N>>2]>>16,(r[b>>2]&65535)<<16>>16)|0;r[b>>2]=e+((W(r[N>>2]&65535,(r[b>>2]&65535)<<16>>16)|0)>>16)>>14;break}r[c>>2]=0;while(1){if((r[c>>2]|0)>=5)break;a[E>>1]=(a[E>>1]|0)-(a[(r[$>>2]|0)+(r[c>>2]<<1)>>1]|0);r[c>>2]=(r[c>>2]|0)+1}a[E>>1]=ei(3277,a[E>>1]|0)|0;a[E>>1]=(W(a[E>>1]|0,a[(r[P>>2]|0)+68>>1]|0)|0)>>14}while(0);r[v>>2]=r[(r[P>>2]|0)+52>>2];r[p>>2]=(r[r[P>>2]>>2]>>7)+1>>1;r[h>>2]=r[(r[o>>2]|0)+2336>>2];r[f>>2]=(r[(r[o>>2]|0)+2336>>2]|0)-(r[p>>2]|0)-(r[(r[o>>2]|0)+2340>>2]|0)-2;Rn(n+(r[f>>2]<<1)|0,(r[o>>2]|0)+1348+(r[f>>2]<<1)|0,x,(r[(r[o>>2]|0)+2336>>2]|0)-(r[f>>2]|0)|0,r[(r[o>>2]|0)+2340>>2]|0);r[w>>2]=ni(r[(r[P>>2]|0)+72+4>>2]|0,46)|0;r[w>>2]=(r[w>>2]|0)<1073741823?r[w>>2]|0:1073741823;r[c>>2]=(r[f>>2]|0)+(r[(r[o>>2]|0)+2340>>2]|0);while(1){if((r[c>>2]|0)>=(r[(r[o>>2]|0)+2336>>2]|0))break;N=W(r[w>>2]>>16,a[n+(r[c>>2]<<1)>>1]|0)|0;O=N+((W(r[w>>2]&65535,a[n+(r[c>>2]<<1)>>1]|0)|0)>>16)|0;r[t+(r[c>>2]<<2)>>2]=O;r[c>>2]=(r[c>>2]|0)+1}r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[(r[o>>2]|0)+2324>>2]|0))break;r[A>>2]=t+((r[h>>2]|0)-(r[p>>2]|0)+2<<2);r[c>>2]=0;while(1){if((r[c>>2]|0)>=(r[(r[o>>2]|0)+2332>>2]|0))break;r[T>>2]=2;n=W(r[r[A>>2]>>2]>>16,a[r[$>>2]>>1]|0)|0;r[T>>2]=(r[T>>2]|0)+(n+((W(r[r[A>>2]>>2]&65535,a[r[$>>2]>>1]|0)|0)>>16));n=W(r[(r[A>>2]|0)+-4>>2]>>16,a[(r[$>>2]|0)+2>>1]|0)|0;r[T>>2]=(r[T>>2]|0)+(n+((W(r[(r[A>>2]|0)+-4>>2]&65535,a[(r[$>>2]|0)+2>>1]|0)|0)>>16));n=W(r[(r[A>>2]|0)+-8>>2]>>16,a[(r[$>>2]|0)+4>>1]|0)|0;r[T>>2]=(r[T>>2]|0)+(n+((W(r[(r[A>>2]|0)+-8>>2]&65535,a[(r[$>>2]|0)+4>>1]|0)|0)>>16));n=W(r[(r[A>>2]|0)+-12>>2]>>16,a[(r[$>>2]|0)+6>>1]|0)|0;r[T>>2]=(r[T>>2]|0)+(n+((W(r[(r[A>>2]|0)+-12>>2]&65535,a[(r[$>>2]|0)+6>>1]|0)|0)>>16));n=W(r[(r[A>>2]|0)+-16>>2]>>16,a[(r[$>>2]|0)+8>>1]|0)|0;r[T>>2]=(r[T>>2]|0)+(n+((W(r[(r[A>>2]|0)+-16>>2]&65535,a[(r[$>>2]|0)+8>>1]|0)|0)>>16));r[A>>2]=(r[A>>2]|0)+4;r[v>>2]=907633515+(W(r[v>>2]|0,196314165)|0);r[f>>2]=r[v>>2]>>25&127;n=W(r[(r[S>>2]|0)+(r[f>>2]<<2)>>2]>>16,a[E>>1]|0)|0;w=(r[T>>2]|0)+(n+((W(r[(r[S>>2]|0)+(r[f>>2]<<2)>>2]&65535,a[E>>1]|0)|0)>>16))<<2;r[t+(r[h>>2]<<2)>>2]=w;r[h>>2]=(r[h>>2]|0)+1;r[c>>2]=(r[c>>2]|0)+1}r[d>>2]=0;while(1){if((r[d>>2]|0)>=5)break;w=(W((r[y>>2]&65535)<<16>>16,a[(r[$>>2]|0)+(r[d>>2]<<1)>>1]|0)|0)>>15&65535;a[(r[$>>2]|0)+(r[d>>2]<<1)>>1]=w;r[d>>2]=(r[d>>2]|0)+1}a[E>>1]=(W(a[E>>1]|0,(r[b>>2]&65535)<<16>>16)|0)>>15;r[r[P>>2]>>2]=(r[r[P>>2]>>2]|0)+(((r[r[P>>2]>>2]>>16)*655|0)+((r[r[P>>2]>>2]&65535)*655>>16));w=ti(r[r[P>>2]>>2]|0,((r[(r[o>>2]|0)+2316>>2]&65535)<<16>>16)*18<<8)|0;r[r[P>>2]>>2]=w;r[p>>2]=(r[r[P>>2]>>2]>>7)+1>>1;r[u>>2]=(r[u>>2]|0)+1}r[I>>2]=t+((r[(r[o>>2]|0)+2336>>2]|0)-16<<2);L=r[I>>2]|0;t=(r[o>>2]|0)+1284|0;F=L+64|0;do{r[L>>2]=r[t>>2];L=L+4|0;t=t+4|0}while((L|0)<(F|0));r[c>>2]=0;while(1){B=r[o>>2]|0;if((r[c>>2]|0)>=(r[(r[o>>2]|0)+2328>>2]|0))break;r[C>>2]=r[B+2340>>2]>>1;u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-1<<2)>>2]>>16,a[x>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-1<<2)>>2]&65535,a[x>>1]|0)|0)>>16));u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-2<<2)>>2]>>16,a[x+2>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-2<<2)>>2]&65535,a[x+2>>1]|0)|0)>>16));u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-3<<2)>>2]>>16,a[x+4>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-3<<2)>>2]&65535,a[x+4>>1]|0)|0)>>16));u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-4<<2)>>2]>>16,a[x+6>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-4<<2)>>2]&65535,a[x+6>>1]|0)|0)>>16));u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-5<<2)>>2]>>16,a[x+8>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-5<<2)>>2]&65535,a[x+8>>1]|0)|0)>>16));u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-6<<2)>>2]>>16,a[x+10>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-6<<2)>>2]&65535,a[x+10>>1]|0)|0)>>16));u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-7<<2)>>2]>>16,a[x+12>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-7<<2)>>2]&65535,a[x+12>>1]|0)|0)>>16));u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-8<<2)>>2]>>16,a[x+14>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-8<<2)>>2]&65535,a[x+14>>1]|0)|0)>>16));u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-9<<2)>>2]>>16,a[x+16>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-9<<2)>>2]&65535,a[x+16>>1]|0)|0)>>16));u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-10<<2)>>2]>>16,a[x+18>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-10<<2)>>2]&65535,a[x+18>>1]|0)|0)>>16));r[d>>2]=10;while(1){if((r[d>>2]|0)>=(r[(r[o>>2]|0)+2340>>2]|0))break;u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-(r[d>>2]|0)-1<<2)>>2]>>16,a[x+(r[d>>2]<<1)>>1]|0)|0;r[C>>2]=(r[C>>2]|0)+(u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)-(r[d>>2]|0)-1<<2)>>2]&65535,a[x+(r[d>>2]<<1)>>1]|0)|0)>>16));r[d>>2]=(r[d>>2]|0)+1}r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]=(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0)+(r[C>>2]<<4);u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]>>16,(r[D+4>>2]&65535)<<16>>16)|0;b=u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]&65535,(r[D+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((b+(W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0,(r[D+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){b=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]>>16,(r[D+4>>2]&65535)<<16>>16)|0;u=b+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]&65535,(r[D+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((u+(W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0,(r[D+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)H=-32768;else{u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]>>16,(r[D+4>>2]&65535)<<16>>16)|0;b=u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]&65535,(r[D+4>>2]&65535)<<16>>16)|0)>>16)|0;H=(b+(W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0,(r[D+4>>2]>>15)+1>>1)|0)>>7)+1>>1}}else H=32767;if((H|0)<=32767){b=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]>>16,(r[D+4>>2]&65535)<<16>>16)|0;u=b+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]&65535,(r[D+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((u+(W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0,(r[D+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]>>16,(r[D+4>>2]&65535)<<16>>16)|0;b=u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]&65535,(r[D+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((b+(W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0,(r[D+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)j=-32768;else{b=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]>>16,(r[D+4>>2]&65535)<<16>>16)|0;u=b+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]&65535,(r[D+4>>2]&65535)<<16>>16)|0)>>16)|0;j=(u+(W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0,(r[D+4>>2]>>15)+1>>1)|0)>>7)+1>>1}}else j=32767;if((j|0)>=-32768){u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]>>16,(r[D+4>>2]&65535)<<16>>16)|0;b=u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]&65535,(r[D+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((b+(W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0,(r[D+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<=32767){b=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]>>16,(r[D+4>>2]&65535)<<16>>16)|0;u=b+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]&65535,(r[D+4>>2]&65535)<<16>>16)|0)>>16)|0;if(((u+(W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0,(r[D+4>>2]>>15)+1>>1)|0)>>7)+1>>1|0)<-32768)V=-32768;else{u=W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]>>16,(r[D+4>>2]&65535)<<16>>16)|0;b=u+((W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]&65535,(r[D+4>>2]&65535)<<16>>16)|0)>>16)|0;V=(b+(W(r[(r[I>>2]|0)+(16+(r[c>>2]|0)<<2)>>2]|0,(r[D+4>>2]>>15)+1>>1)|0)>>7)+1>>1}}else V=32767}else V=-32768}else V=32767;a[(r[l>>2]|0)+(r[c>>2]<<1)>>1]=V;r[c>>2]=(r[c>>2]|0)+1}L=B+1284|0;t=(r[I>>2]|0)+(r[(r[o>>2]|0)+2328>>2]<<2)|0;F=L+64|0;do{r[L>>2]=r[t>>2];L=L+4|0;t=t+4|0}while((L|0)<(F|0));r[(r[P>>2]|0)+52>>2]=r[v>>2];a[(r[P>>2]|0)+56>>1]=a[E>>1]|0;r[c>>2]=0;while(1){if((r[c>>2]|0)>=4)break;r[(r[s>>2]|0)+(r[c>>2]<<2)>>2]=r[p>>2];r[c>>2]=(r[c>>2]|0)+1}ce(r[R>>2]|0);m=i;return}function Yn(e,t){e=e|0;t=t|0;var n=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0;n=m;m=m+48|0;o=n+40|0;s=n+36|0;l=n+32|0;c=n+28|0;d=n+24|0;u=n+20|0;p=n+16|0;f=n+12|0;h=n+8|0;g=n+4|0;_=n;r[o>>2]=e;r[s>>2]=t;r[p>>2]=(r[o>>2]|0)+4168;r[(r[o>>2]|0)+4164>>2]=i[(r[o>>2]|0)+2736+29>>0];r[l>>2]=0;e:do if((i[(r[o>>2]|0)+2736+29>>0]|0)==2){r[u>>2]=0;while(1){t=W(r[u>>2]|0,r[(r[o>>2]|0)+2332>>2]|0)|0;if((t|0)>=(r[(r[s>>2]|0)+((r[(r[o>>2]|0)+2324>>2]|0)-1<<2)>>2]|0))break;if((r[u>>2]|0)==(r[(r[o>>2]|0)+2324>>2]|0))break;r[c>>2]=0;r[d>>2]=0;while(1){if((r[d>>2]|0)>=5)break;r[c>>2]=(r[c>>2]|0)+(a[(r[s>>2]|0)+96+((((r[(r[o>>2]|0)+2324>>2]|0)-1-(r[u>>2]|0)|0)*5|0)+(r[d>>2]|0)<<1)>>1]|0);r[d>>2]=(r[d>>2]|0)+1}if((r[c>>2]|0)>(r[l>>2]|0)){r[l>>2]=r[c>>2];t=(r[p>>2]|0)+4|0;e=(r[s>>2]|0)+96+((((r[(r[o>>2]|0)+2324>>2]|0)-1-(r[u>>2]|0)&65535)<<16>>16)*5<<1)|0;a[t>>1]=a[e>>1]|0;a[t+2>>1]=a[e+2>>1]|0;a[t+4>>1]=a[e+4>>1]|0;a[t+6>>1]=a[e+6>>1]|0;a[t+8>>1]=a[e+8>>1]|0;r[r[p>>2]>>2]=r[(r[s>>2]|0)+((r[(r[o>>2]|0)+2324>>2]|0)-1-(r[u>>2]|0)<<2)>>2]<<8}r[u>>2]=(r[u>>2]|0)+1}e=(r[p>>2]|0)+4|0;r[e>>2]=0;r[e+4>>2]=0;a[e+8>>1]=0;a[(r[p>>2]|0)+4+4>>1]=r[l>>2];if((r[l>>2]|0)<11469){r[h>>2]=11744256;r[f>>2]=(r[h>>2]|0)/(((r[l>>2]|0)>1?r[l>>2]|0:1)|0)|0;r[d>>2]=0;while(1){if((r[d>>2]|0)>=5)break e;e=(W(a[(r[p>>2]|0)+4+(r[d>>2]<<1)>>1]|0,(r[f>>2]&65535)<<16>>16)|0)>>10&65535;a[(r[p>>2]|0)+4+(r[d>>2]<<1)>>1]=e;r[d>>2]=(r[d>>2]|0)+1}}if((r[l>>2]|0)>15565){r[_>>2]=255016960;r[g>>2]=(r[_>>2]|0)/(((r[l>>2]|0)>1?r[l>>2]|0:1)|0)|0;r[d>>2]=0;while(1){if((r[d>>2]|0)>=5)break e;e=(W(a[(r[p>>2]|0)+4+(r[d>>2]<<1)>>1]|0,(r[g>>2]&65535)<<16>>16)|0)>>14&65535;a[(r[p>>2]|0)+4+(r[d>>2]<<1)>>1]=e;r[d>>2]=(r[d>>2]|0)+1}}}else{r[r[p>>2]>>2]=((r[(r[o>>2]|0)+2316>>2]&65535)<<16>>16)*18<<8;e=(r[p>>2]|0)+4|0;r[e>>2]=0;r[e+4>>2]=0;a[e+8>>1]=0}while(0);La((r[p>>2]|0)+14|0,(r[s>>2]|0)+32+32|0,r[(r[o>>2]|0)+2340>>2]<<1|0)|0;a[(r[p>>2]|0)+68>>1]=r[(r[s>>2]|0)+136>>2];d=(r[p>>2]|0)+72|0;g=(r[s>>2]|0)+16+((r[(r[o>>2]|0)+2324>>2]|0)-2<<2)|0;r[d>>2]=r[g>>2];r[d+4>>2]=r[g+4>>2];r[(r[p>>2]|0)+88>>2]=r[(r[o>>2]|0)+2332>>2];r[(r[p>>2]|0)+84>>2]=r[(r[o>>2]|0)+2324>>2];m=n;return}function Xn(e,t,n,i,o,s,l,c){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;s=s|0;l=l|0;c=c|0;var d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0;d=m;m=m+48|0;u=d+44|0;p=d+40|0;f=d+36|0;h=d+32|0;g=d+28|0;_=d+24|0;v=d+20|0;y=d+16|0;b=d+12|0;w=d+8|0;k=d+4|0;M=d;r[u>>2]=e;r[p>>2]=t;r[f>>2]=n;r[h>>2]=i;r[g>>2]=o;r[_>>2]=s;r[v>>2]=l;r[y>>2]=c;c=r[v>>2]<<1;r[M>>2]=oe()|0;l=m;m=m+((1*(c<<1)|0)+15&-16)|0;r[k>>2]=l;r[w>>2]=0;while(1){if((r[w>>2]|0)>=2)break;r[b>>2]=0;while(1){if((r[b>>2]|0)>=(r[v>>2]|0))break;c=r[(r[g>>2]|0)+((r[b>>2]|0)+(W((r[w>>2]|0)+(r[y>>2]|0)-2|0,r[v>>2]|0)|0)<<2)>>2]>>16;s=W(c,(r[(r[_>>2]|0)+(r[w>>2]<<2)>>2]&65535)<<16>>16)|0;c=r[(r[g>>2]|0)+((r[b>>2]|0)+(W((r[w>>2]|0)+(r[y>>2]|0)-2|0,r[v>>2]|0)|0)<<2)>>2]&65535;o=s+((W(c,(r[(r[_>>2]|0)+(r[w>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;c=r[(r[g>>2]|0)+((r[b>>2]|0)+(W((r[w>>2]|0)+(r[y>>2]|0)-2|0,r[v>>2]|0)|0)<<2)>>2]|0;if((o+(W(c,(r[(r[_>>2]|0)+(r[w>>2]<<2)>>2]>>15)+1>>1)|0)>>8|0)<=32767){c=r[(r[g>>2]|0)+((r[b>>2]|0)+(W((r[w>>2]|0)+(r[y>>2]|0)-2|0,r[v>>2]|0)|0)<<2)>>2]>>16;o=W(c,(r[(r[_>>2]|0)+(r[w>>2]<<2)>>2]&65535)<<16>>16)|0;c=r[(r[g>>2]|0)+((r[b>>2]|0)+(W((r[w>>2]|0)+(r[y>>2]|0)-2|0,r[v>>2]|0)|0)<<2)>>2]&65535;s=o+((W(c,(r[(r[_>>2]|0)+(r[w>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;c=r[(r[g>>2]|0)+((r[b>>2]|0)+(W((r[w>>2]|0)+(r[y>>2]|0)-2|0,r[v>>2]|0)|0)<<2)>>2]|0;if((s+(W(c,(r[(r[_>>2]|0)+(r[w>>2]<<2)>>2]>>15)+1>>1)|0)>>8|0)<-32768)S=-32768;else{c=r[(r[g>>2]|0)+((r[b>>2]|0)+(W((r[w>>2]|0)+(r[y>>2]|0)-2|0,r[v>>2]|0)|0)<<2)>>2]>>16;s=W(c,(r[(r[_>>2]|0)+(r[w>>2]<<2)>>2]&65535)<<16>>16)|0;c=r[(r[g>>2]|0)+((r[b>>2]|0)+(W((r[w>>2]|0)+(r[y>>2]|0)-2|0,r[v>>2]|0)|0)<<2)>>2]&65535;o=s+((W(c,(r[(r[_>>2]|0)+(r[w>>2]<<2)>>2]&65535)<<16>>16)|0)>>16)|0;c=r[(r[g>>2]|0)+((r[b>>2]|0)+(W((r[w>>2]|0)+(r[y>>2]|0)-2|0,r[v>>2]|0)|0)<<2)>>2]|0;S=o+(W(c,(r[(r[_>>2]|0)+(r[w>>2]<<2)>>2]>>15)+1>>1)|0)>>8}}else S=32767;a[(r[k>>2]|0)+(r[b>>2]<<1)>>1]=S;r[b>>2]=(r[b>>2]|0)+1}r[k>>2]=(r[k>>2]|0)+(r[v>>2]<<1);r[w>>2]=(r[w>>2]|0)+1}jn(r[u>>2]|0,r[p>>2]|0,l,r[v>>2]|0);jn(r[f>>2]|0,r[h>>2]|0,l+(r[v>>2]<<1)|0,r[v>>2]|0);ce(r[M>>2]|0);m=d;return}function Jn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function Zn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)<(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function Qn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;i=m;m=m+32|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=(r[l>>2]|0)-65536;r[c>>2]=0;while(1){u=r[l>>2]|0;p=r[o>>2]|0;if((r[c>>2]|0)>=((r[s>>2]|0)-1|0))break;n=((W(u,a[p+(r[c>>2]<<1)>>1]|0)|0)>>15)+1>>1&65535;a[(r[o>>2]|0)+(r[c>>2]<<1)>>1]=n;n=((W(r[l>>2]|0,r[d>>2]|0)|0)>>15)+1>>1;r[l>>2]=(r[l>>2]|0)+n;r[c>>2]=(r[c>>2]|0)+1}c=((W(u,a[p+((r[s>>2]|0)-1<<1)>>1]|0)|0)>>15)+1>>1&65535;a[(r[o>>2]|0)+((r[s>>2]|0)-1<<1)>>1]=c;m=i;return}function ei(e,t){e=e|0;t=t|0;var n=0,i=0,r=0;n=m;m=m+16|0;i=n+2|0;r=n;a[i>>1]=e;a[r>>1]=t;m=n;return((a[i>>1]|0)>(a[r>>1]|0)?a[i>>1]|0:a[r>>1]|0)&65535|0}function ti(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)<(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function ni(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;n=m;m=m+48|0;i=n+32|0;a=n+28|0;o=n+24|0;s=n+20|0;l=n+16|0;c=n+12|0;d=n+8|0;u=n+4|0;p=n;r[a>>2]=e;r[o>>2]=t;t=r[a>>2]|0;r[s>>2]=(Vn((r[a>>2]|0)>0?t:0-t|0)|0)-1;r[d>>2]=r[a>>2]<<r[s>>2];r[c>>2]=536870911/(r[d>>2]>>16|0)|0;r[p>>2]=r[c>>2]<<16;a=W(r[d>>2]>>16,(r[c>>2]&65535)<<16>>16)|0;r[u>>2]=536870912-(a+((W(r[d>>2]&65535,(r[c>>2]&65535)<<16>>16)|0)>>16))<<3;d=W(r[u>>2]>>16,(r[c>>2]&65535)<<16>>16)|0;a=(r[p>>2]|0)+(d+((W(r[u>>2]&65535,(r[c>>2]&65535)<<16>>16)|0)>>16))|0;r[p>>2]=a+(W(r[u>>2]|0,(r[c>>2]>>15)+1>>1)|0);r[l>>2]=61-(r[s>>2]|0)-(r[o>>2]|0);o=r[l>>2]|0;if((r[l>>2]|0)>0)if((o|0)<32){r[i>>2]=r[p>>2]>>r[l>>2];f=r[i>>2]|0;m=n;return f|0}else{r[i>>2]=0;f=r[i>>2]|0;m=n;return f|0}s=r[p>>2]|0;c=0-(r[l>>2]|0)|0;do if((-2147483648>>0-o|0)>(2147483647>>0-(r[l>>2]|0)|0)){if((s|0)>(-2147483648>>c|0)){h=-2147483648>>0-(r[l>>2]|0);break}if((r[p>>2]|0)<(2147483647>>0-(r[l>>2]|0)|0)){h=2147483647>>0-(r[l>>2]|0);break}else{h=r[p>>2]|0;break}}else{if((s|0)>(2147483647>>c|0)){h=2147483647>>0-(r[l>>2]|0);break}if((r[p>>2]|0)<(-2147483648>>0-(r[l>>2]|0)|0)){h=-2147483648>>0-(r[l>>2]|0);break}else{h=r[p>>2]|0;break}}while(0);r[i>>2]=h<<0-(r[l>>2]|0);f=r[i>>2]|0;m=n;return f|0}function ii(e,t,n,a,o){e=e|0;t=t|0;n=n|0;a=a|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0;s=m;m=m+32|0;l=s+28|0;c=s+24|0;d=s+20|0;u=s+16|0;p=s+12|0;f=s+8|0;h=s+4|0;g=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=a;r[p>>2]=o;r[f>>2]=0;while(1){if((r[f>>2]|0)>=(r[p>>2]|0))break;o=i[(r[c>>2]|0)+(r[f>>2]|0)>>0]|0;if((r[f>>2]|0)==0&(r[u>>2]|0)==0){a=(yi(o,(i[r[d>>2]>>0]|0)-16|0)|0)&255;i[r[d>>2]>>0]=a}else{r[h>>2]=o+-4;r[g>>2]=8+(i[r[d>>2]>>0]|0);o=r[h>>2]|0;if((r[h>>2]|0)>(r[g>>2]|0)){_=(o<<1)-(r[g>>2]|0)|0;v=r[d>>2]|0}else{_=o;v=r[d>>2]|0}i[v>>0]=(i[v>>0]|0)+_}if((i[r[d>>2]>>0]|0)<=63)if((i[r[d>>2]>>0]|0)<0)y=0;else y=i[r[d>>2]>>0]|0;else y=63;i[r[d>>2]>>0]=y;o=wi(bi(((i[r[d>>2]>>0]<<16>>16)*29|0)+((i[r[d>>2]>>0]<<16>>16)*7281>>16)+2090|0,3967)|0)|0;r[(r[l>>2]|0)+(r[f>>2]<<2)>>2]=o;r[f>>2]=(r[f>>2]|0)+1}m=s;return}function ai(e,t,n){e=e|0;t=t|0;n=n|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;s=m;m=m+144|0;l=s+24|0;c=s+20|0;d=s+16|0;u=s+12|0;p=s+128|0;f=s+96|0;h=s+64|0;g=s+32|0;_=s+8|0;v=s+4|0;y=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[y>>2]=(r[(r[d>>2]|0)+8>>2]|0)+(W(i[r[c>>2]>>0]|0,a[(r[d>>2]|0)+2>>1]|0)|0);r[u>>2]=0;while(1){if((r[u>>2]|0)>=(a[(r[d>>2]|0)+2>>1]|0))break;a[(r[l>>2]|0)+(r[u>>2]<<1)>>1]=o[(r[y>>2]|0)+(r[u>>2]|0)>>0]<<7;r[u>>2]=(r[u>>2]|0)+1}oi(f,p,r[d>>2]|0,i[r[c>>2]>>0]|0);si(h,(r[c>>2]|0)+1|0,p,a[(r[d>>2]|0)+4>>1]|0,a[(r[d>>2]|0)+2>>1]|0);li(g,r[l>>2]|0,a[(r[d>>2]|0)+2>>1]|0);r[u>>2]=0;while(1){if((r[u>>2]|0)>=(a[(r[d>>2]|0)+2>>1]|0))break;r[_>>2]=ci(a[g+(r[u>>2]<<1)>>1]<<16)|0;r[v>>2]=(a[(r[l>>2]|0)+(r[u>>2]<<1)>>1]|0)+((a[h+(r[u>>2]<<1)>>1]<<14|0)/(r[_>>2]|0)|0);if((r[v>>2]|0)>32767)b=32767;else b=(r[v>>2]|0)<0?0:r[v>>2]|0;a[(r[l>>2]|0)+(r[u>>2]<<1)>>1]=b;r[u>>2]=(r[u>>2]|0)+1}di(r[l>>2]|0,r[(r[d>>2]|0)+32>>2]|0,a[(r[d>>2]|0)+2>>1]|0);m=s;return}function ri(e,t,n,o,s){e=e|0;t=t|0;n=n|0;o=o|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;l=m;m=m+48|0;c=l+36|0;d=l+38|0;u=l+32|0;p=l+28|0;f=l+24|0;h=l+20|0;g=l+16|0;_=l+12|0;v=l+8|0;y=l+4|0;b=l;a[c>>1]=e;i[d>>0]=t;r[u>>2]=n;r[p>>2]=o;r[f>>2]=s;s=(r[f>>2]|0)==4;do if((r[p>>2]|0)==8)if(s){r[b>>2]=23768;r[y>>2]=11;break}else{r[b>>2]=23738;r[y>>2]=3;break}else if(s){r[b>>2]=23812;r[y>>2]=34;break}else{r[b>>2]=23744;r[y>>2]=12;break}while(0);r[_>>2]=(r[p>>2]&65535)<<16>>16<<1;r[v>>2]=((r[p>>2]&65535)<<16>>16)*18;r[h>>2]=(r[_>>2]|0)+(a[c>>1]|0);r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]|0))break;c=W(r[g>>2]|0,r[y>>2]|0)|0;r[(r[u>>2]|0)+(r[g>>2]<<2)>>2]=(r[h>>2]|0)+(i[(r[b>>2]|0)+(c+(i[d>>0]|0))>>0]|0);c=r[(r[u>>2]|0)+(r[g>>2]<<2)>>2]|0;do if((r[_>>2]|0)>(r[v>>2]|0)){if((c|0)>(r[_>>2]|0)){w=r[_>>2]|0;break}if((r[(r[u>>2]|0)+(r[g>>2]<<2)>>2]|0)<(r[v>>2]|0)){w=r[v>>2]|0;break}else{w=r[(r[u>>2]|0)+(r[g>>2]<<2)>>2]|0;break}}else{if((c|0)>(r[v>>2]|0)){w=r[v>>2]|0;break}if((r[(r[u>>2]|0)+(r[g>>2]<<2)>>2]|0)<(r[_>>2]|0)){w=r[_>>2]|0;break}else{w=r[(r[u>>2]|0)+(r[g>>2]<<2)>>2]|0;break}}while(0);r[(r[u>>2]|0)+(r[g>>2]<<2)>>2]=w;r[g>>2]=(r[g>>2]|0)+1}m=l;return}function oi(e,t,n,s){e=e|0;t=t|0;n=n|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;l=m;m=m+32|0;c=l+20|0;d=l+16|0;u=l+12|0;p=l+8|0;f=l+4|0;h=l+24|0;g=l;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=s;r[g>>2]=(r[(r[u>>2]|0)+20>>2]|0)+((W(r[p>>2]|0,a[(r[u>>2]|0)+2>>1]|0)|0)/2|0);r[f>>2]=0;while(1){if((r[f>>2]|0)>=(a[(r[u>>2]|0)+2>>1]|0))break;p=r[g>>2]|0;r[g>>2]=p+1;i[h>>0]=i[p>>0]|0;a[(r[c>>2]|0)+(r[f>>2]<<1)>>1]=((o[h>>0]>>1&7)<<16>>16)*9;p=i[(r[(r[u>>2]|0)+16>>2]|0)+((r[f>>2]|0)+(W(o[h>>0]&1,(a[(r[u>>2]|0)+2>>1]|0)-1|0)|0))>>0]|0;
i[(r[d>>2]|0)+(r[f>>2]|0)>>0]=p;a[(r[c>>2]|0)+((r[f>>2]|0)+1<<1)>>1]=((o[h>>0]>>5&7)<<16>>16)*9;p=i[(r[(r[u>>2]|0)+16>>2]|0)+((r[f>>2]|0)+(W(o[h>>0]>>4&1,(a[(r[u>>2]|0)+2>>1]|0)-1|0)|0)+1)>>0]|0;i[(r[d>>2]|0)+((r[f>>2]|0)+1)>>0]=p;r[f>>2]=(r[f>>2]|0)+2}m=l;return}function si(e,t,n,s,l){e=e|0;t=t|0;n=n|0;s=s|0;l=l|0;var c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;c=m;m=m+32|0;d=c+24|0;u=c+20|0;p=c+16|0;f=c+12|0;h=c+28|0;g=c+8|0;_=c+4|0;v=c;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=s;a[h>>1]=l;r[_>>2]=0;r[g>>2]=(a[h>>1]|0)-1;while(1){if((r[g>>2]|0)<0)break;r[v>>2]=(W((r[_>>2]&65535)<<16>>16,o[(r[p>>2]|0)+(r[g>>2]|0)>>0]|0)|0)>>8;r[_>>2]=i[(r[u>>2]|0)+(r[g>>2]|0)>>0]<<10;h=r[_>>2]|0;if((r[_>>2]|0)<=0){if((h|0)<0)r[_>>2]=(r[_>>2]|0)+102}else r[_>>2]=h-102;h=W(r[_>>2]>>16,(r[f>>2]&65535)<<16>>16)|0;r[_>>2]=(r[v>>2]|0)+(h+((W(r[_>>2]&65535,(r[f>>2]&65535)<<16>>16)|0)>>16));a[(r[d>>2]|0)+(r[g>>2]<<1)>>1]=r[_>>2];r[g>>2]=(r[g>>2]|0)+-1}m=c;return}function li(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;i=m;m=m+32|0;o=i+20|0;s=i+16|0;l=i+12|0;c=i+8|0;d=i+4|0;u=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=_i(a[r[s>>2]>>1]|0,1)|0;r[d>>2]=131072/(r[d>>2]|0)|0;r[u>>2]=_i((a[(r[s>>2]|0)+2>>1]|0)-(a[r[s>>2]>>1]|0)|0,1)|0;r[u>>2]=131072/(r[u>>2]|0)|0;n=(vi((r[d>>2]|0)+(r[u>>2]|0)|0,32767)|0)&65535;a[r[o>>2]>>1]=n;r[c>>2]=1;while(1){p=r[s>>2]|0;if((r[c>>2]|0)>=((r[l>>2]|0)-1|0))break;r[d>>2]=_i((a[p+((r[c>>2]|0)+1<<1)>>1]|0)-(a[(r[s>>2]|0)+(r[c>>2]<<1)>>1]|0)|0,1)|0;r[d>>2]=131072/(r[d>>2]|0)|0;n=(vi((r[d>>2]|0)+(r[u>>2]|0)|0,32767)|0)&65535;a[(r[o>>2]|0)+(r[c>>2]<<1)>>1]=n;r[u>>2]=_i((a[(r[s>>2]|0)+((r[c>>2]|0)+2<<1)>>1]|0)-(a[(r[s>>2]|0)+((r[c>>2]|0)+1<<1)>>1]|0)|0,1)|0;r[u>>2]=131072/(r[u>>2]|0)|0;n=(vi((r[d>>2]|0)+(r[u>>2]|0)|0,32767)|0)&65535;a[(r[o>>2]|0)+((r[c>>2]|0)+1<<1)>>1]=n;r[c>>2]=(r[c>>2]|0)+2}r[d>>2]=_i(32768-(a[p+((r[l>>2]|0)-1<<1)>>1]|0)|0,1)|0;r[d>>2]=131072/(r[d>>2]|0)|0;p=(vi((r[d>>2]|0)+(r[u>>2]|0)|0,32767)|0)&65535;a[(r[o>>2]|0)+((r[l>>2]|0)-1<<1)>>1]=p;m=i;return}function ci(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0;t=m;m=m+32|0;n=t+16|0;i=t+12|0;a=t+8|0;o=t+4|0;s=t;r[i>>2]=e;if((r[i>>2]|0)<=0){r[n>>2]=0;l=r[n>>2]|0;m=t;return l|0}mi(r[i>>2]|0,o,s);if(r[o>>2]&1|0)r[a>>2]=32768;else r[a>>2]=46214;r[a>>2]=r[a>>2]>>(r[o>>2]>>1);o=W(r[a>>2]>>16,(((r[s>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0;r[a>>2]=(r[a>>2]|0)+(o+((W(r[a>>2]&65535,(((r[s>>2]&65535)<<16>>16)*213&65535)<<16>>16)|0)>>16));r[n>>2]=r[a>>2];l=r[n>>2]|0;m=t;return l|0}function di(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0;i=m;m=m+48|0;o=i+40|0;s=i+36|0;l=i+32|0;c=i+28|0;d=i+24|0;u=i+20|0;p=i+16|0;f=i+44|0;h=i+12|0;g=i+8|0;_=i+4|0;v=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=0;r[p>>2]=0;while(1){if((r[p>>2]|0)>=20)break;r[g>>2]=(a[r[o>>2]>>1]|0)-(a[r[s>>2]>>1]|0);r[d>>2]=0;r[c>>2]=1;while(1){y=r[o>>2]|0;if((r[c>>2]|0)>((r[l>>2]|0)-1|0))break;r[h>>2]=(a[y+(r[c>>2]<<1)>>1]|0)-((a[(r[o>>2]|0)+((r[c>>2]|0)-1<<1)>>1]|0)+(a[(r[s>>2]|0)+(r[c>>2]<<1)>>1]|0));if((r[h>>2]|0)<(r[g>>2]|0)){r[g>>2]=r[h>>2];r[d>>2]=r[c>>2]}r[c>>2]=(r[c>>2]|0)+1}r[h>>2]=32768-((a[y+((r[l>>2]|0)-1<<1)>>1]|0)+(a[(r[s>>2]|0)+(r[l>>2]<<1)>>1]|0));if((r[h>>2]|0)<(r[g>>2]|0)){r[g>>2]=r[h>>2];r[d>>2]=r[l>>2]}if((r[g>>2]|0)>=0){b=42;break}if(!(r[d>>2]|0))a[r[o>>2]>>1]=a[r[s>>2]>>1]|0;else{if((r[d>>2]|0)==(r[l>>2]|0)){w=(r[o>>2]|0)+((r[l>>2]|0)-1<<1)|0;k=32768-(a[(r[s>>2]|0)+(r[l>>2]<<1)>>1]|0)&65535}else{r[_>>2]=0;r[u>>2]=0;while(1){M=r[s>>2]|0;if((r[u>>2]|0)>=(r[d>>2]|0))break;r[_>>2]=(r[_>>2]|0)+(a[M+(r[u>>2]<<1)>>1]|0);r[u>>2]=(r[u>>2]|0)+1}r[_>>2]=(r[_>>2]|0)+(a[M+(r[d>>2]<<1)>>1]>>1);r[v>>2]=32768;r[u>>2]=r[l>>2];while(1){S=r[s>>2]|0;if((r[u>>2]|0)<=(r[d>>2]|0))break;r[v>>2]=(r[v>>2]|0)-(a[S+(r[u>>2]<<1)>>1]|0);r[u>>2]=(r[u>>2]|0)+-1}r[v>>2]=(r[v>>2]|0)-(a[S+(r[d>>2]<<1)>>1]>>1);n=((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)>>1)+((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)&1)|0;do if((r[_>>2]|0)>(r[v>>2]|0)){if((n|0)>(r[_>>2]|0)){A=r[_>>2]|0;break}if((((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)>>1)+((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)&1)|0)<(r[v>>2]|0)){A=r[v>>2]|0;break}else{A=((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)>>1)+((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)&1)|0;break}}else{if((n|0)>(r[v>>2]|0)){A=r[v>>2]|0;break}if((((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)>>1)+((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)&1)|0)<(r[_>>2]|0)){A=r[_>>2]|0;break}else{A=((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)>>1)+((a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[o>>2]|0)+(r[d>>2]<<1)>>1]|0)&1)|0;break}}while(0);a[f>>1]=A;a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]=(a[f>>1]|0)-(a[(r[s>>2]|0)+(r[d>>2]<<1)>>1]>>1);w=(r[o>>2]|0)+(r[d>>2]<<1)|0;k=(a[(r[o>>2]|0)+((r[d>>2]|0)-1<<1)>>1]|0)+(a[(r[s>>2]|0)+(r[d>>2]<<1)>>1]|0)&65535}a[w>>1]=k}r[p>>2]=(r[p>>2]|0)+1}if((b|0)==42){m=i;return}if((r[p>>2]|0)!=20){m=i;return}ui(r[o>>2]|0,r[l>>2]|0);p=(pi(a[r[o>>2]>>1]|0,a[r[s>>2]>>1]|0)|0)&65535;a[r[o>>2]>>1]=p;r[c>>2]=1;while(1){C=r[o>>2]|0;if((r[c>>2]|0)>=(r[l>>2]|0))break;p=(pi(a[C+(r[c>>2]<<1)>>1]|0,(a[(r[o>>2]|0)+((r[c>>2]|0)-1<<1)>>1]|0)+(a[(r[s>>2]|0)+(r[c>>2]<<1)>>1]|0)|0)|0)&65535;a[(r[o>>2]|0)+(r[c>>2]<<1)>>1]=p;r[c>>2]=(r[c>>2]|0)+1}p=(fi(a[C+((r[l>>2]|0)-1<<1)>>1]|0,32768-(a[(r[s>>2]|0)+(r[l>>2]<<1)>>1]|0)|0)|0)&65535;a[(r[o>>2]|0)+((r[l>>2]|0)-1<<1)>>1]=p;r[c>>2]=(r[l>>2]|0)-2;while(1){if((r[c>>2]|0)<0)break;l=(fi(a[(r[o>>2]|0)+(r[c>>2]<<1)>>1]|0,(a[(r[o>>2]|0)+((r[c>>2]|0)+1<<1)>>1]|0)-(a[(r[s>>2]|0)+((r[c>>2]|0)+1<<1)>>1]|0)|0)|0)&65535;a[(r[o>>2]|0)+(r[c>>2]<<1)>>1]=l;r[c>>2]=(r[c>>2]|0)+-1}m=i;return}function ui(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,s=0,l=0,c=0;n=m;m=m+32|0;i=n+16|0;o=n+12|0;s=n+8|0;l=n+4|0;c=n;r[i>>2]=e;r[o>>2]=t;r[l>>2]=1;while(1){if((r[l>>2]|0)>=(r[o>>2]|0))break;r[s>>2]=a[(r[i>>2]|0)+(r[l>>2]<<1)>>1];r[c>>2]=(r[l>>2]|0)-1;while(1){if((r[c>>2]|0)<0)break;if((r[s>>2]|0)>=(a[(r[i>>2]|0)+(r[c>>2]<<1)>>1]|0))break;a[(r[i>>2]|0)+((r[c>>2]|0)+1<<1)>>1]=a[(r[i>>2]|0)+(r[c>>2]<<1)>>1]|0;r[c>>2]=(r[c>>2]|0)+-1}a[(r[i>>2]|0)+((r[c>>2]|0)+1<<1)>>1]=r[s>>2];r[l>>2]=(r[l>>2]|0)+1}m=n;return}function pi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function fi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)<(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function mi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0;i=m;m=m+16|0;a=i+12|0;o=i+8|0;s=i+4|0;l=i;r[a>>2]=e;r[o>>2]=t;r[s>>2]=n;r[l>>2]=hi(r[a>>2]|0)|0;r[r[o>>2]>>2]=r[l>>2];o=(gi(r[a>>2]|0,24-(r[l>>2]|0)|0)|0)&127;r[r[s>>2]>>2]=o;m=i;return}function hi(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t;r[n>>2]=e;if(!(r[n>>2]|0)){i=32;m=t;return i|0}i=32-(32-(Y(r[n>>2]|0)|0))|0;m=t;return i|0}function gi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0;n=m;m=m+32|0;i=n+20|0;a=n+16|0;o=n+12|0;s=n+8|0;l=n+4|0;c=n;r[a>>2]=e;r[o>>2]=t;r[s>>2]=r[a>>2];r[l>>2]=r[o>>2];r[c>>2]=0-(r[o>>2]|0);if(!(r[o>>2]|0)){r[i>>2]=r[a>>2];d=r[i>>2]|0;m=n;return d|0}a=r[s>>2]|0;if((r[o>>2]|0)<0){r[i>>2]=a<<r[c>>2]|(r[s>>2]|0)>>>(32-(r[c>>2]|0)|0);d=r[i>>2]|0;m=n;return d|0}else{r[i>>2]=a<<32-(r[l>>2]|0)|(r[s>>2]|0)>>>(r[l>>2]|0);d=r[i>>2]|0;m=n;return d|0}return 0}function _i(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function vi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)<(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function yi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)>(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function bi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;m=n;return((r[i>>2]|0)<(r[a>>2]|0)?r[i>>2]|0:r[a>>2]|0)|0}function wi(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0;t=m;m=m+16|0;n=t+12|0;i=t+8|0;a=t+4|0;o=t;r[i>>2]=e;if((r[i>>2]|0)<0){r[n>>2]=0;s=r[n>>2]|0;m=t;return s|0}if((r[i>>2]|0)>=3967){r[n>>2]=2147483647;s=r[n>>2]|0;m=t;return s|0}r[a>>2]=1<<(r[i>>2]>>7);r[o>>2]=r[i>>2]&127;e=r[a>>2]|0;l=r[a>>2]|0;if((r[i>>2]|0)<2048){i=W((W((r[o>>2]&65535)<<16>>16,(128-(r[o>>2]|0)&65535)<<16>>16)|0)>>16,-174)|0;r[a>>2]=e+((W(l,(r[o>>2]|0)+(i+((W((W((r[o>>2]&65535)<<16>>16,(128-(r[o>>2]|0)&65535)<<16>>16)|0)&65535,-174)|0)>>16))|0)|0)>>7)}else{i=W((W((r[o>>2]&65535)<<16>>16,(128-(r[o>>2]|0)&65535)<<16>>16)|0)>>16,-174)|0;r[a>>2]=e+(W(l>>7,(r[o>>2]|0)+(i+((W((W((r[o>>2]&65535)<<16>>16,(128-(r[o>>2]|0)&65535)<<16>>16)|0)&65535,-174)|0)>>16))|0)|0)}r[n>>2]=r[a>>2];s=r[n>>2]|0;m=t;return s|0}function ki(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,l=0,c=0,d=0,u=0;i=m;m=m+48|0;o=i+8|0;s=i+4|0;l=i;c=i+40|0;d=i+32|0;u=i+16|0;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;Mi(c,c+2|0,r[s>>2]|0,r[l>>2]|0,23527);Mi(d,d+2|0,r[s>>2]|0,a[c>>1]|0,23375);Mi(u,u+2|0,r[s>>2]|0,a[d>>1]|0,23223);Mi(r[o>>2]|0,(r[o>>2]|0)+2|0,r[s>>2]|0,a[u>>1]|0,23071);Mi((r[o>>2]|0)+4|0,(r[o>>2]|0)+6|0,r[s>>2]|0,a[u+2>>1]|0,23071);Mi(u+4|0,u+6|0,r[s>>2]|0,a[d+2>>1]|0,23223);Mi((r[o>>2]|0)+8|0,(r[o>>2]|0)+10|0,r[s>>2]|0,a[u+4>>1]|0,23071);Mi((r[o>>2]|0)+12|0,(r[o>>2]|0)+14|0,r[s>>2]|0,a[u+6>>1]|0,23071);Mi(d+4|0,d+6|0,r[s>>2]|0,a[c+2>>1]|0,23375);Mi(u+8|0,u+10|0,r[s>>2]|0,a[d+4>>1]|0,23223);Mi((r[o>>2]|0)+16|0,(r[o>>2]|0)+18|0,r[s>>2]|0,a[u+8>>1]|0,23071);Mi((r[o>>2]|0)+20|0,(r[o>>2]|0)+22|0,r[s>>2]|0,a[u+10>>1]|0,23071);Mi(u+12|0,u+14|0,r[s>>2]|0,a[d+6>>1]|0,23223);Mi((r[o>>2]|0)+24|0,(r[o>>2]|0)+26|0,r[s>>2]|0,a[u+12>>1]|0,23071);Mi((r[o>>2]|0)+28|0,(r[o>>2]|0)+30|0,r[s>>2]|0,a[u+14>>1]|0,23071);m=i;return}function Mi(e,t,n,i,s){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;l=m;m=m+32|0;c=l+16|0;d=l+12|0;u=l+8|0;p=l+4|0;f=l;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=s;if((r[p>>2]|0)>0){s=(an(r[u>>2]|0,(r[f>>2]|0)+(o[23679+(r[p>>2]|0)>>0]|0)|0,8)|0)&65535;a[r[c>>2]>>1]=s;h=(r[p>>2]|0)-(a[r[c>>2]>>1]|0)&65535;g=r[d>>2]|0;a[g>>1]=h;m=l;return}else{a[r[c>>2]>>1]=0;h=0;g=r[d>>2]|0;a[g>>1]=h;m=l;return}}function Si(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0;a=m;m=m+32|0;o=a+16|0;s=a+12|0;l=a+8|0;c=a+4|0;d=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=0;r[(r[o>>2]|0)+2332>>2]=((r[s>>2]&65535)<<16>>16)*5;r[c>>2]=W((r[(r[o>>2]|0)+2324>>2]&65535)<<16>>16,(r[(r[o>>2]|0)+2332>>2]&65535)<<16>>16)|0;if(!((r[(r[o>>2]|0)+2316>>2]|0)==(r[s>>2]|0)?(r[(r[o>>2]|0)+2320>>2]|0)==(r[l>>2]|0):0)){n=Ai((r[o>>2]|0)+2432|0,((r[s>>2]&65535)<<16>>16)*1e3|0,r[l>>2]|0,0)|0;r[d>>2]=(r[d>>2]|0)+n;r[(r[o>>2]|0)+2320>>2]=r[l>>2]}if((r[(r[o>>2]|0)+2316>>2]|0)==(r[s>>2]|0)?(r[c>>2]|0)==(r[(r[o>>2]|0)+2328>>2]|0):0){u=r[d>>2]|0;m=a;return u|0}l=(r[(r[o>>2]|0)+2324>>2]|0)==4;r[(r[o>>2]|0)+2384>>2]=(r[s>>2]|0)==8?l?22847:22870:l?22813:22858;if((r[(r[o>>2]|0)+2316>>2]|0)!=(r[s>>2]|0)){r[(r[o>>2]|0)+2336>>2]=((r[s>>2]&65535)<<16>>16)*20;l=(r[o>>2]|0)+2340|0;if((r[s>>2]|0)==8|(r[s>>2]|0)==12){r[l>>2]=10;p=r[o>>2]|0;f=132}else{r[l>>2]=16;p=r[o>>2]|0;f=168}r[p+2732>>2]=f;do if((r[s>>2]|0)!=16){if((r[s>>2]|0)==12){h=22739;g=r[o>>2]|0;_=16;break}if((r[s>>2]|0)==8){h=22730;g=r[o>>2]|0;_=16}}else{h=22745;g=r[o>>2]|0;_=16}while(0);if((_|0)==16)r[g+2380>>2]=h;r[(r[o>>2]|0)+2376>>2]=1;r[(r[o>>2]|0)+2308>>2]=100;i[(r[o>>2]|0)+2312>>0]=10;r[(r[o>>2]|0)+4164>>2]=0;Na((r[o>>2]|0)+1348|0,0,960)|0;h=(r[o>>2]|0)+1284|0;g=h+64|0;do{r[h>>2]=0;h=h+4|0}while((h|0)<(g|0))}r[(r[o>>2]|0)+2316>>2]=r[s>>2];r[(r[o>>2]|0)+2328>>2]=r[c>>2];u=r[d>>2]|0;m=a;return u|0}function Ai(e,t,n,a){e=e|0;t=t|0;n=n|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;o=m;m=m+32|0;s=o+20|0;l=o+16|0;c=o+12|0;d=o+8|0;u=o+4|0;p=o;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=a;Na(r[l>>2]|0,0,300)|0;a=(r[c>>2]|0)!=8e3&(r[c>>2]|0)!=12e3&(r[c>>2]|0)!=16e3;do if(r[u>>2]|0){if(!(a&(r[c>>2]|0)!=24e3&(r[c>>2]|0)!=48e3)?!((r[d>>2]|0)!=8e3&(r[d>>2]|0)!=12e3&(r[d>>2]|0)!=16e3):0){f=r[l>>2]|0;h=i[25178+((((r[c>>2]>>12)-((r[c>>2]|0)>16e3&1)>>((r[c>>2]|0)>24e3&1))-1|0)*3|0)+(((r[d>>2]>>12)-((r[d>>2]|0)>16e3&1)>>((r[d>>2]|0)>24e3&1))-1)>>0]|0;break}r[s>>2]=-1;g=r[s>>2]|0;m=o;return g|0}else{if(!a?!((r[d>>2]|0)!=8e3&(r[d>>2]|0)!=12e3&(r[d>>2]|0)!=16e3&(r[d>>2]|0)!=24e3&(r[d>>2]|0)!=48e3):0){f=r[l>>2]|0;h=i[25193+((((r[c>>2]>>12)-((r[c>>2]|0)>16e3&1)>>((r[c>>2]|0)>24e3&1))-1|0)*5|0)+(((r[d>>2]>>12)-((r[d>>2]|0)>16e3&1)>>((r[d>>2]|0)>24e3&1))-1)>>0]|0;break}r[s>>2]=-1;g=r[s>>2]|0;m=o;return g|0}while(0);r[f+292>>2]=h;r[(r[l>>2]|0)+284>>2]=(r[c>>2]|0)/1e3|0;r[(r[l>>2]|0)+288>>2]=(r[d>>2]|0)/1e3|0;r[(r[l>>2]|0)+268>>2]=(r[(r[l>>2]|0)+284>>2]|0)*10;r[p>>2]=0;h=r[d>>2]|0;f=r[c>>2]|0;do if((r[d>>2]|0)>(r[c>>2]|0)){a=(r[l>>2]|0)+264|0;if((h|0)==(f<<1|0)){r[a>>2]=1;break}else{r[a>>2]=2;r[p>>2]=1;break}}else{a=(r[l>>2]|0)+264|0;if((h|0)>=(f|0)){r[a>>2]=0;break}r[a>>2]=3;if((r[d>>2]<<2|0)==((r[c>>2]|0)*3|0)){r[(r[l>>2]|0)+280>>2]=3;r[(r[l>>2]|0)+276>>2]=18;r[(r[l>>2]|0)+296>>2]=18048;break}if(((r[d>>2]|0)*3|0)==(r[c>>2]<<1|0)){r[(r[l>>2]|0)+280>>2]=2;r[(r[l>>2]|0)+276>>2]=18;r[(r[l>>2]|0)+296>>2]=18106;break}if((r[d>>2]<<1|0)==(r[c>>2]|0)){r[(r[l>>2]|0)+280>>2]=1;r[(r[l>>2]|0)+276>>2]=24;r[(r[l>>2]|0)+296>>2]=18146;break}if(((r[d>>2]|0)*3|0)==(r[c>>2]|0)){r[(r[l>>2]|0)+280>>2]=1;r[(r[l>>2]|0)+276>>2]=36;r[(r[l>>2]|0)+296>>2]=18174;break}if((r[d>>2]<<2|0)==(r[c>>2]|0)){r[(r[l>>2]|0)+280>>2]=1;r[(r[l>>2]|0)+276>>2]=36;r[(r[l>>2]|0)+296>>2]=18214;break}if(((r[d>>2]|0)*6|0)==(r[c>>2]|0)){r[(r[l>>2]|0)+280>>2]=1;r[(r[l>>2]|0)+276>>2]=36;r[(r[l>>2]|0)+296>>2]=18254;break}r[s>>2]=-1;g=r[s>>2]|0;m=o;return g|0}while(0);r[(r[l>>2]|0)+272>>2]=((r[c>>2]<<14+(r[p>>2]|0)|0)/(r[d>>2]|0)|0)<<2;while(1){f=W(r[(r[l>>2]|0)+272>>2]>>16,(r[d>>2]&65535)<<16>>16)|0;h=f+((W(r[(r[l>>2]|0)+272>>2]&65535,(r[d>>2]&65535)<<16>>16)|0)>>16)|0;f=h+(W(r[(r[l>>2]|0)+272>>2]|0,(r[d>>2]>>15)+1>>1)|0)|0;if((f|0)>=(r[c>>2]<<r[p>>2]|0))break;f=(r[l>>2]|0)+272|0;r[f>>2]=(r[f>>2]|0)+1}r[s>>2]=0;g=r[s>>2]|0;m=o;return g|0}function Ci(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;r[i>>2]=0;r[r[n>>2]>>2]=8544;m=t;return r[i>>2]|0}function Ti(e){e=e|0;var t=0,n=0,i=0,a=0,o=0;t=m;m=m+16|0;n=t+12|0;i=t+8|0;a=t+4|0;o=t;r[n>>2]=e;r[a>>2]=0;r[o>>2]=r[n>>2];r[i>>2]=0;while(1){if((r[i>>2]|0)>=2)break;r[a>>2]=$n((r[o>>2]|0)+((r[i>>2]|0)*4260|0)|0)|0;r[i>>2]=(r[i>>2]|0)+1}i=(r[n>>2]|0)+8520|0;r[i>>2]=0;r[i+4>>2]=0;r[i+8>>2]=0;r[(r[n>>2]|0)+8540>>2]=0;m=t;return r[a>>2]|0}function Ei(e,t,n,o,s,l,c){e=e|0;t=t|0;n=n|0;o=o|0;s=s|0;l=l|0;c=c|0;var d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0;d=m;m=m+768|0;u=d+124|0;p=d+120|0;f=d+116|0;h=d+112|0;g=d+108|0;_=d+104|0;v=d+100|0;y=d+96|0;b=d+92|0;w=d+88|0;k=d+84|0;M=d+80|0;S=d+76|0;A=d+72|0;C=d+64|0;T=d+56|0;E=d+52|0;$=d+48|0;I=d+44|0;x=d+40|0;P=d+36|0;D=d+32|0;R=d+28|0;O=d+128|0;N=d+24|0;L=d+20|0;F=d+16|0;U=d+12|0;B=d;r[p>>2]=e;r[f>>2]=t;r[h>>2]=n;r[g>>2]=o;r[_>>2]=s;r[v>>2]=l;r[y>>2]=c;r[k>>2]=0;r[M>>2]=0;r[T>>2]=0;r[T+4>>2]=0;r[$>>2]=r[p>>2];r[I>>2]=r[$>>2];e:do if(r[g>>2]|0){r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[(r[f>>2]|0)+4>>2]|0))break e;r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2388>>2]=0;r[w>>2]=(r[w>>2]|0)+1}}while(0);if((r[(r[f>>2]|0)+4>>2]|0)>(r[(r[$>>2]|0)+8536>>2]|0)){g=$n((r[I>>2]|0)+4260|0)|0;r[M>>2]=(r[M>>2]|0)+g}if((r[(r[f>>2]|0)+4>>2]|0)==1?(r[(r[$>>2]|0)+8536>>2]|0)==2:0)H=(r[(r[f>>2]|0)+12>>2]|0)==((r[(r[I>>2]|0)+2316>>2]|0)*1e3|0);else H=0;r[P>>2]=H&1;e:do if(!(r[(r[I>>2]|0)+2388>>2]|0)){r[w>>2]=0;t:while(1){if((r[w>>2]|0)>=(r[(r[f>>2]|0)+4>>2]|0))break e;do if(!(r[(r[f>>2]|0)+16>>2]|0)){r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2392>>2]=1;j=2;V=(r[I>>2]|0)+((r[w>>2]|0)*4260|0)|0}else{if((r[(r[f>>2]|0)+16>>2]|0)==10){r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2392>>2]=1;j=2;V=(r[I>>2]|0)+((r[w>>2]|0)*4260|0)|0;break}if((r[(r[f>>2]|0)+16>>2]|0)==20){r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2392>>2]=1;j=4;V=(r[I>>2]|0)+((r[w>>2]|0)*4260|0)|0;break}if((r[(r[f>>2]|0)+16>>2]|0)==40){r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2392>>2]=2;j=4;V=(r[I>>2]|0)+((r[w>>2]|0)*4260|0)|0;break}if((r[(r[f>>2]|0)+16>>2]|0)!=60){q=23;break t}r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2392>>2]=3;j=4;V=(r[I>>2]|0)+((r[w>>2]|0)*4260|0)|0}while(0);r[V+2324>>2]=j;r[R>>2]=(r[(r[f>>2]|0)+12>>2]>>10)+1;if((r[R>>2]|0)!=8&(r[R>>2]|0)!=12&(r[R>>2]|0)!=16){q=25;break}H=Si((r[I>>2]|0)+((r[w>>2]|0)*4260|0)|0,r[R>>2]|0,r[(r[f>>2]|0)+8>>2]|0)|0;r[M>>2]=(r[M>>2]|0)+H;r[w>>2]=(r[w>>2]|0)+1}if((q|0)==23){r[u>>2]=-203;z=r[u>>2]|0;m=d;return z|0}else if((q|0)==25){r[u>>2]=-200;z=r[u>>2]|0;m=d;return z|0}}while(0);do if((r[r[f>>2]>>2]|0)==2?(r[(r[f>>2]|0)+4>>2]|0)==2:0){if((r[(r[$>>2]|0)+8532>>2]|0)!=1?(r[(r[$>>2]|0)+8536>>2]|0)!=1:0)break;r[(r[$>>2]|0)+8520>>2]=0;r[(r[$>>2]|0)+8520+8>>2]=0;La((r[I>>2]|0)+4260+2432|0,(r[I>>2]|0)+2432|0,300)|0}while(0);r[(r[$>>2]|0)+8532>>2]=r[r[f>>2]>>2];r[(r[$>>2]|0)+8536>>2]=r[(r[f>>2]|0)+4>>2];if((r[(r[f>>2]|0)+8>>2]|0)<=48e3?(r[(r[f>>2]|0)+8>>2]|0)>=8e3:0){e:do if((r[h>>2]|0)!=1?(r[(r[I>>2]|0)+2388>>2]|0)==0:0){r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[(r[f>>2]|0)+4>>2]|0))break;r[b>>2]=0;while(1){R=(r[b>>2]|0)<(r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2392>>2]|0);G=Ye(r[_>>2]|0,1)|0;K=(r[I>>2]|0)+((r[w>>2]|0)*4260|0)|0;if(!R)break;r[K+2404+(r[b>>2]<<2)>>2]=G;r[b>>2]=(r[b>>2]|0)+1}r[K+2416>>2]=G;r[w>>2]=(r[w>>2]|0)+1}r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[(r[f>>2]|0)+4>>2]|0))break;R=(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2420|0;r[R>>2]=0;r[R+4>>2]=0;r[R+8>>2]=0;t:do if(r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2416>>2]|0){if((r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2392>>2]|0)==1){r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2420>>2]=1;break}r[A>>2]=(an(r[_>>2]|0,r[204+((r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2392>>2]|0)-2<<2)>>2]|0,8)|0)+1;r[b>>2]=0;while(1){if((r[b>>2]|0)>=(r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2392>>2]|0))break t;r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2420+(r[b>>2]<<2)>>2]=r[A>>2]>>r[b>>2]&1;r[b>>2]=(r[b>>2]|0)+1}}while(0);r[w>>2]=(r[w>>2]|0)+1}if(!(r[h>>2]|0)){r[b>>2]=0;while(1){if((r[b>>2]|0)>=(r[(r[I>>2]|0)+2392>>2]|0))break e;r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[(r[f>>2]|0)+4>>2]|0))break;if(r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2420+(r[b>>2]<<2)>>2]|0){do if((r[w>>2]|0)==0?(r[(r[f>>2]|0)+4>>2]|0)==2:0){$i(r[_>>2]|0,T);if(r[(r[I>>2]|0)+4260+2420+(r[b>>2]<<2)>>2]|0)break;Ii(r[_>>2]|0,k)}while(0);do if((r[b>>2]|0)>0){if(!(r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2420+((r[b>>2]|0)-1<<2)>>2]|0)){q=64;break}r[N>>2]=2}else q=64;while(0);if((q|0)==64){q=0;r[N>>2]=0}Ln((r[I>>2]|0)+((r[w>>2]|0)*4260|0)|0,r[_>>2]|0,r[b>>2]|0,1,r[N>>2]|0);Fn(r[_>>2]|0,O,i[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2736+29>>0]|0,i[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2736+30>>0]|0,r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2328>>2]|0)}r[w>>2]=(r[w>>2]|0)+1}r[b>>2]=(r[b>>2]|0)+1}}}while(0);e:do if((r[(r[f>>2]|0)+4>>2]|0)==2){do if(r[h>>2]|0){if((r[h>>2]|0)==2?(r[(r[I>>2]|0)+2420+(r[(r[I>>2]|0)+2388>>2]<<2)>>2]|0)==1:0)break;r[w>>2]=0;while(1){if((r[w>>2]|0)>=2)break e;r[T+(r[w>>2]<<2)>>2]=a[(r[$>>2]|0)+8520+(r[w>>2]<<1)>>1];r[w>>2]=(r[w>>2]|0)+1}}while(0);$i(r[_>>2]|0,T);if(!((r[h>>2]|0)==0?!(r[(r[I>>2]|0)+4260+2404+(r[(r[I>>2]|0)+2388>>2]<<2)>>2]|0):0))q=74;do if((q|0)==74){if((r[h>>2]|0)==2?(r[(r[I>>2]|0)+4260+2420+(r[(r[I>>2]|0)+2388>>2]<<2)>>2]|0)==0:0)break;r[k>>2]=0;break e}while(0);Ii(r[_>>2]|0,k)}while(0);if(((r[k>>2]|0)==0?(r[(r[f>>2]|0)+4>>2]|0)==2:0)?(r[(r[$>>2]|0)+8540>>2]|0)==1:0){Na((r[$>>2]|0)+4260+1348|0,0,960)|0;q=(r[$>>2]|0)+4260+1284|0;O=q+64|0;do{r[q>>2]=0;q=q+4|0}while((q|0)<(O|0));r[(r[$>>2]|0)+4260+2308>>2]=100;i[(r[$>>2]|0)+4260+2312>>0]=10;r[(r[$>>2]|0)+4260+4164>>2]=0;r[(r[$>>2]|0)+4260+2376>>2]=1}q=W(r[(r[f>>2]|0)+12>>2]|0,r[(r[f>>2]|0)+4>>2]|0)|0;r[D>>2]=(q|0)<(W(r[(r[f>>2]|0)+8>>2]|0,r[r[f>>2]>>2]|0)|0)&1;if(r[D>>2]|0)Y=1;else Y=W(r[(r[f>>2]|0)+4>>2]|0,(r[(r[I>>2]|0)+2328>>2]|0)+2|0)|0;r[L>>2]=oe()|0;q=m;m=m+((1*(Y<<1)|0)+15&-16)|0;if(r[D>>2]|0){r[C>>2]=r[v>>2];X=r[I>>2]|0;J=r[v>>2]|0}else{r[C>>2]=q;X=r[I>>2]|0;J=q}r[C+4>>2]=J+(r[X+2328>>2]<<1)+4;if(!(r[h>>2]|0))r[x>>2]=((r[k>>2]|0)!=0^1)&1;else{if(r[(r[$>>2]|0)+8540>>2]|0)if((r[h>>2]|0)==2?(r[(r[f>>2]|0)+4>>2]|0)==2:0)Z=(r[(r[I>>2]|0)+4260+2420+(r[(r[I>>2]|0)+4260+2388>>2]<<2)>>2]|0)==1;else Z=0;else Z=1;r[x>>2]=Z&1}r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[(r[f>>2]|0)+4>>2]|0))break;if((r[w>>2]|0)==0|(r[x>>2]|0)!=0){r[F>>2]=(r[(r[I>>2]|0)+2388>>2]|0)-(r[w>>2]|0);e:do if((r[F>>2]|0)<=0)r[U>>2]=0;else{if((r[h>>2]|0)==2){r[U>>2]=r[(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2420+((r[F>>2]|0)-1<<2)>>2]|0?2:0;break}do if((r[w>>2]|0)>0){if(!(r[(r[$>>2]|0)+8540>>2]|0))break;r[U>>2]=1;break e}while(0);r[U>>2]=2}while(0);Z=Nn((r[I>>2]|0)+((r[w>>2]|0)*4260|0)|0,r[_>>2]|0,(r[C+(r[w>>2]<<2)>>2]|0)+4|0,S,r[h>>2]|0,r[U>>2]|0)|0;r[M>>2]=(r[M>>2]|0)+Z}else Na((r[C+(r[w>>2]<<2)>>2]|0)+4|0,0,r[S>>2]<<1|0)|0;Z=(r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2388|0;r[Z>>2]=(r[Z>>2]|0)+1;r[w>>2]=(r[w>>2]|0)+1}if((r[r[f>>2]>>2]|0)==2?(r[(r[f>>2]|0)+4>>2]|0)==2:0)xi((r[$>>2]|0)+8520|0,r[C>>2]|0,r[C+4>>2]|0,T,r[(r[I>>2]|0)+2316>>2]|0,r[S>>2]|0);else{T=r[C>>2]|0;U=(r[$>>2]|0)+8520+4|0;a[T>>1]=a[U>>1]|0;a[T+2>>1]=a[U+2>>1]|0;U=(r[$>>2]|0)+8520+4|0;T=(r[C>>2]|0)+(r[S>>2]<<1)|0;a[U>>1]=a[T>>1]|0;a[U+2>>1]=a[T+2>>1]|0}T=W(r[S>>2]|0,r[(r[f>>2]|0)+8>>2]|0)|0;r[r[y>>2]>>2]=(T|0)/(((r[(r[I>>2]|0)+2316>>2]&65535)<<16>>16)*1e3|0)|0;if((r[r[f>>2]>>2]|0)==2)Q=r[r[y>>2]>>2]|0;else Q=1;T=m;m=m+((1*(Q<<1)|0)+15&-16)|0;if((r[r[f>>2]>>2]|0)==2)r[E>>2]=T;else r[E>>2]=r[v>>2];if(r[D>>2]|0)ee=W(r[(r[f>>2]|0)+4>>2]|0,(r[(r[I>>2]|0)+2328>>2]|0)+2|0)|0;else ee=1;T=m;m=m+((1*(ee<<1)|0)+15&-16)|0;if(r[D>>2]|0){D=(W(r[(r[f>>2]|0)+4>>2]|0,(r[(r[I>>2]|0)+2328>>2]|0)+2|0)|0)<<1;La(T|0,r[v>>2]|0,D+0|0)|0;r[C>>2]=T;r[C+4>>2]=T+(r[(r[I>>2]|0)+2328>>2]<<1)+4}r[w>>2]=0;while(1){T=r[f>>2]|0;if((r[w>>2]|0)>=(r[((r[r[f>>2]>>2]|0)<(r[(r[f>>2]|0)+4>>2]|0)?T:T+4|0)>>2]|0))break;T=Pi((r[I>>2]|0)+((r[w>>2]|0)*4260|0)+2432|0,r[E>>2]|0,(r[C+(r[w>>2]<<2)>>2]|0)+2|0,r[S>>2]|0)|0;r[M>>2]=(r[M>>2]|0)+T;e:do if((r[r[f>>2]>>2]|0)==2){r[b>>2]=0;while(1){if((r[b>>2]|0)>=(r[r[y>>2]>>2]|0))break e;a[(r[v>>2]|0)+((r[w>>2]|0)+(r[b>>2]<<1)<<1)>>1]=a[(r[E>>2]|0)+(r[b>>2]<<1)>>1]|0;r[b>>2]=(r[b>>2]|0)+1}}while(0);r[w>>2]=(r[w>>2]|0)+1}e:do if((r[r[f>>2]>>2]|0)==2){if((r[(r[f>>2]|0)+4>>2]|0)!=1)break;if(r[P>>2]|0){w=Pi((r[I>>2]|0)+4260+2432|0,r[E>>2]|0,(r[C>>2]|0)+2|0,r[S>>2]|0)|0;r[M>>2]=(r[M>>2]|0)+w;r[b>>2]=0;while(1){if((r[b>>2]|0)>=(r[r[y>>2]>>2]|0))break e;a[(r[v>>2]|0)+(1+(r[b>>2]<<1)<<1)>>1]=a[(r[E>>2]|0)+(r[b>>2]<<1)>>1]|0;r[b>>2]=(r[b>>2]|0)+1}}else{r[b>>2]=0;while(1){if((r[b>>2]|0)>=(r[r[y>>2]>>2]|0))break e;a[(r[v>>2]|0)+(1+(r[b>>2]<<1)<<1)>>1]=a[(r[v>>2]|0)+(0+(r[b>>2]<<1)<<1)>>1]|0;r[b>>2]=(r[b>>2]|0)+1}}}while(0);if((r[(r[I>>2]|0)+4164>>2]|0)==2){r[B>>2]=r[4358];r[B+4>>2]=r[4359];r[B+8>>2]=r[4360];v=W(r[(r[I>>2]|0)+2308>>2]|0,r[B+((r[(r[I>>2]|0)+2316>>2]|0)-8>>2<<2)>>2]|0)|0;te=v;ne=r[f>>2]|0}else{te=0;ne=r[f>>2]|0}r[ne+20>>2]=te;e:do if((r[h>>2]|0)==1){r[b>>2]=0;while(1){if((r[b>>2]|0)>=(r[(r[$>>2]|0)+8536>>2]|0))break e;i[(r[$>>2]|0)+((r[b>>2]|0)*4260|0)+2312>>0]=10;r[b>>2]=(r[b>>2]|0)+1}}else r[(r[$>>2]|0)+8540>>2]=r[k>>2];while(0);r[u>>2]=r[M>>2];ce(r[L>>2]|0);z=r[u>>2]|0;m=d;return z|0}r[M>>2]=-200;r[u>>2]=r[M>>2];z=r[u>>2]|0;m=d;return z|0}function $i(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,s=0,l=0,c=0,d=0;n=m;m=m+48|0;i=n+40|0;o=n+36|0;s=n+32|0;l=n+8|0;c=n+4|0;d=n;r[i>>2]=e;r[o>>2]=t;r[s>>2]=an(r[i>>2]|0,22674,8)|0;r[l+8>>2]=(r[s>>2]|0)/5|0;r[l+12+8>>2]=(r[s>>2]|0)-((r[l+8>>2]|0)*5|0);r[s>>2]=0;while(1){if((r[s>>2]|0)>=2)break;t=an(r[i>>2]|0,22727,8)|0;r[l+((r[s>>2]|0)*12|0)>>2]=t;t=an(r[i>>2]|0,22734,8)|0;r[l+((r[s>>2]|0)*12|0)+4>>2]=t;r[s>>2]=(r[s>>2]|0)+1}r[s>>2]=0;while(1){if((r[s>>2]|0)>=2)break;i=l+((r[s>>2]|0)*12|0)|0;r[i>>2]=(r[i>>2]|0)+((r[l+((r[s>>2]|0)*12|0)+8>>2]|0)*3|0);r[c>>2]=a[17744+(r[l+((r[s>>2]|0)*12|0)>>2]<<1)>>1];r[d>>2]=(((a[17744+((r[l+((r[s>>2]|0)*12|0)>>2]|0)+1<<1)>>1]|0)-(r[c>>2]|0)>>16)*6554|0)+(((a[17744+((r[l+((r[s>>2]|0)*12|0)>>2]|0)+1<<1)>>1]|0)-(r[c>>2]|0)&65535)*6554>>16);i=(r[c>>2]|0)+(W((r[d>>2]&65535)<<16>>16,((r[l+((r[s>>2]|0)*12|0)+4>>2]<<1)+1&65535)<<16>>16)|0)|0;r[(r[o>>2]|0)+(r[s>>2]<<2)>>2]=i;r[s>>2]=(r[s>>2]|0)+1}s=r[o>>2]|0;r[s>>2]=(r[s>>2]|0)-(r[(r[o>>2]|0)+4>>2]|0);m=n;return}function Ii(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+16|0;i=n+4|0;a=n;r[i>>2]=e;r[a>>2]=t;t=an(r[i>>2]|0,22699,8)|0;r[r[a>>2]>>2]=t;m=n;return}function xi(e,t,n,i,o,s){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0;l=m;m=m+64|0;c=l+52|0;d=l+48|0;u=l+44|0;p=l+40|0;f=l+36|0;h=l+32|0;g=l+28|0;_=l+24|0;v=l+20|0;y=l+16|0;b=l+12|0;w=l+8|0;k=l+4|0;M=l;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=o;r[h>>2]=s;s=r[d>>2]|0;o=(r[c>>2]|0)+4|0;a[s>>1]=a[o>>1]|0;a[s+2>>1]=a[o+2>>1]|0;o=r[u>>2]|0;s=(r[c>>2]|0)+8|0;a[o>>1]=a[s>>1]|0;a[o+2>>1]=a[s+2>>1]|0;s=(r[c>>2]|0)+4|0;o=(r[d>>2]|0)+(r[h>>2]<<1)|0;a[s>>1]=a[o>>1]|0;a[s+2>>1]=a[o+2>>1]|0;o=(r[c>>2]|0)+8|0;s=(r[u>>2]|0)+(r[h>>2]<<1)|0;a[o>>1]=a[s>>1]|0;a[o+2>>1]=a[s+2>>1]|0;r[k>>2]=a[r[c>>2]>>1];r[M>>2]=a[(r[c>>2]|0)+2>>1];r[_>>2]=65536/(r[f>>2]<<3|0)|0;r[v>>2]=((W(((r[r[p>>2]>>2]|0)-(a[r[c>>2]>>1]|0)&65535)<<16>>16,(r[_>>2]&65535)<<16>>16)|0)>>15)+1>>1;r[y>>2]=((W(((r[(r[p>>2]|0)+4>>2]|0)-(a[(r[c>>2]|0)+2>>1]|0)&65535)<<16>>16,(r[_>>2]&65535)<<16>>16)|0)>>15)+1>>1;r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[f>>2]<<3|0))break;r[k>>2]=(r[k>>2]|0)+(r[v>>2]|0);r[M>>2]=(r[M>>2]|0)+(r[y>>2]|0);r[b>>2]=(a[(r[d>>2]|0)+(r[g>>2]<<1)>>1]|0)+(a[(r[d>>2]|0)+((r[g>>2]|0)+2<<1)>>1]|0)+(a[(r[d>>2]|0)+((r[g>>2]|0)+1<<1)>>1]<<1)<<9;_=W(r[b>>2]>>16,(r[k>>2]&65535)<<16>>16)|0;r[b>>2]=(a[(r[u>>2]|0)+((r[g>>2]|0)+1<<1)>>1]<<8)+(_+((W(r[b>>2]&65535,(r[k>>2]&65535)<<16>>16)|0)>>16));_=W(a[(r[d>>2]|0)+((r[g>>2]|0)+1<<1)>>1]<<11>>16,(r[M>>2]&65535)<<16>>16)|0;r[b>>2]=(r[b>>2]|0)+(_+((W(a[(r[d>>2]|0)+((r[g>>2]|0)+1<<1)>>1]<<11&65535,(r[M>>2]&65535)<<16>>16)|0)>>16));if(((r[b>>2]>>7)+1>>1|0)<=32767)if(((r[b>>2]>>7)+1>>1|0)<-32768)S=-32768;else S=(r[b>>2]>>7)+1>>1;else S=32767;a[(r[u>>2]|0)+((r[g>>2]|0)+1<<1)>>1]=S;r[g>>2]=(r[g>>2]|0)+1}r[k>>2]=r[r[p>>2]>>2];r[M>>2]=r[(r[p>>2]|0)+4>>2];r[g>>2]=r[f>>2]<<3;while(1){if((r[g>>2]|0)>=(r[h>>2]|0))break;r[b>>2]=(a[(r[d>>2]|0)+(r[g>>2]<<1)>>1]|0)+(a[(r[d>>2]|0)+((r[g>>2]|0)+2<<1)>>1]|0)+(a[(r[d>>2]|0)+((r[g>>2]|0)+1<<1)>>1]<<1)<<9;f=W(r[b>>2]>>16,(r[k>>2]&65535)<<16>>16)|0;r[b>>2]=(a[(r[u>>2]|0)+((r[g>>2]|0)+1<<1)>>1]<<8)+(f+((W(r[b>>2]&65535,(r[k>>2]&65535)<<16>>16)|0)>>16));f=W(a[(r[d>>2]|0)+((r[g>>2]|0)+1<<1)>>1]<<11>>16,(r[M>>2]&65535)<<16>>16)|0;r[b>>2]=(r[b>>2]|0)+(f+((W(a[(r[d>>2]|0)+((r[g>>2]|0)+1<<1)>>1]<<11&65535,(r[M>>2]&65535)<<16>>16)|0)>>16));if(((r[b>>2]>>7)+1>>1|0)<=32767)if(((r[b>>2]>>7)+1>>1|0)<-32768)A=-32768;else A=(r[b>>2]>>7)+1>>1;else A=32767;a[(r[u>>2]|0)+((r[g>>2]|0)+1<<1)>>1]=A;r[g>>2]=(r[g>>2]|0)+1}a[r[c>>2]>>1]=r[r[p>>2]>>2];a[(r[c>>2]|0)+2>>1]=r[(r[p>>2]|0)+4>>2];r[g>>2]=0;while(1){if((r[g>>2]|0)>=(r[h>>2]|0))break;r[b>>2]=(a[(r[d>>2]|0)+((r[g>>2]|0)+1<<1)>>1]|0)+(a[(r[u>>2]|0)+((r[g>>2]|0)+1<<1)>>1]|0);r[w>>2]=(a[(r[d>>2]|0)+((r[g>>2]|0)+1<<1)>>1]|0)-(a[(r[u>>2]|0)+((r[g>>2]|0)+1<<1)>>1]|0);if((r[b>>2]|0)>32767)C=32767;else C=(r[b>>2]|0)<-32768?-32768:r[b>>2]|0;a[(r[d>>2]|0)+((r[g>>2]|0)+1<<1)>>1]=C;if((r[w>>2]|0)>32767)T=32767;else T=(r[w>>2]|0)<-32768?-32768:r[w>>2]|0;a[(r[u>>2]|0)+((r[g>>2]|0)+1<<1)>>1]=T;r[g>>2]=(r[g>>2]|0)+1}m=l;return}function Pi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0;a=m;m=m+32|0;o=a+16|0;s=a+12|0;l=a+8|0;c=a+4|0;d=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=i;r[d>>2]=(r[(r[o>>2]|0)+284>>2]|0)-(r[(r[o>>2]|0)+292>>2]|0);La((r[o>>2]|0)+168+(r[(r[o>>2]|0)+292>>2]<<1)|0,r[l>>2]|0,r[d>>2]<<1|0)|0;switch(r[(r[o>>2]|0)+264>>2]|0){case 1:{Di(r[o>>2]|0,r[s>>2]|0,(r[o>>2]|0)+168|0,r[(r[o>>2]|0)+284>>2]|0);Di(r[o>>2]|0,(r[s>>2]|0)+(r[(r[o>>2]|0)+288>>2]<<1)|0,(r[l>>2]|0)+(r[d>>2]<<1)|0,(r[c>>2]|0)-(r[(r[o>>2]|0)+284>>2]|0)|0);break}case 2:{Ri(r[o>>2]|0,r[s>>2]|0,(r[o>>2]|0)+168|0,r[(r[o>>2]|0)+284>>2]|0);Ri(r[o>>2]|0,(r[s>>2]|0)+(r[(r[o>>2]|0)+288>>2]<<1)|0,(r[l>>2]|0)+(r[d>>2]<<1)|0,(r[c>>2]|0)-(r[(r[o>>2]|0)+284>>2]|0)|0);break}case 3:{Oi(r[o>>2]|0,r[s>>2]|0,(r[o>>2]|0)+168|0,r[(r[o>>2]|0)+284>>2]|0);Oi(r[o>>2]|0,(r[s>>2]|0)+(r[(r[o>>2]|0)+288>>2]<<1)|0,(r[l>>2]|0)+(r[d>>2]<<1)|0,(r[c>>2]|0)-(r[(r[o>>2]|0)+284>>2]|0)|0);break}default:{La(r[s>>2]|0,(r[o>>2]|0)+168|0,r[(r[o>>2]|0)+284>>2]<<1|0)|0;La((r[s>>2]|0)+(r[(r[o>>2]|0)+288>>2]<<1)|0,(r[l>>2]|0)+(r[d>>2]<<1)|0,(r[c>>2]|0)-(r[(r[o>>2]|0)+284>>2]|0)<<1|0)|0}}La((r[o>>2]|0)+168|0,(r[l>>2]|0)+((r[c>>2]|0)-(r[(r[o>>2]|0)+292>>2]|0)<<1)|0,r[(r[o>>2]|0)+292>>2]<<1|0)|0;m=a;return 0}function Di(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0;a=m;m=m+32|0;o=a+16|0;s=a+12|0;l=a+8|0;c=a+4|0;d=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=i;r[d>>2]=r[o>>2];Fi(r[d>>2]|0,r[s>>2]|0,r[l>>2]|0,r[c>>2]|0);m=a;return}function Ri(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0;o=m;m=m+48|0;s=o+32|0;l=o+28|0;c=o+24|0;d=o+20|0;u=o+16|0;p=o+12|0;f=o+8|0;h=o+4|0;g=o;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[u>>2]=r[s>>2];s=(r[(r[u>>2]|0)+268>>2]<<1)+8|0;r[g>>2]=oe()|0;i=m;m=m+((1*(s<<1)|0)+15&-16)|0;s=(r[u>>2]|0)+24|0;a[i>>1]=a[s>>1]|0;a[i+2>>1]=a[s+2>>1]|0;a[i+4>>1]=a[s+4>>1]|0;a[i+6>>1]=a[s+6>>1]|0;a[i+8>>1]=a[s+8>>1]|0;a[i+10>>1]=a[s+10>>1]|0;a[i+12>>1]=a[s+12>>1]|0;a[i+14>>1]=a[s+14>>1]|0;r[h>>2]=r[(r[u>>2]|0)+272>>2];while(1){if((r[d>>2]|0)<(r[(r[u>>2]|0)+268>>2]|0))_=r[d>>2]|0;else _=r[(r[u>>2]|0)+268>>2]|0;r[p>>2]=_;Fi(r[u>>2]|0,i+16|0,r[c>>2]|0,r[p>>2]|0);r[f>>2]=r[p>>2]<<17;r[l>>2]=Ui(r[l>>2]|0,i,r[f>>2]|0,r[h>>2]|0)|0;r[c>>2]=(r[c>>2]|0)+(r[p>>2]<<1);r[d>>2]=(r[d>>2]|0)-(r[p>>2]|0);if((r[d>>2]|0)<=0)break;s=i+(r[p>>2]<<1<<1)|0;a[i>>1]=a[s>>1]|0;a[i+2>>1]=a[s+2>>1]|0;a[i+4>>1]=a[s+4>>1]|0;a[i+6>>1]=a[s+6>>1]|0;a[i+8>>1]=a[s+8>>1]|0;a[i+10>>1]=a[s+10>>1]|0;a[i+12>>1]=a[s+12>>1]|0;a[i+14>>1]=a[s+14>>1]|0}d=(r[u>>2]|0)+24|0;u=i+(r[p>>2]<<1<<1)|0;a[d>>1]=a[u>>1]|0;a[d+2>>1]=a[u+2>>1]|0;a[d+4>>1]=a[u+4>>1]|0;a[d+6>>1]=a[u+6>>1]|0;a[d+8>>1]=a[u+8>>1]|0;a[d+10>>1]=a[u+10>>1]|0;a[d+12>>1]=a[u+12>>1]|0;a[d+14>>1]=a[u+14>>1]|0;ce(r[g>>2]|0);m=o;return}function Oi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0;a=m;m=m+48|0;o=a+36|0;s=a+32|0;l=a+28|0;c=a+24|0;d=a+20|0;u=a+16|0;p=a+12|0;f=a+8|0;h=a+4|0;g=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[c>>2]=i;r[d>>2]=r[o>>2];o=(r[(r[d>>2]|0)+268>>2]|0)+(r[(r[d>>2]|0)+276>>2]|0)|0;r[g>>2]=oe()|0;i=m;m=m+((1*(o<<2)|0)+15&-16)|0;La(i|0,(r[d>>2]|0)+24|0,r[(r[d>>2]|0)+276>>2]<<2|0)|0;r[h>>2]=(r[(r[d>>2]|0)+296>>2]|0)+4;r[f>>2]=r[(r[d>>2]|0)+272>>2];while(1){if((r[c>>2]|0)<(r[(r[d>>2]|0)+268>>2]|0))_=r[c>>2]|0;else _=r[(r[d>>2]|0)+268>>2]|0;r[u>>2]=_;Ni(r[d>>2]|0,i+(r[(r[d>>2]|0)+276>>2]<<2)|0,r[l>>2]|0,r[(r[d>>2]|0)+296>>2]|0,r[u>>2]|0);r[p>>2]=r[u>>2]<<16;r[s>>2]=Li(r[s>>2]|0,i,r[h>>2]|0,r[(r[d>>2]|0)+276>>2]|0,r[(r[d>>2]|0)+280>>2]|0,r[p>>2]|0,r[f>>2]|0)|0;r[l>>2]=(r[l>>2]|0)+(r[u>>2]<<1);r[c>>2]=(r[c>>2]|0)-(r[u>>2]|0);if((r[c>>2]|0)<=1)break;La(i|0,i+(r[u>>2]<<2)|0,r[(r[d>>2]|0)+276>>2]<<2|0)|0}La((r[d>>2]|0)+24|0,i+(r[u>>2]<<2)|0,r[(r[d>>2]|0)+276>>2]<<2|0)|0;ce(r[g>>2]|0);m=a;return}function Ni(e,t,n,i,o){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;s=m;m=m+32|0;l=s+24|0;c=s+20|0;d=s+16|0;u=s+12|0;p=s+8|0;f=s+4|0;h=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=o;r[f>>2]=0;while(1){if((r[f>>2]|0)>=(r[p>>2]|0))break;r[h>>2]=(r[r[l>>2]>>2]|0)+(a[(r[d>>2]|0)+(r[f>>2]<<1)>>1]<<8);r[(r[c>>2]|0)+(r[f>>2]<<2)>>2]=r[h>>2];r[h>>2]=r[h>>2]<<2;o=W(r[h>>2]>>16,a[r[u>>2]>>1]|0)|0;i=(r[(r[l>>2]|0)+4>>2]|0)+(o+((W(r[h>>2]&65535,a[r[u>>2]>>1]|0)|0)>>16))|0;r[r[l>>2]>>2]=i;i=W(r[h>>2]>>16,a[(r[u>>2]|0)+2>>1]|0)|0;o=i+((W(r[h>>2]&65535,a[(r[u>>2]|0)+2>>1]|0)|0)>>16)|0;r[(r[l>>2]|0)+4>>2]=o;r[f>>2]=(r[f>>2]|0)+1;
}m=s;return}function Li(e,t,n,i,o,s,l){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;s=s|0;l=l|0;var c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0;c=m;m=m+48|0;d=c+44|0;u=c+40|0;p=c+36|0;f=c+32|0;h=c+28|0;g=c+24|0;_=c+20|0;v=c+16|0;y=c+12|0;b=c+8|0;w=c+4|0;k=c;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=i;r[h>>2]=o;r[g>>2]=s;r[_>>2]=l;switch(r[f>>2]|0){case 18:{r[v>>2]=0;while(1){if((r[v>>2]|0)>=(r[g>>2]|0))break;r[b>>2]=(r[u>>2]|0)+(r[v>>2]>>16<<2);f=W((r[v>>2]&65535)>>16,(r[h>>2]&65535)<<16>>16)|0;r[w>>2]=f+((W(r[v>>2]&65535,(r[h>>2]&65535)<<16>>16)|0)>>16);r[k>>2]=(r[p>>2]|0)+((r[w>>2]|0)*9<<1);f=W(r[r[b>>2]>>2]>>16,a[r[k>>2]>>1]|0)|0;r[y>>2]=f+((W(r[r[b>>2]>>2]&65535,a[r[k>>2]>>1]|0)|0)>>16);f=W(r[(r[b>>2]|0)+4>>2]>>16,a[(r[k>>2]|0)+2>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+4>>2]&65535,a[(r[k>>2]|0)+2>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+8>>2]>>16,a[(r[k>>2]|0)+4>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+8>>2]&65535,a[(r[k>>2]|0)+4>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+12>>2]>>16,a[(r[k>>2]|0)+6>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+12>>2]&65535,a[(r[k>>2]|0)+6>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+16>>2]>>16,a[(r[k>>2]|0)+8>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+16>>2]&65535,a[(r[k>>2]|0)+8>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+20>>2]>>16,a[(r[k>>2]|0)+10>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+20>>2]&65535,a[(r[k>>2]|0)+10>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+24>>2]>>16,a[(r[k>>2]|0)+12>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+24>>2]&65535,a[(r[k>>2]|0)+12>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+28>>2]>>16,a[(r[k>>2]|0)+14>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+28>>2]&65535,a[(r[k>>2]|0)+14>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+32>>2]>>16,a[(r[k>>2]|0)+16>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+32>>2]&65535,a[(r[k>>2]|0)+16>>1]|0)|0)>>16));r[k>>2]=(r[p>>2]|0)+(((r[h>>2]|0)-1-(r[w>>2]|0)|0)*9<<1);f=W(r[(r[b>>2]|0)+68>>2]>>16,a[r[k>>2]>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+68>>2]&65535,a[r[k>>2]>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+64>>2]>>16,a[(r[k>>2]|0)+2>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+64>>2]&65535,a[(r[k>>2]|0)+2>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+60>>2]>>16,a[(r[k>>2]|0)+4>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+60>>2]&65535,a[(r[k>>2]|0)+4>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+56>>2]>>16,a[(r[k>>2]|0)+6>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+56>>2]&65535,a[(r[k>>2]|0)+6>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+52>>2]>>16,a[(r[k>>2]|0)+8>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+52>>2]&65535,a[(r[k>>2]|0)+8>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+48>>2]>>16,a[(r[k>>2]|0)+10>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+48>>2]&65535,a[(r[k>>2]|0)+10>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+44>>2]>>16,a[(r[k>>2]|0)+12>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+44>>2]&65535,a[(r[k>>2]|0)+12>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+40>>2]>>16,a[(r[k>>2]|0)+14>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+40>>2]&65535,a[(r[k>>2]|0)+14>>1]|0)|0)>>16));f=W(r[(r[b>>2]|0)+36>>2]>>16,a[(r[k>>2]|0)+16>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(f+((W(r[(r[b>>2]|0)+36>>2]&65535,a[(r[k>>2]|0)+16>>1]|0)|0)>>16));if(((r[y>>2]>>5)+1>>1|0)<=32767)if(((r[y>>2]>>5)+1>>1|0)<-32768)M=-32768;else M=(r[y>>2]>>5)+1>>1;else M=32767;f=r[d>>2]|0;r[d>>2]=f+2;a[f>>1]=M;r[v>>2]=(r[v>>2]|0)+(r[_>>2]|0)}S=r[d>>2]|0;m=c;return S|0}case 24:{r[v>>2]=0;while(1){if((r[v>>2]|0)>=(r[g>>2]|0))break;r[b>>2]=(r[u>>2]|0)+(r[v>>2]>>16<<2);M=W((r[r[b>>2]>>2]|0)+(r[(r[b>>2]|0)+92>>2]|0)>>16,a[r[p>>2]>>1]|0)|0;r[y>>2]=M+((W((r[r[b>>2]>>2]|0)+(r[(r[b>>2]|0)+92>>2]|0)&65535,a[r[p>>2]>>1]|0)|0)>>16);M=W((r[(r[b>>2]|0)+4>>2]|0)+(r[(r[b>>2]|0)+88>>2]|0)>>16,a[(r[p>>2]|0)+2>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+4>>2]|0)+(r[(r[b>>2]|0)+88>>2]|0)&65535,a[(r[p>>2]|0)+2>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+8>>2]|0)+(r[(r[b>>2]|0)+84>>2]|0)>>16,a[(r[p>>2]|0)+4>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+8>>2]|0)+(r[(r[b>>2]|0)+84>>2]|0)&65535,a[(r[p>>2]|0)+4>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+12>>2]|0)+(r[(r[b>>2]|0)+80>>2]|0)>>16,a[(r[p>>2]|0)+6>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+12>>2]|0)+(r[(r[b>>2]|0)+80>>2]|0)&65535,a[(r[p>>2]|0)+6>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+16>>2]|0)+(r[(r[b>>2]|0)+76>>2]|0)>>16,a[(r[p>>2]|0)+8>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+16>>2]|0)+(r[(r[b>>2]|0)+76>>2]|0)&65535,a[(r[p>>2]|0)+8>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+20>>2]|0)+(r[(r[b>>2]|0)+72>>2]|0)>>16,a[(r[p>>2]|0)+10>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+20>>2]|0)+(r[(r[b>>2]|0)+72>>2]|0)&65535,a[(r[p>>2]|0)+10>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+24>>2]|0)+(r[(r[b>>2]|0)+68>>2]|0)>>16,a[(r[p>>2]|0)+12>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+24>>2]|0)+(r[(r[b>>2]|0)+68>>2]|0)&65535,a[(r[p>>2]|0)+12>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+28>>2]|0)+(r[(r[b>>2]|0)+64>>2]|0)>>16,a[(r[p>>2]|0)+14>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+28>>2]|0)+(r[(r[b>>2]|0)+64>>2]|0)&65535,a[(r[p>>2]|0)+14>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+32>>2]|0)+(r[(r[b>>2]|0)+60>>2]|0)>>16,a[(r[p>>2]|0)+16>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+32>>2]|0)+(r[(r[b>>2]|0)+60>>2]|0)&65535,a[(r[p>>2]|0)+16>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+36>>2]|0)+(r[(r[b>>2]|0)+56>>2]|0)>>16,a[(r[p>>2]|0)+18>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+36>>2]|0)+(r[(r[b>>2]|0)+56>>2]|0)&65535,a[(r[p>>2]|0)+18>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+40>>2]|0)+(r[(r[b>>2]|0)+52>>2]|0)>>16,a[(r[p>>2]|0)+20>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+40>>2]|0)+(r[(r[b>>2]|0)+52>>2]|0)&65535,a[(r[p>>2]|0)+20>>1]|0)|0)>>16));M=W((r[(r[b>>2]|0)+44>>2]|0)+(r[(r[b>>2]|0)+48>>2]|0)>>16,a[(r[p>>2]|0)+22>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(M+((W((r[(r[b>>2]|0)+44>>2]|0)+(r[(r[b>>2]|0)+48>>2]|0)&65535,a[(r[p>>2]|0)+22>>1]|0)|0)>>16));if(((r[y>>2]>>5)+1>>1|0)<=32767)if(((r[y>>2]>>5)+1>>1|0)<-32768)A=-32768;else A=(r[y>>2]>>5)+1>>1;else A=32767;M=r[d>>2]|0;r[d>>2]=M+2;a[M>>1]=A;r[v>>2]=(r[v>>2]|0)+(r[_>>2]|0)}S=r[d>>2]|0;m=c;return S|0}case 36:{r[v>>2]=0;while(1){if((r[v>>2]|0)>=(r[g>>2]|0))break;r[b>>2]=(r[u>>2]|0)+(r[v>>2]>>16<<2);A=W((r[r[b>>2]>>2]|0)+(r[(r[b>>2]|0)+140>>2]|0)>>16,a[r[p>>2]>>1]|0)|0;r[y>>2]=A+((W((r[r[b>>2]>>2]|0)+(r[(r[b>>2]|0)+140>>2]|0)&65535,a[r[p>>2]>>1]|0)|0)>>16);A=W((r[(r[b>>2]|0)+4>>2]|0)+(r[(r[b>>2]|0)+136>>2]|0)>>16,a[(r[p>>2]|0)+2>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+4>>2]|0)+(r[(r[b>>2]|0)+136>>2]|0)&65535,a[(r[p>>2]|0)+2>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+8>>2]|0)+(r[(r[b>>2]|0)+132>>2]|0)>>16,a[(r[p>>2]|0)+4>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+8>>2]|0)+(r[(r[b>>2]|0)+132>>2]|0)&65535,a[(r[p>>2]|0)+4>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+12>>2]|0)+(r[(r[b>>2]|0)+128>>2]|0)>>16,a[(r[p>>2]|0)+6>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+12>>2]|0)+(r[(r[b>>2]|0)+128>>2]|0)&65535,a[(r[p>>2]|0)+6>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+16>>2]|0)+(r[(r[b>>2]|0)+124>>2]|0)>>16,a[(r[p>>2]|0)+8>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+16>>2]|0)+(r[(r[b>>2]|0)+124>>2]|0)&65535,a[(r[p>>2]|0)+8>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+20>>2]|0)+(r[(r[b>>2]|0)+120>>2]|0)>>16,a[(r[p>>2]|0)+10>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+20>>2]|0)+(r[(r[b>>2]|0)+120>>2]|0)&65535,a[(r[p>>2]|0)+10>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+24>>2]|0)+(r[(r[b>>2]|0)+116>>2]|0)>>16,a[(r[p>>2]|0)+12>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+24>>2]|0)+(r[(r[b>>2]|0)+116>>2]|0)&65535,a[(r[p>>2]|0)+12>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+28>>2]|0)+(r[(r[b>>2]|0)+112>>2]|0)>>16,a[(r[p>>2]|0)+14>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+28>>2]|0)+(r[(r[b>>2]|0)+112>>2]|0)&65535,a[(r[p>>2]|0)+14>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+32>>2]|0)+(r[(r[b>>2]|0)+108>>2]|0)>>16,a[(r[p>>2]|0)+16>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+32>>2]|0)+(r[(r[b>>2]|0)+108>>2]|0)&65535,a[(r[p>>2]|0)+16>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+36>>2]|0)+(r[(r[b>>2]|0)+104>>2]|0)>>16,a[(r[p>>2]|0)+18>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+36>>2]|0)+(r[(r[b>>2]|0)+104>>2]|0)&65535,a[(r[p>>2]|0)+18>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+40>>2]|0)+(r[(r[b>>2]|0)+100>>2]|0)>>16,a[(r[p>>2]|0)+20>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+40>>2]|0)+(r[(r[b>>2]|0)+100>>2]|0)&65535,a[(r[p>>2]|0)+20>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+44>>2]|0)+(r[(r[b>>2]|0)+96>>2]|0)>>16,a[(r[p>>2]|0)+22>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+44>>2]|0)+(r[(r[b>>2]|0)+96>>2]|0)&65535,a[(r[p>>2]|0)+22>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+48>>2]|0)+(r[(r[b>>2]|0)+92>>2]|0)>>16,a[(r[p>>2]|0)+24>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+48>>2]|0)+(r[(r[b>>2]|0)+92>>2]|0)&65535,a[(r[p>>2]|0)+24>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+52>>2]|0)+(r[(r[b>>2]|0)+88>>2]|0)>>16,a[(r[p>>2]|0)+26>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+52>>2]|0)+(r[(r[b>>2]|0)+88>>2]|0)&65535,a[(r[p>>2]|0)+26>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+56>>2]|0)+(r[(r[b>>2]|0)+84>>2]|0)>>16,a[(r[p>>2]|0)+28>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+56>>2]|0)+(r[(r[b>>2]|0)+84>>2]|0)&65535,a[(r[p>>2]|0)+28>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+60>>2]|0)+(r[(r[b>>2]|0)+80>>2]|0)>>16,a[(r[p>>2]|0)+30>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+60>>2]|0)+(r[(r[b>>2]|0)+80>>2]|0)&65535,a[(r[p>>2]|0)+30>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+64>>2]|0)+(r[(r[b>>2]|0)+76>>2]|0)>>16,a[(r[p>>2]|0)+32>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+64>>2]|0)+(r[(r[b>>2]|0)+76>>2]|0)&65535,a[(r[p>>2]|0)+32>>1]|0)|0)>>16));A=W((r[(r[b>>2]|0)+68>>2]|0)+(r[(r[b>>2]|0)+72>>2]|0)>>16,a[(r[p>>2]|0)+34>>1]|0)|0;r[y>>2]=(r[y>>2]|0)+(A+((W((r[(r[b>>2]|0)+68>>2]|0)+(r[(r[b>>2]|0)+72>>2]|0)&65535,a[(r[p>>2]|0)+34>>1]|0)|0)>>16));if(((r[y>>2]>>5)+1>>1|0)<=32767)if(((r[y>>2]>>5)+1>>1|0)<-32768)C=-32768;else C=(r[y>>2]>>5)+1>>1;else C=32767;A=r[d>>2]|0;r[d>>2]=A+2;a[A>>1]=C;r[v>>2]=(r[v>>2]|0)+(r[_>>2]|0)}S=r[d>>2]|0;m=c;return S|0}default:{S=r[d>>2]|0;m=c;return S|0}}return 0}function Fi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0;o=m;m=m+48|0;s=o+36|0;l=o+32|0;c=o+28|0;d=o+24|0;u=o+20|0;p=o+16|0;f=o+12|0;h=o+8|0;g=o+4|0;_=o;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[d>>2]|0))break;r[p>>2]=a[(r[c>>2]|0)+(r[u>>2]<<1)>>1]<<10;r[g>>2]=(r[p>>2]|0)-(r[r[s>>2]>>2]|0);i=W(r[g>>2]>>16,a[10257]|0)|0;r[_>>2]=i+((W(r[g>>2]&65535,a[10257]|0)|0)>>16);r[f>>2]=(r[r[s>>2]>>2]|0)+(r[_>>2]|0);r[r[s>>2]>>2]=(r[p>>2]|0)+(r[_>>2]|0);r[g>>2]=(r[f>>2]|0)-(r[(r[s>>2]|0)+4>>2]|0);i=W(r[g>>2]>>16,a[10258]|0)|0;r[_>>2]=i+((W(r[g>>2]&65535,a[10258]|0)|0)>>16);r[h>>2]=(r[(r[s>>2]|0)+4>>2]|0)+(r[_>>2]|0);r[(r[s>>2]|0)+4>>2]=(r[f>>2]|0)+(r[_>>2]|0);r[g>>2]=(r[h>>2]|0)-(r[(r[s>>2]|0)+8>>2]|0);i=W(r[g>>2]>>16,a[10259]|0)|0;r[_>>2]=(r[g>>2]|0)+(i+((W(r[g>>2]&65535,a[10259]|0)|0)>>16));r[f>>2]=(r[(r[s>>2]|0)+8>>2]|0)+(r[_>>2]|0);r[(r[s>>2]|0)+8>>2]=(r[h>>2]|0)+(r[_>>2]|0);if(((r[f>>2]>>9)+1>>1|0)<=32767)if(((r[f>>2]>>9)+1>>1|0)<-32768)v=-32768;else v=(r[f>>2]>>9)+1>>1;else v=32767;a[(r[l>>2]|0)+(r[u>>2]<<1<<1)>>1]=v;r[g>>2]=(r[p>>2]|0)-(r[(r[s>>2]|0)+12>>2]|0);i=W(r[g>>2]>>16,a[10260]|0)|0;r[_>>2]=i+((W(r[g>>2]&65535,a[10260]|0)|0)>>16);r[f>>2]=(r[(r[s>>2]|0)+12>>2]|0)+(r[_>>2]|0);r[(r[s>>2]|0)+12>>2]=(r[p>>2]|0)+(r[_>>2]|0);r[g>>2]=(r[f>>2]|0)-(r[(r[s>>2]|0)+16>>2]|0);i=W(r[g>>2]>>16,a[10261]|0)|0;r[_>>2]=i+((W(r[g>>2]&65535,a[10261]|0)|0)>>16);r[h>>2]=(r[(r[s>>2]|0)+16>>2]|0)+(r[_>>2]|0);r[(r[s>>2]|0)+16>>2]=(r[f>>2]|0)+(r[_>>2]|0);r[g>>2]=(r[h>>2]|0)-(r[(r[s>>2]|0)+20>>2]|0);i=W(r[g>>2]>>16,a[10262]|0)|0;r[_>>2]=(r[g>>2]|0)+(i+((W(r[g>>2]&65535,a[10262]|0)|0)>>16));r[f>>2]=(r[(r[s>>2]|0)+20>>2]|0)+(r[_>>2]|0);r[(r[s>>2]|0)+20>>2]=(r[h>>2]|0)+(r[_>>2]|0);if(((r[f>>2]>>9)+1>>1|0)<=32767)if(((r[f>>2]>>9)+1>>1|0)<-32768)y=-32768;else y=(r[f>>2]>>9)+1>>1;else y=32767;a[(r[l>>2]|0)+((r[u>>2]<<1)+1<<1)>>1]=y;r[u>>2]=(r[u>>2]|0)+1}m=o;return}function Ui(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0;o=m;m=m+32|0;s=o+28|0;l=o+24|0;c=o+20|0;d=o+16|0;u=o+12|0;p=o+8|0;f=o+4|0;h=o;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[c>>2]|0))break;r[h>>2]=(((r[u>>2]&65535)>>16)*12|0)+((r[u>>2]&65535)*12>>16);r[f>>2]=(r[l>>2]|0)+(r[u>>2]>>16<<1);r[p>>2]=W(a[r[f>>2]>>1]|0,a[18294+(r[h>>2]<<3)>>1]|0)|0;r[p>>2]=(r[p>>2]|0)+(W(a[(r[f>>2]|0)+2>>1]|0,a[18294+(r[h>>2]<<3)+2>>1]|0)|0);r[p>>2]=(r[p>>2]|0)+(W(a[(r[f>>2]|0)+4>>1]|0,a[18294+(r[h>>2]<<3)+4>>1]|0)|0);r[p>>2]=(r[p>>2]|0)+(W(a[(r[f>>2]|0)+6>>1]|0,a[18294+(r[h>>2]<<3)+6>>1]|0)|0);r[p>>2]=(r[p>>2]|0)+(W(a[(r[f>>2]|0)+8>>1]|0,a[18294+(11-(r[h>>2]|0)<<3)+6>>1]|0)|0);r[p>>2]=(r[p>>2]|0)+(W(a[(r[f>>2]|0)+10>>1]|0,a[18294+(11-(r[h>>2]|0)<<3)+4>>1]|0)|0);r[p>>2]=(r[p>>2]|0)+(W(a[(r[f>>2]|0)+12>>1]|0,a[18294+(11-(r[h>>2]|0)<<3)+2>>1]|0)|0);r[p>>2]=(r[p>>2]|0)+(W(a[(r[f>>2]|0)+14>>1]|0,a[18294+(11-(r[h>>2]|0)<<3)>>1]|0)|0);if(((r[p>>2]>>14)+1>>1|0)<=32767)if(((r[p>>2]>>14)+1>>1|0)<-32768)g=-32768;else g=(r[p>>2]>>14)+1>>1;else g=32767;i=r[s>>2]|0;r[s>>2]=i+2;a[i>>1]=g;r[u>>2]=(r[u>>2]|0)+(r[d>>2]|0)}m=o;return r[s>>2]|0}function Bi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0;a=m;m=m+80|0;o=a+64|0;s=a+60|0;l=a+56|0;d=a+52|0;u=a+48|0;p=a+44|0;f=a+40|0;h=a+36|0;g=a+32|0;_=a+28|0;v=a+24|0;y=a+20|0;b=a+16|0;w=a+12|0;k=a+8|0;M=a+4|0;S=a;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=i;if(!((((r[l>>2]|0)<1|(r[s>>2]|0)<1)^1)&(r[o>>2]|0)!=0&(r[d>>2]|0)!=0)){m=a;return}r[p>>2]=0;while(1){if((r[p>>2]|0)>=(W(r[s>>2]|0,r[l>>2]|0)|0))break;if(2<+c[(r[o>>2]|0)+(r[p>>2]<<2)>>2])A=2;else A=+c[(r[o>>2]|0)+(r[p>>2]<<2)>>2];if(!(-2>A))if(2<+c[(r[o>>2]|0)+(r[p>>2]<<2)>>2])C=2;else C=+c[(r[o>>2]|0)+(r[p>>2]<<2)>>2];else C=-2;c[(r[o>>2]|0)+(r[p>>2]<<2)>>2]=C;r[p>>2]=(r[p>>2]|0)+1}r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[l>>2]|0))break;r[f>>2]=(r[o>>2]|0)+(r[u>>2]<<2);c[h>>2]=+c[(r[d>>2]|0)+(r[u>>2]<<2)>>2];r[p>>2]=0;while(1){if((r[p>>2]|0)>=(r[s>>2]|0))break;C=+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];if(C*+c[h>>2]>=0)break;C=+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];A=+c[h>>2]*+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];T=C+A*+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2]=T;r[p>>2]=(r[p>>2]|0)+1}r[_>>2]=0;c[g>>2]=+c[r[f>>2]>>2];do{r[w>>2]=0;r[p>>2]=r[_>>2];while(1){if((r[p>>2]|0)>=(r[s>>2]|0))break;if(+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2]>1)break;if(+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2]<-1)break;r[p>>2]=(r[p>>2]|0)+1}if((r[p>>2]|0)==(r[s>>2]|0)){E=23;break}r[k>>2]=r[p>>2];i=r[p>>2]|0;r[y>>2]=i;r[v>>2]=i;c[b>>2]=+D(+ +c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2]);while(1){if((r[v>>2]|0)<=0)break;T=+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];if(!(T*+c[(r[f>>2]|0)+((W((r[v>>2]|0)-1|0,r[l>>2]|0)|0)<<2)>>2]>=0))break;r[v>>2]=(r[v>>2]|0)+-1}while(1){if((r[y>>2]|0)>=(r[s>>2]|0))break;T=+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];if(!(T*+c[(r[f>>2]|0)+((W(r[y>>2]|0,r[l>>2]|0)|0)<<2)>>2]>=0))break;T=+D(+ +c[(r[f>>2]|0)+((W(r[y>>2]|0,r[l>>2]|0)|0)<<2)>>2]);if(T>+c[b>>2]){c[b>>2]=+D(+ +c[(r[f>>2]|0)+((W(r[y>>2]|0,r[l>>2]|0)|0)<<2)>>2]);r[k>>2]=r[y>>2]}r[y>>2]=(r[y>>2]|0)+1}if(!(r[v>>2]|0)){T=+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];$=T*+c[r[f>>2]>>2]>=0}else $=0;r[w>>2]=$&1;c[h>>2]=(+c[b>>2]-1)/(+c[b>>2]*+c[b>>2]);if(+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2]>0)c[h>>2]=-+c[h>>2];r[p>>2]=r[v>>2];while(1){if((r[p>>2]|0)>=(r[y>>2]|0))break;T=+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];A=+c[h>>2]*+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];C=T+A*+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2]=C;r[p>>2]=(r[p>>2]|0)+1}e:do if((r[w>>2]|0)!=0&(r[k>>2]|0)>=2){c[S>>2]=+c[g>>2]-+c[r[f>>2]>>2];c[M>>2]=+c[S>>2]/+(r[k>>2]|0);r[p>>2]=r[_>>2];while(1){if((r[p>>2]|0)>=(r[k>>2]|0))break e;c[S>>2]=+c[S>>2]-+c[M>>2];i=(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)|0;c[i>>2]=+c[i>>2]+ +c[S>>2];if(1<+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2])I=1;else I=+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];if(!(-1>I))if(1<+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2])x=1;else x=+c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2];else x=-1;c[(r[f>>2]|0)+((W(r[p>>2]|0,r[l>>2]|0)|0)<<2)>>2]=x;r[p>>2]=(r[p>>2]|0)+1}}while(0);r[_>>2]=r[y>>2]}while((r[_>>2]|0)!=(r[s>>2]|0));if((E|0)==23){E=0;c[h>>2]=0}c[(r[d>>2]|0)+(r[u>>2]<<2)>>2]=+c[h>>2];r[u>>2]=(r[u>>2]|0)+1}m=a;return}function Hi(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,s=0,l=0;n=m;m=m+16|0;i=n+8|0;a=n+4|0;s=n;r[i>>2]=e;r[a>>2]=t;t=o[r[i>>2]>>0]|0;if((o[r[i>>2]>>0]|0)&128|0){r[s>>2]=t>>3&3;r[s>>2]=(r[a>>2]<<r[s>>2]|0)/400|0;l=r[s>>2]|0;m=n;return l|0}e=o[r[i>>2]>>0]|0;if((t&96|0)==96){r[s>>2]=(r[a>>2]|0)/((e&8|0?50:100)|0)|0;l=r[s>>2]|0;m=n;return l|0}r[s>>2]=e>>3&3;e=r[a>>2]|0;if((r[s>>2]|0)==3){r[s>>2]=(e*60|0)/1e3|0;l=r[s>>2]|0;m=n;return l|0}else{r[s>>2]=(e<<r[s>>2]|0)/100|0;l=r[s>>2]|0;m=n;return l|0}return 0}function ji(e,t,n,s,l,c,d,u){e=e|0;t=t|0;n=n|0;s=s|0;l=l|0;c=c|0;d=d|0;u=u|0;var p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0;p=m;m=m+80|0;f=p+72|0;h=p+68|0;g=p+64|0;_=p+60|0;v=p+56|0;y=p+52|0;b=p+48|0;w=p+44|0;k=p+40|0;M=p+36|0;S=p+32|0;A=p+28|0;C=p+24|0;T=p+77|0;E=p+76|0;$=p+20|0;I=p+16|0;x=p+12|0;P=p+8|0;D=p+4|0;R=p;r[h>>2]=e;r[g>>2]=t;r[_>>2]=n;r[v>>2]=s;r[y>>2]=l;r[b>>2]=c;r[w>>2]=d;r[k>>2]=u;r[x>>2]=0;r[P>>2]=r[h>>2];if(!(r[b>>2]|0)){r[f>>2]=-1;O=r[f>>2]|0;m=p;return O|0}r[$>>2]=Hi(r[h>>2]|0,48e3)|0;r[C>>2]=0;u=r[h>>2]|0;r[h>>2]=u+1;i[E>>0]=i[u>>0]|0;r[g>>2]=(r[g>>2]|0)+-1;r[I>>2]=r[g>>2];e:do switch(o[E>>0]&3|0){case 0:{r[A>>2]=1;break}case 1:{r[A>>2]=2;r[C>>2]=1;if(!(r[_>>2]|0)){if(!(r[g>>2]&1)){r[I>>2]=(r[g>>2]|0)/2|0;a[r[b>>2]>>1]=r[I>>2];break e}r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}break}case 2:{r[A>>2]=2;r[S>>2]=Vi(r[h>>2]|0,r[g>>2]|0,r[b>>2]|0)|0;r[g>>2]=(r[g>>2]|0)-(r[S>>2]|0);if((a[r[b>>2]>>1]|0)>=0?(a[r[b>>2]>>1]|0)<=(r[g>>2]|0):0){r[h>>2]=(r[h>>2]|0)+(r[S>>2]|0);r[I>>2]=(r[g>>2]|0)-(a[r[b>>2]>>1]|0);break e}r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}default:{if((r[g>>2]|0)<1){r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}u=r[h>>2]|0;r[h>>2]=u+1;i[T>>0]=i[u>>0]|0;r[A>>2]=o[T>>0]&63;if((r[A>>2]|0)>0?(W(r[$>>2]|0,r[A>>2]|0)|0)<=5760:0){r[g>>2]=(r[g>>2]|0)+-1;t:do if(o[T>>0]&64|0){while(1){if((r[g>>2]|0)<=0)break;u=r[h>>2]|0;r[h>>2]=u+1;r[D>>2]=o[u>>0];r[g>>2]=(r[g>>2]|0)+-1;r[R>>2]=(r[D>>2]|0)==255?254:r[D>>2]|0;r[g>>2]=(r[g>>2]|0)-(r[R>>2]|0);r[x>>2]=(r[x>>2]|0)+(r[R>>2]|0);if((r[D>>2]|0)!=255)break t}r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}while(0);if((r[g>>2]|0)<0){r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}r[C>>2]=((o[T>>0]&128|0)!=0^1)&1;if(r[C>>2]|0){if(r[_>>2]|0)break e;r[I>>2]=(r[g>>2]|0)/(r[A>>2]|0)|0;u=W(r[I>>2]|0,r[A>>2]|0)|0;if((u|0)!=(r[g>>2]|0)){r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}r[M>>2]=0;while(1){if((r[M>>2]|0)>=((r[A>>2]|0)-1|0))break e;a[(r[b>>2]|0)+(r[M>>2]<<1)>>1]=r[I>>2];r[M>>2]=(r[M>>2]|0)+1}}r[I>>2]=r[g>>2];r[M>>2]=0;while(1){if((r[M>>2]|0)>=((r[A>>2]|0)-1|0))break;r[S>>2]=Vi(r[h>>2]|0,r[g>>2]|0,(r[b>>2]|0)+(r[M>>2]<<1)|0)|0;r[g>>2]=(r[g>>2]|0)-(r[S>>2]|0);if((a[(r[b>>2]|0)+(r[M>>2]<<1)>>1]|0)<0){N=29;break}if((a[(r[b>>2]|0)+(r[M>>2]<<1)>>1]|0)>(r[g>>2]|0)){N=29;break}r[h>>2]=(r[h>>2]|0)+(r[S>>2]|0);r[I>>2]=(r[I>>2]|0)-((r[S>>2]|0)+(a[(r[b>>2]|0)+(r[M>>2]<<1)>>1]|0));r[M>>2]=(r[M>>2]|0)+1}if((N|0)==29){r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}if((r[I>>2]|0)>=0)break e;r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}}while(0);e:do if(r[_>>2]|0){r[S>>2]=Vi(r[h>>2]|0,r[g>>2]|0,(r[b>>2]|0)+(r[A>>2]<<1)+-2|0)|0;r[g>>2]=(r[g>>2]|0)-(r[S>>2]|0);if((a[(r[b>>2]|0)+((r[A>>2]|0)-1<<1)>>1]|0)>=0?(a[(r[b>>2]|0)+((r[A>>2]|0)-1<<1)>>1]|0)<=(r[g>>2]|0):0){r[h>>2]=(r[h>>2]|0)+(r[S>>2]|0);if(!(r[C>>2]|0)){if(((r[S>>2]|0)+(a[(r[b>>2]|0)+((r[A>>2]|0)-1<<1)>>1]|0)|0)<=(r[I>>2]|0))break;r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}N=W(a[(r[b>>2]|0)+((r[A>>2]|0)-1<<1)>>1]|0,r[A>>2]|0)|0;if((N|0)>(r[g>>2]|0)){r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}r[M>>2]=0;while(1){if((r[M>>2]|0)>=((r[A>>2]|0)-1|0))break e;a[(r[b>>2]|0)+(r[M>>2]<<1)>>1]=a[(r[b>>2]|0)+((r[A>>2]|0)-1<<1)>>1]|0;r[M>>2]=(r[M>>2]|0)+1}}r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}else{if((r[I>>2]|0)<=1275){a[(r[b>>2]|0)+((r[A>>2]|0)-1<<1)>>1]=r[I>>2];break}r[f>>2]=-4;O=r[f>>2]|0;m=p;return O|0}while(0);if(r[w>>2]|0)r[r[w>>2]>>2]=(r[h>>2]|0)-(r[P>>2]|0);r[M>>2]=0;while(1){if((r[M>>2]|0)>=(r[A>>2]|0))break;if(r[y>>2]|0)r[(r[y>>2]|0)+(r[M>>2]<<2)>>2]=r[h>>2];r[h>>2]=(r[h>>2]|0)+(a[(r[b>>2]|0)+(r[M>>2]<<1)>>1]|0);r[M>>2]=(r[M>>2]|0)+1}if(r[k>>2]|0)r[r[k>>2]>>2]=(r[x>>2]|0)+((r[h>>2]|0)-(r[P>>2]|0));if(r[v>>2]|0)i[r[v>>2]>>0]=i[E>>0]|0;r[f>>2]=r[A>>2];O=r[f>>2]|0;m=p;return O|0}function Vi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,l=0,c=0,d=0,u=0;i=m;m=m+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;if((r[c>>2]|0)<1){a[r[d>>2]>>1]=-1;r[s>>2]=-1;u=r[s>>2]|0;m=i;return u|0}if((o[r[l>>2]>>0]|0|0)<252){a[r[d>>2]>>1]=o[r[l>>2]>>0]|0;r[s>>2]=1;u=r[s>>2]|0;m=i;return u|0}if((r[c>>2]|0)<2){a[r[d>>2]>>1]=-1;r[s>>2]=-1;u=r[s>>2]|0;m=i;return u|0}else{a[r[d>>2]>>1]=((o[(r[l>>2]|0)+1>>0]|0)<<2)+(o[r[l>>2]>>0]|0);r[s>>2]=2;u=r[s>>2]|0;m=i;return u|0}return 0}function qi(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0;t=m;m=m+32|0;n=t+16|0;i=t+12|0;a=t+8|0;o=t+4|0;s=t;r[i>>2]=e;if((r[i>>2]|0)<1|(r[i>>2]|0)>2){r[n>>2]=0;l=r[n>>2]|0;m=t;return l|0}r[s>>2]=Ci(a)|0;if(r[s>>2]|0){r[n>>2]=0;l=r[n>>2]|0;m=t;return l|0}else{r[a>>2]=zi(r[a>>2]|0)|0;r[o>>2]=Wt(r[i>>2]|0)|0;i=zi(84)|0;r[n>>2]=i+(r[a>>2]|0)+(r[o>>2]|0);l=r[n>>2]|0;m=t;return l|0}return 0}function zi(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;m=t;return(r[n>>2]|0)+4-1&-4|0}function Wi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0;i=m;m=m+48|0;a=i;o=i+32|0;s=i+28|0;l=i+24|0;c=i+20|0;d=i+16|0;u=i+12|0;p=i+8|0;f=i+4|0;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;if(!((r[l>>2]|0)!=48e3&(r[l>>2]|0)!=24e3&(r[l>>2]|0)!=16e3&(r[l>>2]|0)!=12e3&(r[l>>2]|0)!=8e3)?!((r[c>>2]|0)!=1&(r[c>>2]|0)!=2):0){n=r[s>>2]|0;Na(n|0,0,qi(r[c>>2]|0)|0)|0;r[p>>2]=Ci(f)|0;if(r[p>>2]|0){r[o>>2]=-3;h=r[o>>2]|0;m=i;return h|0}r[f>>2]=zi(r[f>>2]|0)|0;n=zi(84)|0;r[(r[s>>2]|0)+4>>2]=n;r[r[s>>2]>>2]=(r[(r[s>>2]|0)+4>>2]|0)+(r[f>>2]|0);r[d>>2]=(r[s>>2]|0)+(r[(r[s>>2]|0)+4>>2]|0);r[u>>2]=(r[s>>2]|0)+(r[r[s>>2]>>2]|0);f=r[c>>2]|0;r[(r[s>>2]|0)+8>>2]=f;r[(r[s>>2]|0)+44>>2]=f;r[(r[s>>2]|0)+12>>2]=r[l>>2];r[(r[s>>2]|0)+16+8>>2]=r[(r[s>>2]|0)+12>>2];r[(r[s>>2]|0)+16>>2]=r[(r[s>>2]|0)+8>>2];r[p>>2]=Ti(r[d>>2]|0)|0;if(r[p>>2]|0){r[o>>2]=-3;h=r[o>>2]|0;m=i;return h|0}r[p>>2]=Kt(r[u>>2]|0,r[l>>2]|0,r[c>>2]|0)|0;if(r[p>>2]|0){r[o>>2]=-3;h=r[o>>2]|0;m=i;return h|0}else{p=r[u>>2]|0;r[a>>2]=0;Jt(p,10016,a)|0;r[(r[s>>2]|0)+56>>2]=0;r[(r[s>>2]|0)+60>>2]=(r[l>>2]|0)/400|0;r[o>>2]=0;h=r[o>>2]|0;m=i;return h|0}}r[o>>2]=-1;h=r[o>>2]|0;m=i;return h|0}function Gi(e,t,n,i,o,s,l,d,u){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;s=s|0;l=l|0;d=d|0;u=u|0;var p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0;p=m;m=m+208|0;f=p+88|0;h=p+84|0;g=p+80|0;_=p+76|0;v=p+72|0;y=p+68|0;b=p+64|0;w=p+60|0;k=p+56|0;M=p+52|0;S=p+48|0;A=p+44|0;C=p+40|0;T=p+36|0;E=p+192|0;$=p+32|0;I=p+28|0;x=p+24|0;P=p+20|0;D=p+96|0;R=p+16|0;O=p+12|0;N=p+8|0;L=p+4|0;F=p;r[h>>2]=e;r[g>>2]=t;r[_>>2]=n;r[v>>2]=i;r[y>>2]=o;r[b>>2]=s;r[w>>2]=l;r[k>>2]=d;r[M>>2]=u;if((r[b>>2]|0)<0|(r[b>>2]|0)>1){r[f>>2]=-1;U=r[f>>2]|0;m=p;return U|0}if((r[b>>2]|0)!=0|(r[_>>2]|0)==0|(r[g>>2]|0)==0?(r[y>>2]|0)%((r[(r[h>>2]|0)+12>>2]|0)/400|0|0)|0|0:0){r[f>>2]=-1;U=r[f>>2]|0;m=p;return U|0}if((r[_>>2]|0)==0|(r[g>>2]|0)==0){r[R>>2]=0;while(1){u=(r[v>>2]|0)+((W(r[R>>2]|0,r[(r[h>>2]|0)+8>>2]|0)|0)<<2)|0;r[O>>2]=Ki(r[h>>2]|0,0,0,u,(r[y>>2]|0)-(r[R>>2]|0)|0,0)|0;B=r[O>>2]|0;if((r[O>>2]|0)<0){H=9;break}r[R>>2]=(r[R>>2]|0)+B;if((r[R>>2]|0)>=(r[y>>2]|0)){H=11;break}}if((H|0)==9){r[f>>2]=B;U=r[f>>2]|0;m=p;return U|0}else if((H|0)==11){Yi()|0;r[(r[h>>2]|0)+68>>2]=r[R>>2];r[f>>2]=r[R>>2];U=r[f>>2]|0;m=p;return U|0}}if((r[_>>2]|0)<0){r[f>>2]=-1;U=r[f>>2]|0;m=p;return U|0}r[x>>2]=Xi(r[g>>2]|0)|0;r[I>>2]=Ji(r[g>>2]|0)|0;r[$>>2]=Hi(r[g>>2]|0,r[(r[h>>2]|0)+12>>2]|0)|0;r[P>>2]=Zi(r[g>>2]|0)|0;r[C>>2]=ji(r[g>>2]|0,r[_>>2]|0,r[w>>2]|0,E,0,D,T,r[k>>2]|0)|0;if((r[C>>2]|0)<0){r[f>>2]=r[C>>2];U=r[f>>2]|0;m=p;return U|0}r[g>>2]=(r[g>>2]|0)+(r[T>>2]|0);if(r[b>>2]|0){if(!((r[x>>2]|0)==1002?1:(r[y>>2]|0)<(r[$>>2]|0))?(r[(r[h>>2]|0)+52>>2]|0)!=1002:0){r[N>>2]=r[(r[h>>2]|0)+68>>2];if((r[y>>2]|0)-(r[$>>2]|0)|0?(r[L>>2]=Gi(r[h>>2]|0,0,0,r[v>>2]|0,(r[y>>2]|0)-(r[$>>2]|0)|0,0,0,0,r[M>>2]|0)|0,(r[L>>2]|0)<0):0){r[(r[h>>2]|0)+68>>2]=r[N>>2];r[f>>2]=r[L>>2];U=r[f>>2]|0;m=p;return U|0}r[(r[h>>2]|0)+52>>2]=r[x>>2];r[(r[h>>2]|0)+48>>2]=r[I>>2];r[(r[h>>2]|0)+60>>2]=r[$>>2];r[(r[h>>2]|0)+44>>2]=r[P>>2];N=(r[v>>2]|0)+((W(r[(r[h>>2]|0)+8>>2]|0,(r[y>>2]|0)-(r[$>>2]|0)|0)|0)<<2)|0;r[L>>2]=Ki(r[h>>2]|0,r[g>>2]|0,a[D>>1]|0,N,r[$>>2]|0,1)|0;if((r[L>>2]|0)<0){r[f>>2]=r[L>>2];U=r[f>>2]|0;m=p;return U|0}else{Yi()|0;r[(r[h>>2]|0)+68>>2]=r[y>>2];r[f>>2]=r[y>>2];U=r[f>>2]|0;m=p;return U|0}}r[f>>2]=Gi(r[h>>2]|0,0,0,r[v>>2]|0,r[y>>2]|0,0,0,0,r[M>>2]|0)|0;U=r[f>>2]|0;m=p;return U|0}L=W(r[C>>2]|0,r[$>>2]|0)|0;if((L|0)>(r[y>>2]|0)){r[f>>2]=-2;U=r[f>>2]|0;m=p;return U|0}r[(r[h>>2]|0)+52>>2]=r[x>>2];r[(r[h>>2]|0)+48>>2]=r[I>>2];r[(r[h>>2]|0)+60>>2]=r[$>>2];r[(r[h>>2]|0)+44>>2]=r[P>>2];r[A>>2]=0;r[S>>2]=0;while(1){if((r[S>>2]|0)>=(r[C>>2]|0))break;P=(r[v>>2]|0)+((W(r[A>>2]|0,r[(r[h>>2]|0)+8>>2]|0)|0)<<2)|0;r[F>>2]=Ki(r[h>>2]|0,r[g>>2]|0,a[D+(r[S>>2]<<1)>>1]|0,P,(r[y>>2]|0)-(r[A>>2]|0)|0,0)|0;if((r[F>>2]|0)<0){H=31;break}r[g>>2]=(r[g>>2]|0)+(a[D+(r[S>>2]<<1)>>1]|0);r[A>>2]=(r[A>>2]|0)+(r[F>>2]|0);r[S>>2]=(r[S>>2]|0)+1}if((H|0)==31){r[f>>2]=r[F>>2];U=r[f>>2]|0;m=p;return U|0}r[(r[h>>2]|0)+68>>2]=r[A>>2];Yi()|0;if(r[M>>2]|0)Bi(r[v>>2]|0,r[A>>2]|0,r[(r[h>>2]|0)+8>>2]|0,(r[h>>2]|0)+72|0);else{c[(r[h>>2]|0)+72+4>>2]=0;c[(r[h>>2]|0)+72>>2]=0}r[f>>2]=r[A>>2];U=r[f>>2]|0;m=p;return U|0}function Ki(e,t,n,o,s,l){e=e|0;t=t|0;n=n|0;o=o|0;s=s|0;l=l|0;var d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,se=0,le=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ce=0,Te=0,Ee=0,$e=0,Ie=0,xe=0,Pe=0,De=0,Re=0;d=m;m=m+320|0;u=d+80|0;p=d+72|0;f=d+64|0;h=d+56|0;g=d+48|0;_=d+40|0;v=d+32|0;y=d+24|0;b=d+16|0;w=d+8|0;k=d;M=d+308|0;S=d+304|0;A=d+300|0;C=d+296|0;T=d+292|0;E=d+288|0;$=d+284|0;I=d+280|0;x=d+276|0;P=d+272|0;D=d+268|0;R=d+264|0;O=d+216|0;N=d+212|0;L=d+208|0;F=d+204|0;U=d+200|0;B=d+196|0;H=d+192|0;j=d+188|0;q=d+184|0;z=d+180|0;G=d+176|0;K=d+172|0;Y=d+168|0;X=d+164|0;J=d+160|0;Z=d+156|0;Q=d+152|0;ee=d+148|0;te=d+144|0;ne=d+140|0;ie=d+136|0;ae=d+132|0;re=d+128|0;se=d+124|0;le=d+120|0;de=d+116|0;ue=d+112|0;pe=d+108|0;fe=d+104|0;me=d+100|0;he=d+96|0;ge=d+312|0;_e=d+92|0;ve=d+88|0;ye=d+84|0;r[S>>2]=e;r[A>>2]=t;r[C>>2]=n;r[T>>2]=o;r[E>>2]=s;r[$>>2]=l;r[D>>2]=0;r[R>>2]=0;r[B>>2]=0;r[z>>2]=0;r[K>>2]=0;r[Y>>2]=0;r[X>>2]=0;r[ie>>2]=0;r[I>>2]=(r[S>>2]|0)+(r[(r[S>>2]|0)+4>>2]|0);r[x>>2]=(r[S>>2]|0)+(r[r[S>>2]>>2]|0);r[te>>2]=(r[(r[S>>2]|0)+12>>2]|0)/50|0;r[ee>>2]=r[te>>2]>>1;r[Q>>2]=r[ee>>2]>>1;r[Z>>2]=r[Q>>2]>>1;if((r[E>>2]|0)<(r[Z>>2]|0)){r[M>>2]=-2;be=r[M>>2]|0;m=d;return be|0}if((r[E>>2]|0)<(((r[(r[S>>2]|0)+12>>2]|0)/25|0)*3|0))we=r[E>>2]|0;else we=((r[(r[S>>2]|0)+12>>2]|0)/25|0)*3|0;r[E>>2]=we;if((r[C>>2]|0)<=1){r[A>>2]=0;if((r[E>>2]|0)<(r[(r[S>>2]|0)+60>>2]|0))ke=r[E>>2]|0;else ke=r[(r[S>>2]|0)+60>>2]|0;r[E>>2]=ke}do if(!(r[A>>2]|0)){r[j>>2]=r[E>>2];r[q>>2]=r[(r[S>>2]|0)+56>>2];if(!(r[q>>2]|0)){r[P>>2]=0;while(1){if((r[P>>2]|0)>=(W(r[j>>2]|0,r[(r[S>>2]|0)+8>>2]|0)|0))break;c[(r[T>>2]|0)+(r[P>>2]<<2)>>2]=0;r[P>>2]=(r[P>>2]|0)+1}r[M>>2]=r[j>>2];be=r[M>>2]|0;m=d;return be|0}if((r[j>>2]|0)>(r[te>>2]|0)){while(1){r[re>>2]=Ki(r[S>>2]|0,0,0,r[T>>2]|0,(r[j>>2]|0)<(r[te>>2]|0)?r[j>>2]|0:r[te>>2]|0,0)|0;Me=r[re>>2]|0;if((r[re>>2]|0)<0){Se=20;break}ke=W(Me,r[(r[S>>2]|0)+8>>2]|0)|0;r[T>>2]=(r[T>>2]|0)+(ke<<2);r[j>>2]=(r[j>>2]|0)-(r[re>>2]|0);if((r[j>>2]|0)<=0){Se=22;break}}if((Se|0)==20){r[M>>2]=Me;be=r[M>>2]|0;m=d;return be|0}else if((Se|0)==22){r[M>>2]=r[E>>2];be=r[M>>2]|0;m=d;return be|0}}if((r[j>>2]|0)<(r[te>>2]|0)){if((r[j>>2]|0)>(r[ee>>2]|0)){r[j>>2]=r[ee>>2];break}if(((r[q>>2]|0)!=1e3?(r[j>>2]|0)>(r[Q>>2]|0):0)?(r[j>>2]|0)<(r[ee>>2]|0):0)r[j>>2]=r[Q>>2]}}else{r[j>>2]=r[(r[S>>2]|0)+60>>2];r[q>>2]=r[(r[S>>2]|0)+52>>2];tn(O,r[A>>2]|0,r[C>>2]|0)}while(0);r[ae>>2]=0;r[F>>2]=1;r[U>>2]=1;do if(r[A>>2]|0?(r[(r[S>>2]|0)+56>>2]|0)>0:0){if(!(((r[q>>2]|0)==1002?(r[(r[S>>2]|0)+56>>2]|0)!=1002:0)?!(r[(r[S>>2]|0)+64>>2]|0):0)){if((r[q>>2]|0)==1002)break;if((r[(r[S>>2]|0)+56>>2]|0)!=1002)break}r[z>>2]=1;Se=W(r[Q>>2]|0,r[(r[S>>2]|0)+8>>2]|0)|0;if((r[q>>2]|0)==1002){r[U>>2]=Se;break}else{r[F>>2]=Se;break}}while(0);Se=r[U>>2]|0;r[se>>2]=oe()|0;U=m;m=m+((1*(Se<<2)|0)+15&-16)|0;if((r[z>>2]|0)!=0&(r[q>>2]|0)==1002){r[B>>2]=U;Ki(r[S>>2]|0,0,0,r[B>>2]|0,(r[Q>>2]|0)<(r[j>>2]|0)?r[Q>>2]|0:r[j>>2]|0,0)|0}e:do if((r[j>>2]|0)>(r[E>>2]|0)){r[M>>2]=-1;r[le>>2]=1}else{r[E>>2]=r[j>>2];if((r[q>>2]|0)==1002|(r[ae>>2]|0)!=0)Ae=1;else Ae=W((r[ee>>2]|0)>(r[E>>2]|0)?r[ee>>2]|0:r[E>>2]|0,r[(r[S>>2]|0)+8>>2]|0)|0;r[L>>2]=Ae;U=m;m=m+((1*(r[L>>2]<<1)|0)+15&-16)|0;t:do if((r[q>>2]|0)!=1002){r[pe>>2]=U;if((r[(r[S>>2]|0)+56>>2]|0)==1002)Ti(r[I>>2]|0)|0;if(10>(((r[j>>2]|0)*1e3|0)/(r[(r[S>>2]|0)+12>>2]|0)|0|0))Ce=10;else Ce=((r[j>>2]|0)*1e3|0)/(r[(r[S>>2]|0)+12>>2]|0)|0;r[(r[S>>2]|0)+16+16>>2]=Ce;if(r[A>>2]|0){r[(r[S>>2]|0)+16+4>>2]=r[(r[S>>2]|0)+44>>2];Se=r[S>>2]|0;if((r[q>>2]|0)==1e3){Me=r[S>>2]|0;if((r[Se+48>>2]|0)==1101){Te=8e3;Ee=Me}else{re=(r[Me+48>>2]|0)==1102;Te=re?12e3:16e3;Ee=re?r[S>>2]|0:r[S>>2]|0}}else{Te=16e3;Ee=Se}r[Ee+16+12>>2]=Te}r[de>>2]=(r[A>>2]|0)==0?1:r[$>>2]<<1;r[ue>>2]=0;n:while(1){r[fe>>2]=(r[ue>>2]|0)==0&1;r[D>>2]=Ei(r[I>>2]|0,(r[S>>2]|0)+16|0,r[de>>2]|0,r[fe>>2]|0,O,r[pe>>2]|0,N)|0;i:do if(r[D>>2]|0){if(!(r[de>>2]|0))break n;r[N>>2]=r[E>>2];r[P>>2]=0;while(1){if((r[P>>2]|0)>=(W(r[E>>2]|0,r[(r[S>>2]|0)+8>>2]|0)|0))break i;a[(r[pe>>2]|0)+(r[P>>2]<<1)>>1]=0;r[P>>2]=(r[P>>2]|0)+1}}while(0);Se=W(r[N>>2]|0,r[(r[S>>2]|0)+8>>2]|0)|0;r[pe>>2]=(r[pe>>2]|0)+(Se<<1);r[ue>>2]=(r[ue>>2]|0)+(r[N>>2]|0);if((r[ue>>2]|0)>=(r[E>>2]|0))break t}r[M>>2]=-3;r[le>>2]=1;break e}while(0);r[G>>2]=0;if((r[$>>2]|0)==0&(r[q>>2]|0)!=1002&(r[A>>2]|0)!=0?(Se=(Qi(O)|0)+17|0,(Se+(((r[(r[S>>2]|0)+52>>2]|0)==1001&1)*20|0)|0)<=(r[C>>2]<<3|0)):0){if((r[q>>2]|0)==1001)r[K>>2]=Ye(O,12)|0;else r[K>>2]=1;if(r[K>>2]|0){r[X>>2]=Ye(O,1)|0;if((r[q>>2]|0)==1001)$e=(qe(O,256)|0)+2|0;else{Se=r[C>>2]|0;$e=Se-((Qi(O)|0)+7>>3)|0}r[Y>>2]=$e;r[C>>2]=(r[C>>2]|0)-(r[Y>>2]|0);Se=r[C>>2]<<3;if((Se|0)<(Qi(O)|0)){r[C>>2]=0;r[Y>>2]=0;r[K>>2]=0}Se=O+4|0;r[Se>>2]=(r[Se>>2]|0)-(r[Y>>2]|0)}}if((r[q>>2]|0)!=1002)r[G>>2]=17;r[me>>2]=21;switch(r[(r[S>>2]|0)+48>>2]|0){case 1101:{r[me>>2]=13;break}case 1103:case 1102:{r[me>>2]=17;break}case 1104:{r[me>>2]=19;break}case 1105:{r[me>>2]=21;break}default:{}}Se=r[x>>2]|0;r[k>>2]=r[me>>2];Jt(Se,10012,k)|0;Se=r[x>>2]|0;r[w>>2]=r[(r[S>>2]|0)+44>>2];Jt(Se,10008,w)|0;if(r[K>>2]|0){r[z>>2]=0;r[F>>2]=1}Se=m;m=m+((1*(r[F>>2]<<2)|0)+15&-16)|0;if((r[z>>2]|0)!=0&(r[q>>2]|0)!=1002){r[B>>2]=Se;Ki(r[S>>2]|0,0,0,r[B>>2]|0,(r[Q>>2]|0)<(r[j>>2]|0)?r[Q>>2]|0:r[j>>2]|0,0)|0}if(r[K>>2]|0)Ie=W(r[Q>>2]|0,r[(r[S>>2]|0)+8>>2]|0)|0;else Ie=1;r[H>>2]=Ie;Se=m;m=m+((1*(r[H>>2]<<2)|0)+15&-16)|0;if((r[K>>2]|0)!=0&(r[X>>2]|0)!=0){re=r[x>>2]|0;r[b>>2]=0;Jt(re,10010,b)|0;Zt(r[x>>2]|0,(r[A>>2]|0)+(r[C>>2]|0)|0,r[Y>>2]|0,Se,r[Q>>2]|0,0,0)|0;re=r[x>>2]|0;r[y>>2]=ie+(((ie-ie|0)/4|0)<<2);Jt(re,4031,y)|0}re=r[x>>2]|0;r[v>>2]=r[G>>2];Jt(re,10010,v)|0;do if((r[q>>2]|0)==1e3){i[ge>>0]=i[25208]|0;i[ge+1>>0]=i[25209]|0;t:do if(!(r[ae>>2]|0)){r[P>>2]=0;while(1){if((r[P>>2]|0)>=(W(r[E>>2]|0,r[(r[S>>2]|0)+8>>2]|0)|0))break t;c[(r[T>>2]|0)+(r[P>>2]<<2)>>2]=0;r[P>>2]=(r[P>>2]|0)+1}}while(0);if((r[(r[S>>2]|0)+56>>2]|0)==1001){
if((r[K>>2]|0)!=0&(r[X>>2]|0)!=0?r[(r[S>>2]|0)+64>>2]|0:0)break;re=r[x>>2]|0;r[g>>2]=0;Jt(re,10010,g)|0;Zt(r[x>>2]|0,ge,2,r[T>>2]|0,r[Z>>2]|0,0,r[ae>>2]|0)|0}}else{r[he>>2]=(r[te>>2]|0)<(r[E>>2]|0)?r[te>>2]|0:r[E>>2]|0;do if((r[q>>2]|0)!=(r[(r[S>>2]|0)+56>>2]|0)){if((r[(r[S>>2]|0)+56>>2]|0)<=0)break;if(r[(r[S>>2]|0)+64>>2]|0)break;Jt(r[x>>2]|0,4028,_)|0}while(0);r[R>>2]=Zt(r[x>>2]|0,r[$>>2]|0?0:r[A>>2]|0,r[C>>2]|0,r[T>>2]|0,r[he>>2]|0,O,r[ae>>2]|0)|0}while(0);t:do if(!((r[q>>2]|0)==1002|(r[ae>>2]|0)!=0)){r[P>>2]=0;while(1){if((r[P>>2]|0)>=(W(r[E>>2]|0,r[(r[S>>2]|0)+8>>2]|0)|0))break t;c[(r[T>>2]|0)+(r[P>>2]<<2)>>2]=+c[(r[T>>2]|0)+(r[P>>2]<<2)>>2]+ +(a[U+(r[P>>2]<<1)>>1]|0)*30517578125e-15;r[P>>2]=(r[P>>2]|0)+1}}while(0);U=r[x>>2]|0;r[h>>2]=_e+(((_e-_e|0)/4|0)<<2);Jt(U,10015,h)|0;r[ne>>2]=r[(r[_e>>2]|0)+60>>2];if(!((r[K>>2]|0)==0|(r[X>>2]|0)!=0)){Jt(r[x>>2]|0,4028,f)|0;U=r[x>>2]|0;r[p>>2]=0;Jt(U,10010,p)|0;Zt(r[x>>2]|0,(r[A>>2]|0)+(r[C>>2]|0)|0,r[Y>>2]|0,Se,r[Q>>2]|0,0,0)|0;U=r[x>>2]|0;r[u>>2]=ie+(((ie-ie|0)/4|0)<<2);Jt(U,4031,u)|0;U=(r[T>>2]|0)+((W(r[(r[S>>2]|0)+8>>2]|0,(r[E>>2]|0)-(r[Z>>2]|0)|0)|0)<<2)|0;re=Se+((W(r[(r[S>>2]|0)+8>>2]|0,r[Z>>2]|0)|0)<<2)|0;Me=(r[T>>2]|0)+((W(r[(r[S>>2]|0)+8>>2]|0,(r[E>>2]|0)-(r[Z>>2]|0)|0)|0)<<2)|0;ea(U,re,Me,r[Z>>2]|0,r[(r[S>>2]|0)+8>>2]|0,r[ne>>2]|0,r[(r[S>>2]|0)+12>>2]|0)}if((r[K>>2]|0)!=0&(r[X>>2]|0)!=0){r[J>>2]=0;while(1){if((r[J>>2]|0)>=(r[(r[S>>2]|0)+8>>2]|0))break;r[P>>2]=0;while(1){if((r[P>>2]|0)>=(r[Z>>2]|0))break;Me=W(r[(r[S>>2]|0)+8>>2]|0,r[P>>2]|0)|0;re=W(r[(r[S>>2]|0)+8>>2]|0,r[P>>2]|0)|0;c[(r[T>>2]|0)+(re+(r[J>>2]|0)<<2)>>2]=+c[Se+(Me+(r[J>>2]|0)<<2)>>2];r[P>>2]=(r[P>>2]|0)+1}r[J>>2]=(r[J>>2]|0)+1}Me=Se+((W(r[(r[S>>2]|0)+8>>2]|0,r[Z>>2]|0)|0)<<2)|0;re=(r[T>>2]|0)+((W(r[(r[S>>2]|0)+8>>2]|0,r[Z>>2]|0)|0)<<2)|0;U=(r[T>>2]|0)+((W(r[(r[S>>2]|0)+8>>2]|0,r[Z>>2]|0)|0)<<2)|0;ea(Me,re,U,r[Z>>2]|0,r[(r[S>>2]|0)+8>>2]|0,r[ne>>2]|0,r[(r[S>>2]|0)+12>>2]|0)}do if(r[z>>2]|0){if((r[j>>2]|0)<(r[Q>>2]|0)){ea(r[B>>2]|0,r[T>>2]|0,r[T>>2]|0,r[Z>>2]|0,r[(r[S>>2]|0)+8>>2]|0,r[ne>>2]|0,r[(r[S>>2]|0)+12>>2]|0);break}r[P>>2]=0;while(1){U=(r[P>>2]|0)<(W(r[(r[S>>2]|0)+8>>2]|0,r[Z>>2]|0)|0);xe=r[B>>2]|0;if(!U)break;c[(r[T>>2]|0)+(r[P>>2]<<2)>>2]=+c[xe+(r[P>>2]<<2)>>2];r[P>>2]=(r[P>>2]|0)+1}U=xe+((W(r[(r[S>>2]|0)+8>>2]|0,r[Z>>2]|0)|0)<<2)|0;re=(r[T>>2]|0)+((W(r[(r[S>>2]|0)+8>>2]|0,r[Z>>2]|0)|0)<<2)|0;Me=(r[T>>2]|0)+((W(r[(r[S>>2]|0)+8>>2]|0,r[Z>>2]|0)|0)<<2)|0;ea(U,re,Me,r[Z>>2]|0,r[(r[S>>2]|0)+8>>2]|0,r[ne>>2]|0,r[(r[S>>2]|0)+12>>2]|0)}while(0);t:do if(r[(r[S>>2]|0)+40>>2]|0){c[ve>>2]=+V(+(+(r[(r[S>>2]|0)+40>>2]|0)*.0006488140788860619*.6931471805599453));r[P>>2]=0;while(1){if((r[P>>2]|0)>=(W(r[E>>2]|0,r[(r[S>>2]|0)+8>>2]|0)|0))break t;c[ye>>2]=+c[(r[T>>2]|0)+(r[P>>2]<<2)>>2]*+c[ve>>2];c[(r[T>>2]|0)+(r[P>>2]<<2)>>2]=+c[ye>>2];r[P>>2]=(r[P>>2]|0)+1}}while(0);if((r[C>>2]|0)<=1){Pe=r[S>>2]|0;De=0}else{Pe=r[S>>2]|0;De=r[O+28>>2]^r[ie>>2]}r[Pe+80>>2]=De;r[(r[S>>2]|0)+56>>2]=r[q>>2];if(r[K>>2]|0)Re=(r[X>>2]|0)!=0^1;else Re=0;r[(r[S>>2]|0)+64>>2]=Re&1;if((r[R>>2]|0)>=0)Yi()|0;r[M>>2]=(r[R>>2]|0)<0?r[R>>2]|0:r[j>>2]|0;r[le>>2]=1}while(0);ce(r[se>>2]|0);be=r[M>>2]|0;m=d;return be|0}function Yi(){return 0}function Xi(e){e=e|0;var t=0,n=0,i=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;do if(!((o[r[n>>2]>>0]|0)&128|0))if(((o[r[n>>2]>>0]|0)&96|0)==96){r[i>>2]=1001;break}else{r[i>>2]=1e3;break}else r[i>>2]=1002;while(0);m=t;return r[i>>2]|0}function Ji(e){e=e|0;var t=0,n=0,i=0,a=0,s=0;t=m;m=m+16|0;n=t+4|0;i=t;r[n>>2]=e;e=o[r[n>>2]>>0]|0;if((o[r[n>>2]>>0]|0)&128|0){a=1102+(e>>5&3)|0;r[i>>2]=a;r[i>>2]=(r[i>>2]|0)==1102?1101:a;s=r[i>>2]|0;m=t;return s|0}a=o[r[n>>2]>>0]|0;if((e&96|0)==96){r[i>>2]=a&16|0?1105:1104;s=r[i>>2]|0;m=t;return s|0}else{r[i>>2]=1101+(a>>5&3);s=r[i>>2]|0;m=t;return s|0}return 0}function Zi(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;m=t;return((o[r[n>>2]>>0]|0)&4|0?2:1)|0}function Qi(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;e=(r[(r[n>>2]|0)+20>>2]|0)-(32-(Y(r[(r[n>>2]|0)+28>>2]|0)|0))|0;m=t;return e|0}function ea(e,t,n,i,a,o,s){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;var l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;l=m;m=m+48|0;d=l+40|0;u=l+36|0;p=l+32|0;f=l+28|0;h=l+24|0;g=l+20|0;_=l+16|0;v=l+12|0;y=l+8|0;b=l+4|0;w=l;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=i;r[h>>2]=a;r[g>>2]=o;r[_>>2]=s;r[b>>2]=48e3/(r[_>>2]|0)|0;r[y>>2]=0;while(1){if((r[y>>2]|0)>=(r[h>>2]|0))break;r[v>>2]=0;while(1){if((r[v>>2]|0)>=(r[f>>2]|0))break;k=+c[(r[g>>2]|0)+((W(r[v>>2]|0,r[b>>2]|0)|0)<<2)>>2];c[w>>2]=k*+c[(r[g>>2]|0)+((W(r[v>>2]|0,r[b>>2]|0)|0)<<2)>>2];_=W(r[v>>2]|0,r[h>>2]|0)|0;s=W(r[v>>2]|0,r[h>>2]|0)|0;o=W(r[v>>2]|0,r[h>>2]|0)|0;c[(r[p>>2]|0)+(o+(r[y>>2]|0)<<2)>>2]=+c[w>>2]*+c[(r[u>>2]|0)+(_+(r[y>>2]|0)<<2)>>2]+(1-+c[w>>2])*+c[(r[d>>2]|0)+(s+(r[y>>2]|0)<<2)>>2];r[v>>2]=(r[v>>2]|0)+1}r[y>>2]=(r[y>>2]|0)+1}m=l;return}function ta(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;i=m;m=m+32|0;a=i+20|0;o=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[o>>2]=e;r[s>>2]=t;r[l>>2]=n;r[d>>2]=na(r[o>>2]|0,r[s>>2]|0)|0;s=r[d>>2]|0;if((r[d>>2]|0)<0){r[a>>2]=s;u=r[a>>2]|0;m=i;return u|0}r[c>>2]=W(s,Hi(r[o>>2]|0,r[l>>2]|0)|0)|0;if(((r[c>>2]|0)*25|0)>((r[l>>2]|0)*3|0)){r[a>>2]=-4;u=r[a>>2]|0;m=i;return u|0}else{r[a>>2]=r[c>>2];u=r[a>>2]|0;m=i;return u|0}return 0}function na(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,s=0,l=0;n=m;m=m+16|0;i=n+12|0;a=n+8|0;s=n+4|0;l=n;r[a>>2]=e;r[s>>2]=t;do if((r[s>>2]|0)>=1){r[l>>2]=(o[r[a>>2]>>0]|0)&3;if(!(r[l>>2]|0)){r[i>>2]=1;break}if((r[l>>2]|0)!=3){r[i>>2]=2;break}if((r[s>>2]|0)<2){r[i>>2]=-4;break}else{r[i>>2]=(o[(r[a>>2]|0)+1>>0]|0)&63;break}}else r[i>>2]=-1;while(0);m=n;return r[i>>2]|0}function ia(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0;i=m;m=m+112|0;a=i+8|0;o=i+108|0;s=i+104|0;l=i+100|0;c=i+96|0;d=i+80|0;u=i+72|0;p=i+68|0;f=i+64|0;h=i+60|0;g=i+56|0;_=i+52|0;v=i+48|0;y=i+44|0;b=i+40|0;w=i+36|0;k=i+32|0;M=i+28|0;S=i+24|0;A=i+20|0;C=i+16|0;T=i+12|0;r[s>>2]=e;r[l>>2]=t;r[c>>2]=0;r[u>>2]=(r[s>>2]|0)+(r[(r[s>>2]|0)+4>>2]|0);r[p>>2]=(r[s>>2]|0)+(r[r[s>>2]>>2]|0);r[d>>2]=n;e:do switch(r[l>>2]|0){case 4009:{n=(r[d>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[d>>2]=n+4;r[h>>2]=t;r[f>>2]=r[h>>2];if(r[f>>2]|0){r[r[f>>2]>>2]=r[(r[s>>2]|0)+48>>2];E=20}else E=21;break}case 4031:{t=(r[d>>2]|0)+(4-1)&~(4-1);n=r[t>>2]|0;r[d>>2]=t+4;r[_>>2]=n;r[g>>2]=r[_>>2];if(r[g>>2]|0){r[r[g>>2]>>2]=r[(r[s>>2]|0)+80>>2];E=20}else E=21;break}case 4028:{Na((r[s>>2]|0)+44|0,0,84-((r[s>>2]|0)+44-(r[s>>2]|0))|0)|0;Jt(r[p>>2]|0,4028,i)|0;Ti(r[u>>2]|0)|0;r[(r[s>>2]|0)+44>>2]=r[(r[s>>2]|0)+8>>2];r[(r[s>>2]|0)+60>>2]=(r[(r[s>>2]|0)+12>>2]|0)/400|0;E=20;break}case 4029:{n=(r[d>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[d>>2]=n+4;r[y>>2]=t;r[v>>2]=r[y>>2];if(r[v>>2]|0){r[r[v>>2]>>2]=r[(r[s>>2]|0)+12>>2];E=20}else E=21;break}case 4033:{t=(r[d>>2]|0)+(4-1)&~(4-1);n=r[t>>2]|0;r[d>>2]=t+4;r[w>>2]=n;r[b>>2]=r[w>>2];if(r[b>>2]|0)if((r[(r[s>>2]|0)+56>>2]|0)==1002){n=r[p>>2]|0;r[a>>2]=(r[b>>2]|0)+((((r[b>>2]|0)-(r[b>>2]|0)|0)/4|0)<<2);Jt(n,4033,a)|0;E=20;break e}else{r[r[b>>2]>>2]=r[(r[s>>2]|0)+16+20>>2];E=20;break e}else E=21;break}case 4045:{n=(r[d>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[d>>2]=n+4;r[M>>2]=t;r[k>>2]=r[M>>2];if(r[k>>2]|0){r[r[k>>2]>>2]=r[(r[s>>2]|0)+40>>2];E=20}else E=21;break}case 4034:{t=(r[d>>2]|0)+(4-1)&~(4-1);n=r[t>>2]|0;r[d>>2]=t+4;r[A>>2]=n;r[S>>2]=r[A>>2];if((r[S>>2]|0)<-32768|(r[S>>2]|0)>32767)E=21;else{r[(r[s>>2]|0)+40>>2]=r[S>>2];E=20}break}case 4039:{n=(r[d>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[d>>2]=n+4;r[T>>2]=t;r[C>>2]=r[T>>2];if(r[C>>2]|0){r[r[C>>2]>>2]=r[(r[s>>2]|0)+68>>2];E=20}else E=21;break}default:{r[c>>2]=-5;E=20}}while(0);if((E|0)==20){r[o>>2]=r[c>>2];$=r[o>>2]|0;m=i;return $|0}else if((E|0)==21){r[o>>2]=-1;$=r[o>>2]|0;m=i;return $|0}return 0}function aa(e){e=e|0;var t=0,n=0,i=0,a=0,s=0,l=0,c=0;t=m;m=m+16|0;n=t+12|0;i=t+8|0;a=t+4|0;s=t;r[i>>2]=e;r[s>>2]=(r[(r[i>>2]|0)+4>>2]|0)+(r[(r[i>>2]|0)+8>>2]|0);if((r[s>>2]|0)>255){r[n>>2]=0;l=r[n>>2]|0;m=t;return l|0}r[a>>2]=0;while(1){if((r[a>>2]|0)>=(r[r[i>>2]>>2]|0)){c=9;break}if((o[(r[i>>2]|0)+12+(r[a>>2]|0)>>0]|0|0)>=(r[s>>2]|0)?(o[(r[i>>2]|0)+12+(r[a>>2]|0)>>0]|0|0)!=255:0){c=7;break}r[a>>2]=(r[a>>2]|0)+1}if((c|0)==7){r[n>>2]=0;l=r[n>>2]|0;m=t;return l|0}else if((c|0)==9){r[n>>2]=1;l=r[n>>2]|0;m=t;return l|0}return 0}function ra(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;i=m;m=m+32|0;a=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=(r[c>>2]|0)<0?0:(r[c>>2]|0)+1|0;while(1){if((r[d>>2]|0)>=(r[r[s>>2]>>2]|0)){u=6;break}p=r[d>>2]|0;if((o[(r[s>>2]|0)+12+(r[d>>2]|0)>>0]|0|0)==(r[l>>2]<<1|0)){u=4;break}r[d>>2]=p+1}if((u|0)==4){r[a>>2]=p;f=r[a>>2]|0;m=i;return f|0}else if((u|0)==6){r[a>>2]=-1;f=r[a>>2]|0;m=i;return f|0}return 0}function oa(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;i=m;m=m+32|0;a=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=(r[c>>2]|0)<0?0:(r[c>>2]|0)+1|0;while(1){if((r[d>>2]|0)>=(r[r[s>>2]>>2]|0)){u=6;break}p=r[d>>2]|0;if((o[(r[s>>2]|0)+12+(r[d>>2]|0)>>0]|0|0)==((r[l>>2]<<1)+1|0)){u=4;break}r[d>>2]=p+1}if((u|0)==4){r[a>>2]=p;f=r[a>>2]|0;m=i;return f|0}else if((u|0)==6){r[a>>2]=-1;f=r[a>>2]|0;m=i;return f|0}return 0}function sa(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;i=m;m=m+32|0;a=i+16|0;s=i+12|0;l=i+8|0;c=i+4|0;d=i;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=(r[c>>2]|0)<0?0:(r[c>>2]|0)+1|0;while(1){if((r[d>>2]|0)>=(r[r[s>>2]>>2]|0)){u=6;break}p=r[d>>2]|0;if((o[(r[s>>2]|0)+12+(r[d>>2]|0)>>0]|0|0)==((r[l>>2]|0)+(r[(r[s>>2]|0)+8>>2]|0)|0)){u=4;break}r[d>>2]=p+1}if((u|0)==4){r[a>>2]=p;f=r[a>>2]|0;m=i;return f|0}else if((u|0)==6){r[a>>2]=-1;f=r[a>>2]|0;m=i;return f|0}return 0}function la(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0;n=m;m=m+32|0;i=n+16|0;a=n+12|0;o=n+8|0;s=n+4|0;l=n;r[a>>2]=e;r[o>>2]=t;if((r[a>>2]|0)>=1?!((r[o>>2]|0)<0?1:(r[o>>2]|0)>(r[a>>2]|0)):0){r[s>>2]=qi(2)|0;r[l>>2]=qi(1)|0;t=ca(268)|0;e=r[o>>2]|0;c=t+(W(e,ca(r[s>>2]|0)|0)|0)|0;s=(r[a>>2]|0)-(r[o>>2]|0)|0;r[i>>2]=c+(W(s,ca(r[l>>2]|0)|0)|0);d=r[i>>2]|0;m=n;return d|0}r[i>>2]=0;d=r[i>>2]|0;m=n;return d|0}function ca(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;m=t;return(r[n>>2]|0)+4-1&-4|0}function da(e,t,n,a,o,s){e=e|0;t=t|0;n=n|0;a=a|0;o=o|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0;l=m;m=m+48|0;c=l+44|0;d=l+40|0;u=l+36|0;p=l+32|0;f=l+28|0;h=l+24|0;g=l+20|0;_=l+16|0;v=l+12|0;y=l+8|0;b=l+4|0;w=l;r[d>>2]=e;r[u>>2]=t;r[p>>2]=n;r[f>>2]=a;r[h>>2]=o;r[g>>2]=s;if((!((r[p>>2]|0)>255|(r[p>>2]|0)<1)?(r[h>>2]|0)<=(r[f>>2]|0):0)?!(((r[f>>2]|0)<1?1:((r[h>>2]|0)+(r[f>>2]|0)|0)>255)|(r[h>>2]|0)<0):0){r[r[d>>2]>>2]=r[p>>2];r[(r[d>>2]|0)+4>>2]=r[f>>2];r[(r[d>>2]|0)+8>>2]=r[h>>2];r[y>>2]=0;while(1){if((r[y>>2]|0)>=(r[r[d>>2]>>2]|0))break;i[(r[d>>2]|0)+12+(r[y>>2]|0)>>0]=i[(r[g>>2]|0)+(r[y>>2]|0)>>0]|0;r[y>>2]=(r[y>>2]|0)+1}if(!(aa(r[d>>2]|0)|0)){r[c>>2]=-1;k=r[c>>2]|0;m=l;return k|0}g=r[d>>2]|0;r[w>>2]=g+(ca(268)|0);r[_>>2]=qi(2)|0;r[v>>2]=qi(1)|0;r[y>>2]=0;while(1){if((r[y>>2]|0)>=(r[(r[d>>2]|0)+8>>2]|0))break;r[b>>2]=Wi(r[w>>2]|0,r[u>>2]|0,2)|0;if(r[b>>2]|0){M=13;break}g=ca(r[_>>2]|0)|0;r[w>>2]=(r[w>>2]|0)+g;r[y>>2]=(r[y>>2]|0)+1}if((M|0)==13){r[c>>2]=r[b>>2];k=r[c>>2]|0;m=l;return k|0}while(1){if((r[y>>2]|0)>=(r[(r[d>>2]|0)+4>>2]|0)){M=19;break}r[b>>2]=Wi(r[w>>2]|0,r[u>>2]|0,1)|0;if(r[b>>2]|0){M=17;break}_=ca(r[v>>2]|0)|0;r[w>>2]=(r[w>>2]|0)+_;r[y>>2]=(r[y>>2]|0)+1}if((M|0)==17){r[c>>2]=r[b>>2];k=r[c>>2]|0;m=l;return k|0}else if((M|0)==19){r[c>>2]=0;k=r[c>>2]|0;m=l;return k|0}}r[c>>2]=-1;k=r[c>>2]|0;m=l;return k|0}function ua(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;s=m;m=m+48|0;l=s+32|0;c=s+28|0;d=s+24|0;u=s+20|0;p=s+16|0;f=s+12|0;h=s+8|0;g=s+4|0;_=s;r[c>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;if((!((r[d>>2]|0)>255|(r[d>>2]|0)<1)?(r[p>>2]|0)<=(r[u>>2]|0):0)?!(((r[u>>2]|0)<1?1:((r[p>>2]|0)+(r[u>>2]|0)|0)>255)|(r[p>>2]|0)<0):0){r[_>>2]=pa(la(r[u>>2]|0,r[p>>2]|0)|0)|0;if(!(r[_>>2]|0)){if(r[h>>2]|0)r[r[h>>2]>>2]=-7;r[l>>2]=0;v=r[l>>2]|0;m=s;return v|0}r[g>>2]=da(r[_>>2]|0,r[c>>2]|0,r[d>>2]|0,r[u>>2]|0,r[p>>2]|0,r[f>>2]|0)|0;if(r[h>>2]|0)r[r[h>>2]>>2]=r[g>>2];if(r[g>>2]|0){fa(r[_>>2]|0);r[_>>2]=0}r[l>>2]=r[_>>2];v=r[l>>2]|0;m=s;return v|0}if(r[h>>2]|0)r[r[h>>2]>>2]=-1;r[l>>2]=0;v=r[l>>2]|0;m=s;return v|0}function pa(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;e=xa(r[n>>2]|0)|0;m=t;return e|0}function fa(e){e=e|0;var t=0,n=0;t=m;m=m+16|0;n=t;r[n>>2]=e;Pa(r[n>>2]|0);m=t;return}function ma(e,t,n,i,a,s,l,c){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;s=s|0;l=l|0;c=c|0;var d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0;d=m;m=m+112|0;u=d;p=d+104|0;f=d+100|0;h=d+96|0;g=d+92|0;_=d+88|0;v=d+84|0;y=d+80|0;b=d+76|0;w=d+72|0;k=d+68|0;M=d+64|0;S=d+60|0;A=d+56|0;C=d+52|0;T=d+48|0;E=d+44|0;$=d+40|0;I=d+36|0;x=d+32|0;P=d+28|0;D=d+24|0;R=d+20|0;O=d+16|0;N=d+12|0;L=d+8|0;F=d+4|0;r[f>>2]=e;r[h>>2]=t;r[g>>2]=n;r[_>>2]=i;r[v>>2]=a;r[y>>2]=s;r[b>>2]=l;r[w>>2]=c;r[E>>2]=0;c=r[f>>2]|0;r[u>>2]=k+(((k-k|0)/4|0)<<2);ha(c,4029,u)|0;if((r[y>>2]|0)<(((r[k>>2]|0)/25|0)*3|0))U=r[y>>2]|0;else U=((r[k>>2]|0)/25|0)*3|0;r[y>>2]=U;U=r[y>>2]<<1;r[$>>2]=oe()|0;u=m;m=m+((1*(U<<2)|0)+15&-16)|0;U=r[f>>2]|0;r[T>>2]=U+(ca(268)|0);r[M>>2]=qi(2)|0;r[S>>2]=qi(1)|0;if(!(r[g>>2]|0))r[E>>2]=1;if((r[g>>2]|0)<0){r[p>>2]=-1;r[I>>2]=1;B=r[$>>2]|0;ce(B|0);H=r[p>>2]|0;m=d;return H|0}if((r[E>>2]|0)==0?(r[g>>2]|0)<((r[(r[f>>2]|0)+4>>2]<<1)-1|0):0){r[p>>2]=-4;r[I>>2]=1;B=r[$>>2]|0;ce(B|0);H=r[p>>2]|0;m=d;return H|0}if(!(r[E>>2]|0)){r[x>>2]=ga(r[h>>2]|0,r[g>>2]|0,r[(r[f>>2]|0)+4>>2]|0,r[k>>2]|0)|0;k=r[x>>2]|0;if((r[x>>2]|0)<0){r[p>>2]=k;r[I>>2]=1;B=r[$>>2]|0;ce(B|0);H=r[p>>2]|0;m=d;return H|0}if((k|0)>(r[y>>2]|0)){r[p>>2]=-2;r[I>>2]=1;B=r[$>>2]|0;ce(B|0);H=r[p>>2]|0;m=d;return H|0}}r[A>>2]=0;while(1){if((r[A>>2]|0)>=(r[(r[f>>2]|0)+4>>2]|0)){j=33;break}r[P>>2]=r[T>>2];k=ca((r[A>>2]|0)<(r[(r[f>>2]|0)+8>>2]|0)?r[M>>2]|0:r[S>>2]|0)|0;r[T>>2]=(r[T>>2]|0)+k;if((r[E>>2]|0)==0&(r[g>>2]|0)<=0){j=19;break}r[D>>2]=0;r[R>>2]=Gi(r[P>>2]|0,r[h>>2]|0,r[g>>2]|0,u,r[y>>2]|0,r[b>>2]|0,(r[A>>2]|0)!=((r[(r[f>>2]|0)+4>>2]|0)-1|0)&1,D,r[w>>2]|0)|0;r[h>>2]=(r[h>>2]|0)+(r[D>>2]|0);r[g>>2]=(r[g>>2]|0)-(r[D>>2]|0);V=r[R>>2]|0;if((r[R>>2]|0)<=0){j=21;break}r[y>>2]=V;e:do if((r[A>>2]|0)<(r[(r[f>>2]|0)+8>>2]|0)){r[N>>2]=-1;while(1){k=ra(r[f>>2]|0,r[A>>2]|0,r[N>>2]|0)|0;r[O>>2]=k;if((k|0)==-1)break;qa[r[v>>2]&1](r[_>>2]|0,r[r[f>>2]>>2]|0,r[O>>2]|0,u,2,r[y>>2]|0);r[N>>2]=r[O>>2]}r[N>>2]=-1;while(1){k=oa(r[f>>2]|0,r[A>>2]|0,r[N>>2]|0)|0;r[O>>2]=k;if((k|0)==-1)break e;qa[r[v>>2]&1](r[_>>2]|0,r[r[f>>2]>>2]|0,r[O>>2]|0,u+4|0,2,r[y>>2]|0);r[N>>2]=r[O>>2]}}else{r[F>>2]=-1;while(1){k=sa(r[f>>2]|0,r[A>>2]|0,r[F>>2]|0)|0;r[L>>2]=k;if((k|0)==-1)break e;qa[r[v>>2]&1](r[_>>2]|0,r[r[f>>2]>>2]|0,r[L>>2]|0,u,1,r[y>>2]|0);r[F>>2]=r[L>>2]}}while(0);r[A>>2]=(r[A>>2]|0)+1}if((j|0)==19){r[p>>2]=-3;r[I>>2]=1;B=r[$>>2]|0;ce(B|0);H=r[p>>2]|0;m=d;return H|0}else if((j|0)==21){r[p>>2]=V;r[I>>2]=1;B=r[$>>2]|0;ce(B|0);H=r[p>>2]|0;m=d;return H|0}else if((j|0)==33){r[C>>2]=0;while(1){if((r[C>>2]|0)>=(r[r[f>>2]>>2]|0))break;if((o[(r[f>>2]|0)+12+(r[C>>2]|0)>>0]|0|0)==255)qa[r[v>>2]&1](r[_>>2]|0,r[r[f>>2]>>2]|0,r[C>>2]|0,0,0,r[y>>2]|0);r[C>>2]=(r[C>>2]|0)+1}r[p>>2]=r[y>>2];r[I>>2]=1;B=r[$>>2]|0;ce(B|0);H=r[p>>2]|0;m=d;return H|0}return 0}function ha(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0;i=m;m=m+160|0;a=i+24|0;o=i+16|0;s=i+8|0;l=i;c=i+144|0;d=i+140|0;u=i+136|0;p=i+120|0;f=i+116|0;h=i+112|0;g=i+108|0;_=i+104|0;v=i+100|0;y=i+96|0;b=i+92|0;w=i+88|0;k=i+84|0;M=i+80|0;S=i+76|0;A=i+72|0;C=i+68|0;T=i+64|0;E=i+60|0;$=i+56|0;I=i+52|0;x=i+48|0;P=i+44|0;D=i+40|0;R=i+36|0;O=i+32|0;N=i+28|0;r[d>>2]=e;r[u>>2]=t;r[_>>2]=0;r[p>>2]=n;r[f>>2]=qi(2)|0;r[h>>2]=qi(1)|0;n=r[d>>2]|0;r[g>>2]=n+(ca(268)|0);e:do switch(r[u>>2]|0){case 4039:case 4045:case 4029:case 4009:{n=(r[p>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[p>>2]=n+4;r[b>>2]=t;r[y>>2]=r[b>>2];r[v>>2]=r[g>>2];t=r[v>>2]|0;n=r[u>>2]|0;r[l>>2]=r[y>>2];r[_>>2]=ia(t,n,l)|0;L=37;break}case 4031:{n=(r[p>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[p>>2]=n+4;r[M>>2]=t;r[k>>2]=r[M>>2];if(r[k>>2]|0){r[r[k>>2]>>2]=0;r[w>>2]=0;while(1){if((r[w>>2]|0)>=(r[(r[d>>2]|0)+4>>2]|0)){L=37;break e}r[A>>2]=r[g>>2];if((r[w>>2]|0)<(r[(r[d>>2]|0)+8>>2]|0)){t=ca(r[f>>2]|0)|0;r[g>>2]=(r[g>>2]|0)+t}else{t=ca(r[h>>2]|0)|0;r[g>>2]=(r[g>>2]|0)+t}t=r[A>>2]|0;n=r[u>>2]|0;r[s>>2]=S;r[_>>2]=ia(t,n,s)|0;if(r[_>>2]|0){L=37;break e}n=r[k>>2]|0;r[n>>2]=r[n>>2]^r[S>>2];r[w>>2]=(r[w>>2]|0)+1}}else L=38;break}case 4028:{r[C>>2]=0;while(1){if((r[C>>2]|0)>=(r[(r[d>>2]|0)+4>>2]|0)){L=37;break e}r[T>>2]=r[g>>2];if((r[C>>2]|0)<(r[(r[d>>2]|0)+8>>2]|0)){n=ca(r[f>>2]|0)|0;r[g>>2]=(r[g>>2]|0)+n}else{n=ca(r[h>>2]|0)|0;r[g>>2]=(r[g>>2]|0)+n}r[_>>2]=ia(r[T>>2]|0,4028,o)|0;if(r[_>>2]|0){L=37;break e}r[C>>2]=(r[C>>2]|0)+1}break}case 5122:{n=(r[p>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[p>>2]=n+4;r[x>>2]=t;r[$>>2]=r[x>>2];if(!((r[$>>2]|0)>=0?(r[$>>2]|0)<(r[(r[d>>2]|0)+4>>2]|0):0))r[_>>2]=-1;t=(r[p>>2]|0)+(4-1)&~(4-1);n=r[t>>2]|0;r[p>>2]=t+4;r[P>>2]=n;r[I>>2]=r[P>>2];if(r[I>>2]|0){r[E>>2]=0;while(1){if((r[E>>2]|0)>=(r[$>>2]|0))break;if((r[E>>2]|0)<(r[(r[d>>2]|0)+8>>2]|0)){n=ca(r[f>>2]|0)|0;r[g>>2]=(r[g>>2]|0)+n}else{n=ca(r[h>>2]|0)|0;r[g>>2]=(r[g>>2]|0)+n}r[E>>2]=(r[E>>2]|0)+1}r[r[I>>2]>>2]=r[g>>2];L=37}else L=38;break}case 4034:{n=(r[p>>2]|0)+(4-1)&~(4-1);t=r[n>>2]|0;r[p>>2]=n+4;r[O>>2]=t;r[R>>2]=r[O>>2];r[D>>2]=0;while(1){if((r[D>>2]|0)>=(r[(r[d>>2]|0)+4>>2]|0)){L=37;break e}r[N>>2]=r[g>>2];if((r[D>>2]|0)<(r[(r[d>>2]|0)+8>>2]|0)){t=ca(r[f>>2]|0)|0;r[g>>2]=(r[g>>2]|0)+t}else{t=ca(r[h>>2]|0)|0;r[g>>2]=(r[g>>2]|0)+t}t=r[N>>2]|0;n=r[u>>2]|0;r[a>>2]=r[R>>2];r[_>>2]=ia(t,n,a)|0;if(r[_>>2]|0){L=37;break e}r[D>>2]=(r[D>>2]|0)+1}break}default:{r[_>>2]=-5;L=37}}while(0);if((L|0)==37){r[c>>2]=r[_>>2];F=r[c>>2]|0;m=i;return F|0}else if((L|0)==38){r[c>>2]=-1;F=r[c>>2]|0;m=i;return F|0}return 0}function ga(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;a=m;m=m+144|0;o=a+36|0;s=a+32|0;l=a+28|0;c=a+24|0;d=a+20|0;u=a+16|0;p=a+12|0;f=a+136|0;h=a+40|0;g=a+8|0;_=a+4|0;v=a;r[s>>2]=e;r[l>>2]=t;r[c>>2]=n;r[d>>2]=i;r[g>>2]=0;r[u>>2]=0;while(1){if((r[u>>2]|0)>=(r[c>>2]|0)){y=11;break}if((r[l>>2]|0)<=0){y=4;break}r[p>>2]=ji(r[s>>2]|0,r[l>>2]|0,(r[u>>2]|0)!=((r[c>>2]|0)-1|0)&1,f,0,h,0,_)|0;if((r[p>>2]|0)<0){y=6;break}r[v>>2]=ta(r[s>>2]|0,r[_>>2]|0,r[d>>2]|0)|0;if(r[u>>2]|0?(r[g>>2]|0)!=(r[v>>2]|0):0){y=9;break}r[g>>2]=r[v>>2];r[s>>2]=(r[s>>2]|0)+(r[_>>2]|0);r[l>>2]=(r[l>>2]|0)-(r[_>>2]|0);r[u>>2]=(r[u>>2]|0)+1}if((y|0)==4){r[o>>2]=-4;b=r[o>>2]|0;m=a;return b|0}else if((y|0)==6){r[o>>2]=r[p>>2];b=r[o>>2]|0;m=a;return b|0}else if((y|0)==9){r[o>>2]=-4;b=r[o>>2]|0;m=a;return b|0}else if((y|0)==11){r[o>>2]=r[g>>2];b=r[o>>2]|0;m=a;return b|0}return 0}function _a(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,c=0,d=0,u=0,p=0,f=0;s=m;m=m+32|0;l=s+20|0;c=s+16|0;d=s+12|0;u=s+8|0;p=s+4|0;f=s;r[l>>2]=e;r[c>>2]=t;r[d>>2]=n;r[u>>2]=i;r[p>>2]=a;r[f>>2]=o;o=ma(r[l>>2]|0,r[c>>2]|0,r[d>>2]|0,r[u>>2]|0,1,r[p>>2]|0,r[f>>2]|0,0)|0;m=s;return o|0}function va(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;s=m;m=m+32|0;l=s+28|0;d=s+24|0;u=s+20|0;p=s+16|0;f=s+12|0;h=s+8|0;g=s+4|0;_=s;r[l>>2]=e;r[d>>2]=t;r[u>>2]=n;r[p>>2]=i;r[f>>2]=a;r[h>>2]=o;r[g>>2]=r[l>>2];l=(r[p>>2]|0)!=0;r[_>>2]=0;if(l){while(1){if((r[_>>2]|0)>=(r[h>>2]|0))break;v=+c[(r[p>>2]|0)+((W(r[_>>2]|0,r[f>>2]|0)|0)<<2)>>2];l=W(r[_>>2]|0,r[d>>2]|0)|0;c[(r[g>>2]|0)+(l+(r[u>>2]|0)<<2)>>2]=v;r[_>>2]=(r[_>>2]|0)+1}m=s;return}else{while(1){if((r[_>>2]|0)>=(r[h>>2]|0))break;f=W(r[_>>2]|0,r[d>>2]|0)|0;c[(r[g>>2]|0)+(f+(r[u>>2]|0)<<2)>>2]=0;r[_>>2]=(r[_>>2]|0)+1}m=s;return}}function ya(){return}function ba(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=m;m=m+48|0;i=n+32|0;a=n;Ma(a,e,t);switch(r[6305]|0){case 0:{t=Aa(a,25228,25232,25236,25240,25244)|0;r[6306]=t;if(!t){o=0;m=n;return o|0}r[6305]=1;s=+c[6310];if(s!=0){r[i>>2]=~~s;ha(t,4034,i)|0}r[6305]=1;o=1;m=n;return o|0}case 1:{r[6305]=2;o=1;m=n;return o|0}default:{ne(r[6308]|0,48e3);o=1;m=n;return o|0}}return 0}function wa(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;n=xa((r[6308]|0)*23040|0)|0;i=_a(r[6306]|0,e,t,n,5760,0)|0;if((i|0)<0){a=0;Pa(n);return a|0}t=r[6309]|0;if((i|0)>(t|0)){e=i-t|0;o=r[6308]|0;s=xa(W(e<<2,o)|0)|0;l=xa(o<<2)|0;if((o|0)>0){c=0;do{d=s+((W(c,e)|0)<<2)|0;r[l+(c<<2)>>2]=d;u=t;do{r[d+(u-t<<2)>>2]=r[n+((W(u,o)|0)+c<<2)>>2];u=u+1|0}while((u|0)!=(i|0));c=c+1|0}while((c|0)<(o|0))}se(l|0,o|0,e|0);Pa(l);Pa(s);p=r[6309]|0;f=t}else{p=t;f=i}r[6309]=p-f;a=1;Pa(n);return a|0}function ka(){return}function Ma(e,t,n){e=e|0;t=t|0;n=n|0;r[e>>2]=t;r[e+4>>2]=n;n=e+8|0;r[n>>2]=0;r[n+4>>2]=0;r[n+8>>2]=0;r[n+12>>2]=0;r[n+16>>2]=0;r[n+20>>2]=0;return}function Sa(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;a=m;m=m+16|0;s=a;i[s+8>>0]=0;if((t|0)<19){l=0;m=a;return l|0}c=e;d=c;u=c+4|0;c=o[u>>0]|o[u+1>>0]<<8|o[u+2>>0]<<16|o[u+3>>0]<<24;u=s;r[u>>2]=o[d>>0]|o[d+1>>0]<<8|o[d+2>>0]<<16|o[d+3>>0]<<24;r[u+4>>2]=c;if(Ia(s,25210,8)|0){l=0;m=a;return l|0}s=t+-1|0;c=o[e+8>>0]|0;r[n>>2]=c;if(c&240|0){l=0;m=a;return l|0}u=i[e+9>>0]|0;d=n+4|0;r[d>>2]=u&255;if(!(u<<24>>24!=0&(t+-2|0)>9)){l=0;m=a;return l|0}r[n+8>>2]=(o[e+11>>0]|0)<<8|(o[e+10>>0]|0);p=n+12|0;if((t+-4|0)<12){l=0;m=a;return l|0}f=o[e+12>>0]|0;r[p>>2]=f;h=(o[e+13>>0]|0)<<8|f;r[p>>2]=h;f=(o[e+14>>0]|0)<<16|h;r[p>>2]=f;r[p>>2]=(o[e+15>>0]|0)<<24|f;r[n+16>>2]=((o[e+17>>0]|0)<<8|(o[e+16>>0]|0))<<16>>16;f=i[e+18>>0]|0;r[n+20>>2]=f&255;do if(!(f<<24>>24))if((u&255)>2){l=0;m=a;return l|0}else{r[n+24>>2]=1;r[n+28>>2]=u<<24>>24==2&1;i[n+32>>0]=0;i[n+33>>0]=1;g=c;_=19;break}else{if((s|0)<=18){l=0;m=a;return l|0}p=i[e+19>>0]|0;if(!(p<<24>>24)){l=0;m=a;return l|0}h=p&255;v=n+24|0;r[v>>2]=h;if((s|0)<=19){l=0;m=a;return l|0}y=i[e+20>>0]|0;b=y&255;if((y&255)>(p&255)|(b+h|0)>>>0>255){l=0;m=a;return l|0}h=n+28|0;r[h>>2]=b;b=0;p=21;while(1){if((p|0)>=(t|0)){l=0;w=19;break}y=i[e+p>>0]|0;i[n+32+b>>0]=y;p=p+1|0;b=b+1|0;if(!(y<<24>>24==-1?1:(y&255|0)<=((r[h>>2]|0)+(r[v>>2]|0)|0))){l=0;w=19;break}if((b|0)>=(r[d>>2]|0)){w=17;break}}if((w|0)==17){g=r[n>>2]|0;_=p;break}else if((w|0)==19){m=a;return l|0}}while(0);l=((_|0)==(t|0)|g>>>0>1)&1;m=a;return l|0}function Aa(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0;s=m;m=m+304|0;l=s;d=s+296|0;u=s+8|0;if(!(Sa(r[e>>2]|0,r[e+4>>2]|0,u)|0)){p=0;m=s;return p|0}r[t>>2]=r[u+20>>2];t=r[u+4>>2]|0;r[n>>2]=t;r[i>>2]=r[u+8>>2];i=u+24|0;n=ua(48e3,t,r[i>>2]|0,r[u+28>>2]|0,u+32|0,d)|0;if((n|0)==0|(r[d>>2]|0)!=0){p=0;m=s;return p|0}r[o>>2]=r[i>>2];i=u+16|0;u=r[i>>2]|0;e:do if(u|0){r[l>>2]=u;o=ha(n,4034,l)|0;r[d>>2]=o;switch(o|0){case 0:{break e;break}case-5:{c[a>>2]=+O(10,+(+(r[i>>2]|0)/5120));break e;break}default:{p=0;m=s;return p|0}}}while(0);p=n;m=s;return p|0}function Ca(){return 25248}function Ta(){return(Ea()|0)+64|0}function Ea(){return $a()|0}function $a(){return 17444}function Ia(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,r=0,o=0,s=0,l=0,c=0;e:do if(!n)a=0;else{r=e;o=n;s=t;while(1){l=i[r>>0]|0;c=i[s>>0]|0;if(l<<24>>24!=c<<24>>24)break;o=o+-1|0;if(!o){a=0;break e}else{r=r+1|0;s=s+1|0}}a=(l&255)-(c&255)|0}while(0);return a|0}function xa(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ce=0,Te=0;t=m;m=m+16|0;n=t;do if(e>>>0<245){i=e>>>0<11?16:e+11&-8;a=i>>>3;o=r[6328]|0;s=o>>>a;if(s&3|0){l=(s&1^1)+a|0;c=25352+(l<<1<<2)|0;d=c+8|0;u=r[d>>2]|0;p=u+8|0;f=r[p>>2]|0;do if((c|0)!=(f|0)){if(f>>>0<(r[6332]|0)>>>0)ae();h=f+12|0;if((r[h>>2]|0)==(u|0)){r[h>>2]=c;r[d>>2]=f;break}else ae()}else r[6328]=o&~(1<<l);while(0);f=l<<3;r[u+4>>2]=f|3;d=u+f+4|0;r[d>>2]=r[d>>2]|1;g=p;m=t;return g|0}d=r[6330]|0;if(i>>>0>d>>>0){if(s|0){f=2<<a;c=s<<a&(f|0-f);f=(c&0-c)+-1|0;c=f>>>12&16;h=f>>>c;f=h>>>5&8;_=h>>>f;h=_>>>2&4;v=_>>>h;_=v>>>1&2;y=v>>>_;v=y>>>1&1;b=(f|c|h|_|v)+(y>>>v)|0;v=25352+(b<<1<<2)|0;y=v+8|0;_=r[y>>2]|0;h=_+8|0;c=r[h>>2]|0;do if((v|0)!=(c|0)){if(c>>>0<(r[6332]|0)>>>0)ae();f=c+12|0;if((r[f>>2]|0)==(_|0)){r[f>>2]=v;r[y>>2]=c;w=o;break}else ae()}else{f=o&~(1<<b);r[6328]=f;w=f}while(0);c=(b<<3)-i|0;r[_+4>>2]=i|3;y=_+i|0;r[y+4>>2]=c|1;r[y+c>>2]=c;if(d|0){v=r[6333]|0;a=d>>>3;s=25352+(a<<1<<2)|0;p=1<<a;if(w&p){a=s+8|0;u=r[a>>2]|0;if(u>>>0<(r[6332]|0)>>>0)ae();else{k=a;M=u}}else{r[6328]=w|p;k=s+8|0;M=s}r[k>>2]=v;r[M+12>>2]=v;r[v+8>>2]=M;r[v+12>>2]=s}r[6330]=c;r[6333]=y;g=h;m=t;return g|0}y=r[6329]|0;if(y){c=(y&0-y)+-1|0;s=c>>>12&16;v=c>>>s;c=v>>>5&8;p=v>>>c;v=p>>>2&4;u=p>>>v;p=u>>>1&2;a=u>>>p;u=a>>>1&1;l=r[25616+((c|s|v|p|u)+(a>>>u)<<2)>>2]|0;u=(r[l+4>>2]&-8)-i|0;a=r[l+16+(((r[l+16>>2]|0)==0&1)<<2)>>2]|0;if(!a){S=u;A=l}else{p=a;a=u;u=l;while(1){l=(r[p+4>>2]&-8)-i|0;v=l>>>0<a>>>0;s=v?l:a;l=v?p:u;p=r[p+16+(((r[p+16>>2]|0)==0&1)<<2)>>2]|0;if(!p){S=s;A=l;break}else{a=s;u=l}}}u=r[6332]|0;if(A>>>0<u>>>0)ae();a=A+i|0;if(A>>>0>=a>>>0)ae();p=r[A+24>>2]|0;h=r[A+12>>2]|0;do if((h|0)==(A|0)){_=A+20|0;b=r[_>>2]|0;if(!b){l=A+16|0;s=r[l>>2]|0;if(!s){C=0;break}else{T=s;E=l}}else{T=b;E=_}while(1){_=T+20|0;b=r[_>>2]|0;if(b|0){T=b;E=_;continue}_=T+16|0;b=r[_>>2]|0;if(!b)break;else{T=b;E=_}}if(E>>>0<u>>>0)ae();else{r[E>>2]=0;C=T;break}}else{_=r[A+8>>2]|0;if(_>>>0<u>>>0)ae();b=_+12|0;if((r[b>>2]|0)!=(A|0))ae();l=h+8|0;if((r[l>>2]|0)==(A|0)){r[b>>2]=h;r[l>>2]=_;C=h;break}else ae()}while(0);e:do if(p|0){h=r[A+28>>2]|0;u=25616+(h<<2)|0;do if((A|0)==(r[u>>2]|0)){r[u>>2]=C;if(!C){r[6329]=y&~(1<<h);break e}}else if(p>>>0>=(r[6332]|0)>>>0){r[p+16+(((r[p+16>>2]|0)!=(A|0)&1)<<2)>>2]=C;if(!C)break e;else break}else ae();while(0);h=r[6332]|0;if(C>>>0<h>>>0)ae();r[C+24>>2]=p;u=r[A+16>>2]|0;do if(u|0)if(u>>>0<h>>>0)ae();else{r[C+16>>2]=u;r[u+24>>2]=C;break}while(0);u=r[A+20>>2]|0;if(u|0)if(u>>>0<(r[6332]|0)>>>0)ae();else{r[C+20>>2]=u;r[u+24>>2]=C;break}}while(0);if(S>>>0<16){p=S+i|0;r[A+4>>2]=p|3;y=A+p+4|0;r[y>>2]=r[y>>2]|1}else{r[A+4>>2]=i|3;r[a+4>>2]=S|1;r[a+S>>2]=S;if(d|0){y=r[6333]|0;p=d>>>3;u=25352+(p<<1<<2)|0;h=1<<p;if(o&h){p=u+8|0;_=r[p>>2]|0;if(_>>>0<(r[6332]|0)>>>0)ae();else{$=p;I=_}}else{r[6328]=o|h;$=u+8|0;I=u}r[$>>2]=y;r[I+12>>2]=y;r[y+8>>2]=I;r[y+12>>2]=u}r[6330]=S;r[6333]=a}g=A+8|0;m=t;return g|0}else x=i}else x=i}else if(e>>>0<=4294967231){u=e+11|0;y=u&-8;h=r[6329]|0;if(h){_=0-y|0;p=u>>>8;if(p)if(y>>>0>16777215)P=31;else{u=(p+1048320|0)>>>16&8;l=p<<u;p=(l+520192|0)>>>16&4;b=l<<p;l=(b+245760|0)>>>16&2;s=14-(p|u|l)+(b<<l>>>15)|0;P=y>>>(s+7|0)&1|s<<1}else P=0;s=r[25616+(P<<2)>>2]|0;e:do if(!s){D=_;R=0;O=0;N=81}else{l=_;b=0;u=y<<((P|0)==31?0:25-(P>>>1)|0);p=s;v=0;while(1){c=(r[p+4>>2]&-8)-y|0;if(c>>>0<l>>>0)if(!c){L=0;F=p;U=p;N=85;break e}else{B=c;H=p}else{B=l;H=v}c=r[p+20>>2]|0;p=r[p+16+(u>>>31<<2)>>2]|0;f=(c|0)==0|(c|0)==(p|0)?b:c;c=(p|0)==0;if(c){D=B;R=f;O=H;N=81;break}else{l=B;b=f;u=u<<((c^1)&1);v=H}}}while(0);if((N|0)==81){if((R|0)==0&(O|0)==0){s=2<<P;_=h&(s|0-s);if(!_){x=y;break}s=(_&0-_)+-1|0;_=s>>>12&16;i=s>>>_;s=i>>>5&8;a=i>>>s;i=a>>>2&4;o=a>>>i;a=o>>>1&2;d=o>>>a;o=d>>>1&1;j=r[25616+((s|_|i|a|o)+(d>>>o)<<2)>>2]|0;V=0}else{j=R;V=O}if(!j){q=D;z=V}else{L=D;F=j;U=V;N=85}}if((N|0)==85)while(1){N=0;o=(r[F+4>>2]&-8)-y|0;d=o>>>0<L>>>0;a=d?o:L;o=d?F:U;F=r[F+16+(((r[F+16>>2]|0)==0&1)<<2)>>2]|0;if(!F){q=a;z=o;break}else{L=a;U=o;N=85}}if((z|0)!=0?q>>>0<((r[6330]|0)-y|0)>>>0:0){o=r[6332]|0;if(z>>>0<o>>>0)ae();a=z+y|0;if(z>>>0>=a>>>0)ae();d=r[z+24>>2]|0;i=r[z+12>>2]|0;do if((i|0)==(z|0)){_=z+20|0;s=r[_>>2]|0;if(!s){v=z+16|0;u=r[v>>2]|0;if(!u){W=0;break}else{G=u;K=v}}else{G=s;K=_}while(1){_=G+20|0;s=r[_>>2]|0;if(s|0){G=s;K=_;continue}_=G+16|0;s=r[_>>2]|0;if(!s)break;else{G=s;K=_}}if(K>>>0<o>>>0)ae();else{r[K>>2]=0;W=G;break}}else{_=r[z+8>>2]|0;if(_>>>0<o>>>0)ae();s=_+12|0;if((r[s>>2]|0)!=(z|0))ae();v=i+8|0;if((r[v>>2]|0)==(z|0)){r[s>>2]=i;r[v>>2]=_;W=i;break}else ae()}while(0);e:do if(d){i=r[z+28>>2]|0;o=25616+(i<<2)|0;do if((z|0)==(r[o>>2]|0)){r[o>>2]=W;if(!W){_=h&~(1<<i);r[6329]=_;Y=_;break e}}else if(d>>>0>=(r[6332]|0)>>>0){r[d+16+(((r[d+16>>2]|0)!=(z|0)&1)<<2)>>2]=W;if(!W){Y=h;break e}else break}else ae();while(0);i=r[6332]|0;if(W>>>0<i>>>0)ae();r[W+24>>2]=d;o=r[z+16>>2]|0;do if(o|0)if(o>>>0<i>>>0)ae();else{r[W+16>>2]=o;r[o+24>>2]=W;break}while(0);o=r[z+20>>2]|0;if(o)if(o>>>0<(r[6332]|0)>>>0)ae();else{r[W+20>>2]=o;r[o+24>>2]=W;Y=h;break}else Y=h}else Y=h;while(0);do if(q>>>0>=16){r[z+4>>2]=y|3;r[a+4>>2]=q|1;r[a+q>>2]=q;h=q>>>3;if(q>>>0<256){d=25352+(h<<1<<2)|0;o=r[6328]|0;i=1<<h;if(o&i){h=d+8|0;_=r[h>>2]|0;if(_>>>0<(r[6332]|0)>>>0)ae();else{X=h;J=_}}else{r[6328]=o|i;X=d+8|0;J=d}r[X>>2]=a;r[J+12>>2]=a;r[a+8>>2]=J;r[a+12>>2]=d;break}d=q>>>8;if(d)if(q>>>0>16777215)Z=31;else{i=(d+1048320|0)>>>16&8;o=d<<i;d=(o+520192|0)>>>16&4;_=o<<d;o=(_+245760|0)>>>16&2;h=14-(d|i|o)+(_<<o>>>15)|0;Z=q>>>(h+7|0)&1|h<<1}else Z=0;h=25616+(Z<<2)|0;r[a+28>>2]=Z;o=a+16|0;r[o+4>>2]=0;r[o>>2]=0;o=1<<Z;if(!(Y&o)){r[6329]=Y|o;r[h>>2]=a;r[a+24>>2]=h;r[a+12>>2]=a;r[a+8>>2]=a;break}o=q<<((Z|0)==31?0:25-(Z>>>1)|0);_=r[h>>2]|0;while(1){if((r[_+4>>2]&-8|0)==(q|0)){N=139;break}Q=_+16+(o>>>31<<2)|0;h=r[Q>>2]|0;if(!h){N=136;break}else{o=o<<1;_=h}}if((N|0)==136)if(Q>>>0<(r[6332]|0)>>>0)ae();else{r[Q>>2]=a;r[a+24>>2]=_;r[a+12>>2]=a;r[a+8>>2]=a;break}else if((N|0)==139){o=_+8|0;h=r[o>>2]|0;i=r[6332]|0;if(h>>>0>=i>>>0&_>>>0>=i>>>0){r[h+12>>2]=a;r[o>>2]=a;r[a+8>>2]=h;r[a+12>>2]=_;r[a+24>>2]=0;break}else ae()}}else{h=q+y|0;r[z+4>>2]=h|3;o=z+h+4|0;r[o>>2]=r[o>>2]|1}while(0);g=z+8|0;m=t;return g|0}else x=y}else x=y}else x=-1;while(0);z=r[6330]|0;if(z>>>0>=x>>>0){q=z-x|0;Q=r[6333]|0;if(q>>>0>15){Z=Q+x|0;r[6333]=Z;r[6330]=q;r[Z+4>>2]=q|1;r[Z+q>>2]=q;r[Q+4>>2]=x|3}else{r[6330]=0;r[6333]=0;r[Q+4>>2]=z|3;q=Q+z+4|0;r[q>>2]=r[q>>2]|1}g=Q+8|0;m=t;return g|0}Q=r[6331]|0;if(Q>>>0>x>>>0){q=Q-x|0;r[6331]=q;z=r[6334]|0;Z=z+x|0;r[6334]=Z;r[Z+4>>2]=q|1;r[z+4>>2]=x|3;g=z+8|0;m=t;return g|0}if(!(r[6446]|0)){r[6448]=4096;r[6447]=4096;r[6449]=-1;r[6450]=-1;r[6451]=0;r[6439]=0;z=n&-16^1431655768;r[n>>2]=z;r[6446]=z;ee=4096}else ee=r[6448]|0;z=x+48|0;n=x+47|0;q=ee+n|0;Z=0-ee|0;ee=q&Z;if(ee>>>0<=x>>>0){g=0;m=t;return g|0}Y=r[6438]|0;if(Y|0?(J=r[6436]|0,X=J+ee|0,X>>>0<=J>>>0|X>>>0>Y>>>0):0){g=0;m=t;return g|0}e:do if(!(r[6439]&4)){Y=r[6334]|0;t:do if(Y){X=25760;while(1){J=r[X>>2]|0;if(J>>>0<=Y>>>0?(te=X+4|0,(J+(r[te>>2]|0)|0)>>>0>Y>>>0):0)break;J=r[X+8>>2]|0;if(!J){N=163;break t}else X=J}_=q-Q&Z;if(_>>>0<2147483647){J=Ha(_|0)|0;if((J|0)==((r[X>>2]|0)+(r[te>>2]|0)|0))if((J|0)==(-1|0))ne=_;else{ie=J;re=_;N=180;break e}else{oe=J;se=_;N=171}}else ne=0}else N=163;while(0);do if((N|0)==163){Y=Ha(0)|0;if((Y|0)!=(-1|0)?(y=Y,_=r[6447]|0,J=_+-1|0,W=((J&y|0)==0?0:(J+y&0-_)-y|0)+ee|0,y=r[6436]|0,_=W+y|0,W>>>0>x>>>0&W>>>0<2147483647):0){J=r[6438]|0;if(J|0?_>>>0<=y>>>0|_>>>0>J>>>0:0){ne=0;break}J=Ha(W|0)|0;if((J|0)==(Y|0)){ie=Y;re=W;N=180;break e}else{oe=J;se=W;N=171}}else ne=0}while(0);do if((N|0)==171){W=0-se|0;if(!(z>>>0>se>>>0&(se>>>0<2147483647&(oe|0)!=(-1|0))))if((oe|0)==(-1|0)){ne=0;break}else{ie=oe;re=se;N=180;break e}J=r[6448]|0;Y=n-se+J&0-J;if(Y>>>0>=2147483647){ie=oe;re=se;N=180;break e}if((Ha(Y|0)|0)==(-1|0)){Ha(W|0)|0;ne=0;break}else{ie=oe;re=Y+se|0;N=180;break e}}while(0);r[6439]=r[6439]|4;le=ne;N=178}else{le=0;N=178}while(0);if(((N|0)==178?ee>>>0<2147483647:0)?(ne=Ha(ee|0)|0,ee=Ha(0)|0,se=ee-ne|0,oe=se>>>0>(x+40|0)>>>0,!((ne|0)==(-1|0)|oe^1|ne>>>0<ee>>>0&((ne|0)!=(-1|0)&(ee|0)!=(-1|0))^1)):0){ie=ne;re=oe?se:le;N=180}if((N|0)==180){le=(r[6436]|0)+re|0;r[6436]=le;if(le>>>0>(r[6437]|0)>>>0)r[6437]=le;le=r[6334]|0;do if(le){se=25760;while(1){ce=r[se>>2]|0;de=se+4|0;ue=r[de>>2]|0;if((ie|0)==(ce+ue|0)){N=190;break}oe=r[se+8>>2]|0;if(!oe)break;else se=oe}if(((N|0)==190?(r[se+12>>2]&8|0)==0:0)?le>>>0<ie>>>0&le>>>0>=ce>>>0:0){
r[de>>2]=ue+re;oe=le+8|0;ne=(oe&7|0)==0?0:0-oe&7;oe=le+ne|0;ee=(r[6331]|0)+(re-ne)|0;r[6334]=oe;r[6331]=ee;r[oe+4>>2]=ee|1;r[oe+ee+4>>2]=40;r[6335]=r[6450];break}ee=r[6332]|0;if(ie>>>0<ee>>>0){r[6332]=ie;pe=ie}else pe=ee;ee=ie+re|0;oe=25760;while(1){if((r[oe>>2]|0)==(ee|0)){N=198;break}ne=r[oe+8>>2]|0;if(!ne)break;else oe=ne}if((N|0)==198?(r[oe+12>>2]&8|0)==0:0){r[oe>>2]=ie;se=oe+4|0;r[se>>2]=(r[se>>2]|0)+re;se=ie+8|0;ne=ie+((se&7|0)==0?0:0-se&7)|0;se=ee+8|0;n=ee+((se&7|0)==0?0:0-se&7)|0;se=ne+x|0;z=n-ne-x|0;r[ne+4>>2]=x|3;do if((n|0)!=(le|0)){if((n|0)==(r[6333]|0)){te=(r[6330]|0)+z|0;r[6330]=te;r[6333]=se;r[se+4>>2]=te|1;r[se+te>>2]=te;break}te=r[n+4>>2]|0;if((te&3|0)==1){Z=te&-8;Q=te>>>3;e:do if(te>>>0>=256){q=r[n+24>>2]|0;Y=r[n+12>>2]|0;do if((Y|0)==(n|0)){W=n+16|0;J=W+4|0;_=r[J>>2]|0;if(!_){y=r[W>>2]|0;if(!y){fe=0;break}else{me=y;he=W}}else{me=_;he=J}while(1){J=me+20|0;_=r[J>>2]|0;if(_|0){me=_;he=J;continue}J=me+16|0;_=r[J>>2]|0;if(!_)break;else{me=_;he=J}}if(he>>>0<pe>>>0)ae();else{r[he>>2]=0;fe=me;break}}else{J=r[n+8>>2]|0;if(J>>>0<pe>>>0)ae();_=J+12|0;if((r[_>>2]|0)!=(n|0))ae();W=Y+8|0;if((r[W>>2]|0)==(n|0)){r[_>>2]=Y;r[W>>2]=J;fe=Y;break}else ae()}while(0);if(!q)break;Y=r[n+28>>2]|0;J=25616+(Y<<2)|0;do if((n|0)!=(r[J>>2]|0))if(q>>>0>=(r[6332]|0)>>>0){r[q+16+(((r[q+16>>2]|0)!=(n|0)&1)<<2)>>2]=fe;if(!fe)break e;else break}else ae();else{r[J>>2]=fe;if(fe|0)break;r[6329]=r[6329]&~(1<<Y);break e}while(0);Y=r[6332]|0;if(fe>>>0<Y>>>0)ae();r[fe+24>>2]=q;J=n+16|0;W=r[J>>2]|0;do if(W|0)if(W>>>0<Y>>>0)ae();else{r[fe+16>>2]=W;r[W+24>>2]=fe;break}while(0);W=r[J+4>>2]|0;if(!W)break;if(W>>>0<(r[6332]|0)>>>0)ae();else{r[fe+20>>2]=W;r[W+24>>2]=fe;break}}else{W=r[n+8>>2]|0;Y=r[n+12>>2]|0;q=25352+(Q<<1<<2)|0;do if((W|0)!=(q|0)){if(W>>>0<pe>>>0)ae();if((r[W+12>>2]|0)==(n|0))break;ae()}while(0);if((Y|0)==(W|0)){r[6328]=r[6328]&~(1<<Q);break}do if((Y|0)==(q|0))ge=Y+8|0;else{if(Y>>>0<pe>>>0)ae();J=Y+8|0;if((r[J>>2]|0)==(n|0)){ge=J;break}ae()}while(0);r[W+12>>2]=Y;r[ge>>2]=W}while(0);_e=n+Z|0;ve=Z+z|0}else{_e=n;ve=z}Q=_e+4|0;r[Q>>2]=r[Q>>2]&-2;r[se+4>>2]=ve|1;r[se+ve>>2]=ve;Q=ve>>>3;if(ve>>>0<256){te=25352+(Q<<1<<2)|0;X=r[6328]|0;q=1<<Q;do if(!(X&q)){r[6328]=X|q;ye=te+8|0;be=te}else{Q=te+8|0;J=r[Q>>2]|0;if(J>>>0>=(r[6332]|0)>>>0){ye=Q;be=J;break}ae()}while(0);r[ye>>2]=se;r[be+12>>2]=se;r[se+8>>2]=be;r[se+12>>2]=te;break}q=ve>>>8;do if(!q)we=0;else{if(ve>>>0>16777215){we=31;break}X=(q+1048320|0)>>>16&8;Z=q<<X;J=(Z+520192|0)>>>16&4;Q=Z<<J;Z=(Q+245760|0)>>>16&2;_=14-(J|X|Z)+(Q<<Z>>>15)|0;we=ve>>>(_+7|0)&1|_<<1}while(0);q=25616+(we<<2)|0;r[se+28>>2]=we;te=se+16|0;r[te+4>>2]=0;r[te>>2]=0;te=r[6329]|0;_=1<<we;if(!(te&_)){r[6329]=te|_;r[q>>2]=se;r[se+24>>2]=q;r[se+12>>2]=se;r[se+8>>2]=se;break}_=ve<<((we|0)==31?0:25-(we>>>1)|0);te=r[q>>2]|0;while(1){if((r[te+4>>2]&-8|0)==(ve|0)){N=265;break}ke=te+16+(_>>>31<<2)|0;q=r[ke>>2]|0;if(!q){N=262;break}else{_=_<<1;te=q}}if((N|0)==262)if(ke>>>0<(r[6332]|0)>>>0)ae();else{r[ke>>2]=se;r[se+24>>2]=te;r[se+12>>2]=se;r[se+8>>2]=se;break}else if((N|0)==265){_=te+8|0;q=r[_>>2]|0;Z=r[6332]|0;if(q>>>0>=Z>>>0&te>>>0>=Z>>>0){r[q+12>>2]=se;r[_>>2]=se;r[se+8>>2]=q;r[se+12>>2]=te;r[se+24>>2]=0;break}else ae()}}else{q=(r[6331]|0)+z|0;r[6331]=q;r[6334]=se;r[se+4>>2]=q|1}while(0);g=ne+8|0;m=t;return g|0}se=25760;while(1){z=r[se>>2]|0;if(z>>>0<=le>>>0?(Me=z+(r[se+4>>2]|0)|0,Me>>>0>le>>>0):0)break;se=r[se+8>>2]|0}se=Me+-47|0;ne=se+8|0;z=se+((ne&7|0)==0?0:0-ne&7)|0;ne=le+16|0;se=z>>>0<ne>>>0?le:z;z=se+8|0;n=ie+8|0;ee=(n&7|0)==0?0:0-n&7;n=ie+ee|0;oe=re+-40-ee|0;r[6334]=n;r[6331]=oe;r[n+4>>2]=oe|1;r[n+oe+4>>2]=40;r[6335]=r[6450];oe=se+4|0;r[oe>>2]=27;r[z>>2]=r[6440];r[z+4>>2]=r[6441];r[z+8>>2]=r[6442];r[z+12>>2]=r[6443];r[6440]=ie;r[6441]=re;r[6443]=0;r[6442]=z;z=se+24|0;do{n=z;z=z+4|0;r[z>>2]=7}while((n+8|0)>>>0<Me>>>0);if((se|0)!=(le|0)){z=se-le|0;r[oe>>2]=r[oe>>2]&-2;r[le+4>>2]=z|1;r[se>>2]=z;n=z>>>3;if(z>>>0<256){ee=25352+(n<<1<<2)|0;q=r[6328]|0;_=1<<n;if(q&_){n=ee+8|0;Z=r[n>>2]|0;if(Z>>>0<(r[6332]|0)>>>0)ae();else{Se=n;Ae=Z}}else{r[6328]=q|_;Se=ee+8|0;Ae=ee}r[Se>>2]=le;r[Ae+12>>2]=le;r[le+8>>2]=Ae;r[le+12>>2]=ee;break}ee=z>>>8;if(ee)if(z>>>0>16777215)Ce=31;else{_=(ee+1048320|0)>>>16&8;q=ee<<_;ee=(q+520192|0)>>>16&4;Z=q<<ee;q=(Z+245760|0)>>>16&2;n=14-(ee|_|q)+(Z<<q>>>15)|0;Ce=z>>>(n+7|0)&1|n<<1}else Ce=0;n=25616+(Ce<<2)|0;r[le+28>>2]=Ce;r[le+20>>2]=0;r[ne>>2]=0;q=r[6329]|0;Z=1<<Ce;if(!(q&Z)){r[6329]=q|Z;r[n>>2]=le;r[le+24>>2]=n;r[le+12>>2]=le;r[le+8>>2]=le;break}Z=z<<((Ce|0)==31?0:25-(Ce>>>1)|0);q=r[n>>2]|0;while(1){if((r[q+4>>2]&-8|0)==(z|0)){N=292;break}Te=q+16+(Z>>>31<<2)|0;n=r[Te>>2]|0;if(!n){N=289;break}else{Z=Z<<1;q=n}}if((N|0)==289)if(Te>>>0<(r[6332]|0)>>>0)ae();else{r[Te>>2]=le;r[le+24>>2]=q;r[le+12>>2]=le;r[le+8>>2]=le;break}else if((N|0)==292){Z=q+8|0;z=r[Z>>2]|0;ne=r[6332]|0;if(z>>>0>=ne>>>0&q>>>0>=ne>>>0){r[z+12>>2]=le;r[Z>>2]=le;r[le+8>>2]=z;r[le+12>>2]=q;r[le+24>>2]=0;break}else ae()}}}else{z=r[6332]|0;if((z|0)==0|ie>>>0<z>>>0)r[6332]=ie;r[6440]=ie;r[6441]=re;r[6443]=0;r[6337]=r[6446];r[6336]=-1;z=0;do{Z=25352+(z<<1<<2)|0;r[Z+12>>2]=Z;r[Z+8>>2]=Z;z=z+1|0}while((z|0)!=32);z=ie+8|0;q=(z&7|0)==0?0:0-z&7;z=ie+q|0;Z=re+-40-q|0;r[6334]=z;r[6331]=Z;r[z+4>>2]=Z|1;r[z+Z+4>>2]=40;r[6335]=r[6450]}while(0);re=r[6331]|0;if(re>>>0>x>>>0){ie=re-x|0;r[6331]=ie;re=r[6334]|0;le=re+x|0;r[6334]=le;r[le+4>>2]=ie|1;r[re+4>>2]=x|3;g=re+8|0;m=t;return g|0}}r[(Ta()|0)>>2]=12;g=0;m=t;return g|0}function Pa(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0;if(!e)return;t=e+-8|0;n=r[6332]|0;if(t>>>0<n>>>0)ae();i=r[e+-4>>2]|0;e=i&3;if((e|0)==1)ae();a=i&-8;o=t+a|0;e:do if(!(i&1)){s=r[t>>2]|0;if(!e)return;l=t+(0-s)|0;c=s+a|0;if(l>>>0<n>>>0)ae();if((l|0)==(r[6333]|0)){d=o+4|0;u=r[d>>2]|0;if((u&3|0)!=3){p=l;f=l;m=c;break}r[6330]=c;r[d>>2]=u&-2;r[l+4>>2]=c|1;r[l+c>>2]=c;return}u=s>>>3;if(s>>>0<256){s=r[l+8>>2]|0;d=r[l+12>>2]|0;h=25352+(u<<1<<2)|0;if((s|0)!=(h|0)){if(s>>>0<n>>>0)ae();if((r[s+12>>2]|0)!=(l|0))ae()}if((d|0)==(s|0)){r[6328]=r[6328]&~(1<<u);p=l;f=l;m=c;break}if((d|0)!=(h|0)){if(d>>>0<n>>>0)ae();h=d+8|0;if((r[h>>2]|0)==(l|0))g=h;else ae()}else g=d+8|0;r[s+12>>2]=d;r[g>>2]=s;p=l;f=l;m=c;break}s=r[l+24>>2]|0;d=r[l+12>>2]|0;do if((d|0)==(l|0)){h=l+16|0;u=h+4|0;_=r[u>>2]|0;if(!_){v=r[h>>2]|0;if(!v){y=0;break}else{b=v;w=h}}else{b=_;w=u}while(1){u=b+20|0;_=r[u>>2]|0;if(_|0){b=_;w=u;continue}u=b+16|0;_=r[u>>2]|0;if(!_)break;else{b=_;w=u}}if(w>>>0<n>>>0)ae();else{r[w>>2]=0;y=b;break}}else{u=r[l+8>>2]|0;if(u>>>0<n>>>0)ae();_=u+12|0;if((r[_>>2]|0)!=(l|0))ae();h=d+8|0;if((r[h>>2]|0)==(l|0)){r[_>>2]=d;r[h>>2]=u;y=d;break}else ae()}while(0);if(s){d=r[l+28>>2]|0;u=25616+(d<<2)|0;do if((l|0)==(r[u>>2]|0)){r[u>>2]=y;if(!y){r[6329]=r[6329]&~(1<<d);p=l;f=l;m=c;break e}}else if(s>>>0>=(r[6332]|0)>>>0){r[s+16+(((r[s+16>>2]|0)!=(l|0)&1)<<2)>>2]=y;if(!y){p=l;f=l;m=c;break e}else break}else ae();while(0);d=r[6332]|0;if(y>>>0<d>>>0)ae();r[y+24>>2]=s;u=l+16|0;h=r[u>>2]|0;do if(h|0)if(h>>>0<d>>>0)ae();else{r[y+16>>2]=h;r[h+24>>2]=y;break}while(0);h=r[u+4>>2]|0;if(h)if(h>>>0<(r[6332]|0)>>>0)ae();else{r[y+20>>2]=h;r[h+24>>2]=y;p=l;f=l;m=c;break}else{p=l;f=l;m=c}}else{p=l;f=l;m=c}}else{p=t;f=t;m=a}while(0);if(p>>>0>=o>>>0)ae();a=o+4|0;t=r[a>>2]|0;if(!(t&1))ae();if(!(t&2)){y=r[6333]|0;if((o|0)==(r[6334]|0)){n=(r[6331]|0)+m|0;r[6331]=n;r[6334]=f;r[f+4>>2]=n|1;if((f|0)!=(y|0))return;r[6333]=0;r[6330]=0;return}if((o|0)==(y|0)){y=(r[6330]|0)+m|0;r[6330]=y;r[6333]=p;r[f+4>>2]=y|1;r[p+y>>2]=y;return}y=(t&-8)+m|0;n=t>>>3;e:do if(t>>>0>=256){b=r[o+24>>2]|0;w=r[o+12>>2]|0;do if((w|0)==(o|0)){g=o+16|0;e=g+4|0;i=r[e>>2]|0;if(!i){h=r[g>>2]|0;if(!h){k=0;break}else{M=h;S=g}}else{M=i;S=e}while(1){e=M+20|0;i=r[e>>2]|0;if(i|0){M=i;S=e;continue}e=M+16|0;i=r[e>>2]|0;if(!i)break;else{M=i;S=e}}if(S>>>0<(r[6332]|0)>>>0)ae();else{r[S>>2]=0;k=M;break}}else{e=r[o+8>>2]|0;if(e>>>0<(r[6332]|0)>>>0)ae();i=e+12|0;if((r[i>>2]|0)!=(o|0))ae();g=w+8|0;if((r[g>>2]|0)==(o|0)){r[i>>2]=w;r[g>>2]=e;k=w;break}else ae()}while(0);if(b|0){w=r[o+28>>2]|0;c=25616+(w<<2)|0;do if((o|0)==(r[c>>2]|0)){r[c>>2]=k;if(!k){r[6329]=r[6329]&~(1<<w);break e}}else if(b>>>0>=(r[6332]|0)>>>0){r[b+16+(((r[b+16>>2]|0)!=(o|0)&1)<<2)>>2]=k;if(!k)break e;else break}else ae();while(0);w=r[6332]|0;if(k>>>0<w>>>0)ae();r[k+24>>2]=b;c=o+16|0;l=r[c>>2]|0;do if(l|0)if(l>>>0<w>>>0)ae();else{r[k+16>>2]=l;r[l+24>>2]=k;break}while(0);l=r[c+4>>2]|0;if(l|0)if(l>>>0<(r[6332]|0)>>>0)ae();else{r[k+20>>2]=l;r[l+24>>2]=k;break}}}else{l=r[o+8>>2]|0;w=r[o+12>>2]|0;b=25352+(n<<1<<2)|0;if((l|0)!=(b|0)){if(l>>>0<(r[6332]|0)>>>0)ae();if((r[l+12>>2]|0)!=(o|0))ae()}if((w|0)==(l|0)){r[6328]=r[6328]&~(1<<n);break}if((w|0)!=(b|0)){if(w>>>0<(r[6332]|0)>>>0)ae();b=w+8|0;if((r[b>>2]|0)==(o|0))A=b;else ae()}else A=w+8|0;r[l+12>>2]=w;r[A>>2]=l}while(0);r[f+4>>2]=y|1;r[p+y>>2]=y;if((f|0)==(r[6333]|0)){r[6330]=y;return}else C=y}else{r[a>>2]=t&-2;r[f+4>>2]=m|1;r[p+m>>2]=m;C=m}m=C>>>3;if(C>>>0<256){p=25352+(m<<1<<2)|0;t=r[6328]|0;a=1<<m;if(t&a){m=p+8|0;y=r[m>>2]|0;if(y>>>0<(r[6332]|0)>>>0)ae();else{T=m;E=y}}else{r[6328]=t|a;T=p+8|0;E=p}r[T>>2]=f;r[E+12>>2]=f;r[f+8>>2]=E;r[f+12>>2]=p;return}p=C>>>8;if(p)if(C>>>0>16777215)$=31;else{E=(p+1048320|0)>>>16&8;T=p<<E;p=(T+520192|0)>>>16&4;a=T<<p;T=(a+245760|0)>>>16&2;t=14-(p|E|T)+(a<<T>>>15)|0;$=C>>>(t+7|0)&1|t<<1}else $=0;t=25616+($<<2)|0;r[f+28>>2]=$;r[f+20>>2]=0;r[f+16>>2]=0;T=r[6329]|0;a=1<<$;do if(T&a){E=C<<(($|0)==31?0:25-($>>>1)|0);p=r[t>>2]|0;while(1){if((r[p+4>>2]&-8|0)==(C|0)){I=124;break}x=p+16+(E>>>31<<2)|0;y=r[x>>2]|0;if(!y){I=121;break}else{E=E<<1;p=y}}if((I|0)==121)if(x>>>0<(r[6332]|0)>>>0)ae();else{r[x>>2]=f;r[f+24>>2]=p;r[f+12>>2]=f;r[f+8>>2]=f;break}else if((I|0)==124){E=p+8|0;c=r[E>>2]|0;y=r[6332]|0;if(c>>>0>=y>>>0&p>>>0>=y>>>0){r[c+12>>2]=f;r[E>>2]=f;r[f+8>>2]=c;r[f+12>>2]=p;r[f+24>>2]=0;break}else ae()}}else{r[6329]=T|a;r[t>>2]=f;r[f+24>>2]=t;r[f+12>>2]=f;r[f+8>>2]=f}while(0);f=(r[6336]|0)+-1|0;r[6336]=f;if(!f)P=25768;else return;while(1){f=r[P>>2]|0;if(!f)break;else P=f+8|0}r[6336]=-1;return}function Da(){}function Ra(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){x=t>>n;return e>>>n|(t&(1<<n)-1)<<32-n}x=(t|0)<0?-1:0;return t>>n-32|0}function Oa(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0;a=e+n>>>0;return(x=t+i+(a>>>0<e>>>0|0)>>>0,a|0)|0}function Na(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0;a=e+n|0;t=t&255;if((n|0)>=67){while(e&3){i[e>>0]=t;e=e+1|0}o=a&-4|0;s=o-64|0;l=t|t<<8|t<<16|t<<24;while((e|0)<=(s|0)){r[e>>2]=l;r[e+4>>2]=l;r[e+8>>2]=l;r[e+12>>2]=l;r[e+16>>2]=l;r[e+20>>2]=l;r[e+24>>2]=l;r[e+28>>2]=l;r[e+32>>2]=l;r[e+36>>2]=l;r[e+40>>2]=l;r[e+44>>2]=l;r[e+48>>2]=l;r[e+52>>2]=l;r[e+56>>2]=l;r[e+60>>2]=l;e=e+64|0}while((e|0)<(o|0)){r[e>>2]=l;e=e+4|0}}while((e|0)<(a|0)){i[e>>0]=t;e=e+1|0}return a-n|0}function La(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0;if((n|0)>=8192)return le(e|0,t|0,n|0)|0;a=e|0;o=e+n|0;if((e&3)==(t&3)){while(e&3){if(!n)return a|0;i[e>>0]=i[t>>0]|0;e=e+1|0;t=t+1|0;n=n-1|0}s=o&-4|0;n=s-64|0;while((e|0)<=(n|0)){r[e>>2]=r[t>>2];r[e+4>>2]=r[t+4>>2];r[e+8>>2]=r[t+8>>2];r[e+12>>2]=r[t+12>>2];r[e+16>>2]=r[t+16>>2];r[e+20>>2]=r[t+20>>2];r[e+24>>2]=r[t+24>>2];r[e+28>>2]=r[t+28>>2];r[e+32>>2]=r[t+32>>2];r[e+36>>2]=r[t+36>>2];r[e+40>>2]=r[t+40>>2];r[e+44>>2]=r[t+44>>2];r[e+48>>2]=r[t+48>>2];r[e+52>>2]=r[t+52>>2];r[e+56>>2]=r[t+56>>2];r[e+60>>2]=r[t+60>>2];e=e+64|0;t=t+64|0}while((e|0)<(s|0)){r[e>>2]=r[t>>2];e=e+4|0;t=t+4|0}}else{s=o-4|0;while((e|0)<(s|0)){i[e>>0]=i[t>>0]|0;i[e+1>>0]=i[t+1>>0]|0;i[e+2>>0]=i[t+2>>0]|0;i[e+3>>0]=i[t+3>>0]|0;e=e+4|0;t=t+4|0}}while((e|0)<(o|0)){i[e>>0]=i[t>>0]|0;e=e+1|0;t=t+1|0}return a|0}function Fa(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,r=0;n=e&65535;i=t&65535;a=W(i,n)|0;r=e>>>16;e=(a>>>16)+(W(i,r)|0)|0;i=t>>>16;t=W(i,n)|0;return(x=(e>>>16)+(W(i,r)|0)+(((e&65535)+t|0)>>>16)|0,e+t<<16|a&65535|0)|0}function Ua(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,r=0;a=e;e=n;n=Fa(a,e)|0;r=x;return(x=(W(t,e)|0)+(W(i,a)|0)+r|r&0,n|0|0)|0}function Ba(e,t,n){e=e|0;t=t|0;n=n|0;var a=0;if((t|0)<(e|0)&(e|0)<(t+n|0)){a=e;t=t+n|0;e=e+n|0;while((n|0)>0){e=e-1|0;t=t-1|0;n=n-1|0;i[e>>0]=i[t>>0]|0}e=a}else La(e,t,n)|0;return e|0}function Ha(e){e=e|0;var t=0,n=0;e=e+15&-16|0;t=r[u>>2]|0;n=t+e|0;if((e|0)>0&(n|0)<(t|0)|(n|0)<0){ee()|0;re(12);return-1}r[u>>2]=n;if((n|0)>(Q()|0)?(Z()|0)==0:0){re(12);r[u>>2]=t;return-1}return t|0}function ja(e,t,n,i,a,r,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;r=r|0;o=o|0;qa[e&1](t|0,n|0,i|0,a|0,r|0,o|0)}function Va(e,t,n,i,a,r){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;r=r|0;X(0)}var qa=[Va,va];return{setThrew:he,_bitshift64Ashr:Ra,_memset:Na,_ogv_audio_decoder_process_header:ba,_sbrk:Ha,_memcpy:La,stackAlloc:ue,___muldi3:Ua,getTempRet0:_e,setTempRet0:ge,_i64Add:Oa,_emscripten_get_global_libc:Ca,stackSave:pe,___muldsi3:Fa,_free:Pa,runPostSets:Da,_ogv_audio_decoder_destroy:ka,_ogv_audio_decoder_init:ya,establishStackSpace:me,_memmove:Ba,stackRestore:fe,_malloc:xa,_ogv_audio_decoder_process_audio:wa,stackAlloc:ue,stackSave:pe,stackRestore:fe,establishStackSpace:me,setThrew:he,setTempRet0:ge,getTempRet0:_e,dynCall_viiiiii:ja}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),setThrew=Module.setThrew=asm.setThrew,_bitshift64Ashr=Module._bitshift64Ashr=asm._bitshift64Ashr,_memset=Module._memset=asm._memset,_ogv_audio_decoder_process_header=Module._ogv_audio_decoder_process_header=asm._ogv_audio_decoder_process_header,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___muldi3=Module.___muldi3=asm.___muldi3,getTempRet0=Module.getTempRet0=asm.getTempRet0,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,stackSave=Module.stackSave=asm.stackSave,___muldsi3=Module.___muldsi3=asm.___muldsi3,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,_ogv_audio_decoder_destroy=Module._ogv_audio_decoder_destroy=asm._ogv_audio_decoder_destroy,_ogv_audio_decoder_init=Module._ogv_audio_decoder_init=asm._ogv_audio_decoder_init,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,_ogv_audio_decoder_process_audio=Module._ogv_audio_decoder_process_audio=asm._ogv_audio_decoder_process_audio,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm,Module.then=function(e){if(Module.calledRun)e(Module);else{var t=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){t&&t(),e(Module)}}return Module},ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){function t(){for(var e=0;e<3;e++)i.push(0)}e=e||[],ensureInitRuntime();var n=e.length+1,i=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];t();for(var a=0;a<n-1;a+=1)i.push(allocate(intArrayFromString(e[a]),"i8",ALLOC_NORMAL)),t();i.push(0),i=allocate(i,"i32",ALLOC_NORMAL);try{var r=Module._main(n,i,0);exit(r,!0)}catch(o){if(o instanceof ExitStatus)return;if("SimulateInfiniteLoop"==o)return void(Module.noExitRuntime=!0);var s=o;o&&"object"==typeof o&&o.stack&&(s=[o,o.stack]),Module.printErr("exception thrown: "+s),Module.quit(1,o)}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit;var abortDecorators=[];if(Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!1;Module.noInitialRun&&(shouldRunNow=!1),Module.noExitRuntime=!0,run();var inputBuffer,inputBufferSize,getTimestamp;return getTimestamp="undefined"==typeof performance||"undefined"==typeof performance.now?Date.now:performance.now.bind(performance),Module.loadedMetadata=!!options.audioFormat,Module.audioFormat=options.audioFormat||null,Module.audioBuffer=null,Module.cpuTime=0,Object.defineProperty(Module,"processing",{get:function(){return!1}}),Module.init=function(e){function t(){time(function(){Module._ogv_audio_decoder_init()}),e()}Module.wasmBinary?Module.onRuntimeInitialized=function(){t()}:t()},Module.processHeader=function(e,t){var n=time(function(){var t=e.byteLength,n=reallocInputBuffer(t);return Module.HEAPU8.set(new Uint8Array(e),n),Module._ogv_audio_decoder_process_header(n,t)});t(n)},Module.processAudio=function(e,t){var n=time(function(){var t=e.byteLength,n=reallocInputBuffer(t);return Module.HEAPU8.set(new Uint8Array(e),n),Module._ogv_audio_decoder_process_audio(n,t)});t(n)},Module.close=function(){},Math.imul=Math_imul_orig,OGVDecoderAudioOpus}}();var OGVDecoderAudioVorbis;!function(){var scriptSrc;"undefined"!=typeof document&&document.currentScript&&(scriptSrc=document.currentScript.src),OGVDecoderAudioVorbis=function(OGVDecoderAudioVorbis){function globalEval(e){eval.call(null,e)}function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,n,i){switch(n=n||"i8","*"===n.charAt(n.length-1)&&(n="i32"),n){case"i1":HEAP8[e>>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+n)}}function getValue(e,t,n){switch(t=t||"i8","*"===t.charAt(t.length-1)&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}function allocate(e,t,n,i){var a,r;"number"==typeof e?(a=!0,r=e):(a=!1,r=e.length);var o,s="string"==typeof t?t:null;if(o=n==ALLOC_NONE?i:["function"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===n?ALLOC_STATIC:n](Math.max(r,s?1:t.length)),a){var l,i=o;for(assert(0==(3&o)),l=o+(r&-4);i<l;i+=4)HEAP32[i>>2]=0;for(l=o+r;i<l;)HEAP8[i++>>0]=0;return o}if("i8"===s)return e.subarray||e.slice?HEAPU8.set(e,o):HEAPU8.set(new Uint8Array(e),o),o;for(var c,d,u,p=0;p<r;){var f=e[p];"function"==typeof f&&(f=Runtime.getFunctionIndex(f)),c=s||t[p],0!==c?("i64"==c&&(c="i32"),setValue(o+p,f,c),u!==c&&(d=Runtime.getNativeTypeSize(c),u=c),p+=d):p++}return o}function getMemory(e){return staticSealed?runtimeInitialized?_malloc(e):Runtime.dynamicAlloc(e):Runtime.staticAlloc(e)}function Pointer_stringify(e,t){if(0===t||!e)return"";for(var n,i=0,a=0;;){if(n=HEAPU8[e+a>>0],i|=n,0==n&&!t)break;if(a++,t&&a==t)break}t||(t=a);var r="";if(i<128){for(var o,s=1024;t>0;)o=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,s))),r=r?r+o:o,e+=s,t-=s;return r}return Module.UTF8ToString(e)}function AsciiToString(e){for(var t="";;){var n=HEAP8[e++>>0];if(!n)return t;t+=String.fromCharCode(n)}}function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}function UTF8ArrayToString(e,t){for(var n=t;e[n];)++n;if(n-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,n));for(var i,a,r,o,s,l,c="";;){if(i=e[t++],!i)return c;if(128&i)if(a=63&e[t++],192!=(224&i))if(r=63&e[t++],224==(240&i)?i=(15&i)<<12|a<<6|r:(o=63&e[t++],240==(248&i)?i=(7&i)<<18|a<<12|r<<6|o:(s=63&e[t++],248==(252&i)?i=(3&i)<<24|a<<18|r<<12|o<<6|s:(l=63&e[t++],i=(1&i)<<30|a<<24|r<<18|o<<12|s<<6|l))),i<65536)c+=String.fromCharCode(i);else{var d=i-65536;c+=String.fromCharCode(55296|d>>10,56320|1023&d)}else c+=String.fromCharCode((31&i)<<6|a);else c+=String.fromCharCode(i)}}function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}function stringToUTF8Array(e,t,n,i){if(!(i>0))return 0;for(var a=n,r=n+i-1,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o)),s<=127){if(n>=r)break;t[n++]=s}else if(s<=2047){if(n+1>=r)break;t[n++]=192|s>>6,t[n++]=128|63&s}else if(s<=65535){if(n+2>=r)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|63&s}else if(s<=2097151){if(n+3>=r)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}else if(s<=67108863){if(n+4>=r)break;t[n++]=248|s>>24,t[n++]=128|s>>18&63,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}else{if(n+5>=r)break;t[n++]=252|s>>30,t[n++]=128|s>>24&63,t[n++]=128|s>>18&63,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|63&s}}return t[n]=0,n-a}function stringToUTF8(e,t,n){return stringToUTF8Array(e,HEAPU8,t,n)}function lengthBytesUTF8(e){for(var t=0,n=0;n<e.length;++n){var i=e.charCodeAt(n);i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++n)),i<=127?++t:t+=i<=2047?2:i<=65535?3:i<=2097151?4:i<=67108863?5:6}return t}function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var n=e.substr(1),i=lengthBytesUTF8(n)+1,a=_malloc(i);stringToUTF8(n,a,i);var r=_malloc(4),o=t(a,0,0,r);if(0===getValue(r,"i32")&&o)return Pointer_stringify(o)}catch(s){}finally{a&&_free(a),r&&_free(r),o&&_free(o)}return e}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){var t=/__Z[\w\d_]+/g;return e.replace(t,function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}function getTotalMemory(){return TOTAL_MEMORY}function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?Module.dynCall_v(n):Module.dynCall_vi(n,t.arg):n(void 0===t.arg?null:t.arg)}else t()}}function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,n){var i=n>0?n:lengthBytesUTF8(e)+1,a=new Array(i),r=stringToUTF8Array(e,a,0,a.length);return t&&(a.length=r),a}function intArrayToString(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];i>255&&(i&=255),t.push(String.fromCharCode(i))}return t.join("")}function writeStringToMemory(e,t,n){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var i,a;n&&(a=t+lengthBytesUTF8(e),i=HEAP8[a]),stringToUTF8(e,t,1/0),n&&(HEAP8[a]=i)}function writeArrayToMemory(e,t){HEAP8.set(e,t)}function writeAsciiToMemory(e,t,n){for(var i=0;i<e.length;++i)HEAP8[t++>>0]=e.charCodeAt(i);n||(HEAP8[t>>0]=0)}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}function _ogvjs_callback_init_audio(e,t){Module.audioFormat={channels:e,rate:t},Module.loadedMetadata=!0}function _abort(){Module.abort()}function ___setErrNo(e){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=e),e}function __exit(e){Module.exit(e)}function _exit(e){__exit(e)}function _emscripten_memcpy_big(e,t,n){return HEAPU8.set(HEAPU8.subarray(t,t+n),e),e}function _ogvjs_callback_audio(e,t,n){var i=Module.HEAPU32,a=Module.HEAPF32,r=[];if(0!==e)for(var o,s,l,c,d=0;d<t;d++)o=i[e/4+d],a.buffer.slice?(l=a.buffer.slice(o,o+4*n),c=new Float32Array(l)):(s=a.subarray(o/4,o/4+n),c=new Float32Array(s)),r.push(c);Module.audioBuffer=r}function invoke_iiiii(e,t,n,i,a){try{return Module.dynCall_iiiii(e,t,n,i,a)}catch(r){if("number"!=typeof r&&"longjmp"!==r)throw r;Module.setThrew(1,0)}}function invoke_vi(e,t){try{Module.dynCall_vi(e,t)}catch(n){if("number"!=typeof n&&"longjmp"!==n)throw n;Module.setThrew(1,0)}}function invoke_vii(e,t,n){try{Module.dynCall_vii(e,t,n)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;Module.setThrew(1,0)}}function invoke_ii(e,t){try{return Module.dynCall_ii(e,t)}catch(n){if("number"!=typeof n&&"longjmp"!==n)throw n;Module.setThrew(1,0)}}function invoke_viii(e,t,n,i){try{Module.dynCall_viii(e,t,n,i)}catch(a){if("number"!=typeof a&&"longjmp"!==a)throw a;Module.setThrew(1,0)}}function invoke_iiiiiiiii(e,t,n,i,a,r,o,s,l){try{return Module.dynCall_iiiiiiiii(e,t,n,i,a,r,o,s,l)}catch(c){if("number"!=typeof c&&"longjmp"!==c)throw c;Module.setThrew(1,0)}}function invoke_iii(e,t,n){try{return Module.dynCall_iii(e,t,n)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;Module.setThrew(1,0)}}function invoke_iiiiii(e,t,n,i,a,r){try{return Module.dynCall_iiiiii(e,t,n,i,a,r)}catch(o){if("number"!=typeof o&&"longjmp"!==o)throw o;Module.setThrew(1,0)}}function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),t()},1)):t()))}function exit(e,t){t&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE&&process.exit(e),Module.quit(e,new ExitStatus(e)))}function abort(e){void 0!==e?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var t="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.",n="abort("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(t){n=t(n,e)}),n}function reallocInputBuffer(e){return inputBuffer&&inputBufferSize>=e?inputBuffer:(inputBuffer&&Module._free(inputBuffer),inputBufferSize=e,inputBuffer=Module._malloc(inputBufferSize))}function time(e){var t,n=getTimestamp();return t=e(),Module.cpuTime+=getTimestamp()-n,t}OGVDecoderAudioVorbis=OGVDecoderAudioVorbis||{},OGVDecoderAudioVorbis.currentScriptUrl||(OGVDecoderAudioVorbis.currentScriptUrl=scriptSrc);var Module=OGVDecoderAudioVorbis,options=Module;Module={print:function(e){console.log(e)}},"undefined"!=typeof OGVLoader&&(Module.pthreadMainPrefixURL=OGVLoader.base+"/"),options.memoryLimit&&!options.wasmBinary&&(Module.TOTAL_MEMORY=options.memoryLimit);for(option in options)options.hasOwnProperty(option)&&(Module[option]=options[option]);var Math_imul_orig=Math.imul,OGVDecoderAudioVorbis=Module,Module;Module||(Module=("undefined"!=typeof OGVDecoderAudioVorbis?OGVDecoderAudioVorbis:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else if("SHELL"===Module.ENVIRONMENT)ENVIRONMENT_IS_SHELL=!0;else{if("PTHREAD"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_WORKER=!0,ENVIRONMENT_IS_PTHREAD=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,t){nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require("path")),e=nodePath.normalize(e);var n=nodeFS.readFileSync(e);return t?n:n.toString()},Module.readBinary=function(e){var t=Module.read(e,!0);return t.buffer||(t=new Uint8Array(t)),assert(t.buffer),t},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:"undefined"!=typeof arguments&&(Module.arguments=arguments),"function"==typeof quit&&(Module.quit=function(e,t){quit(e)});else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var t=new XMLHttpRequest;
return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),t.response}),Module.readAsync=function(e,t,n){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=function(){200==i.status||0==i.status&&i.response?t(i.response):n()},i.onerror=n,i.send(null)},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return"double"===t||"i64"===t?7&e&&(assert(4===(7&e)),e+=4):assert(0===(3&e)),e},getAlignSize:function(e,t,n){return n||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,n){return n&&n.length?Module["dynCall_"+e].apply(null,[t].concat(n)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t<Runtime.functionPointers.length;t++)if(!Runtime.functionPointers[t])return Runtime.functionPointers[t]=e,2*(1+t);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,t){assert(t),Runtime.funcWrappers[t]||(Runtime.funcWrappers[t]={});var n=Runtime.funcWrappers[t];return n[e]||(1===t.length?n[e]=function(){return Runtime.dynCall(t,e)}:2===t.length?n[e]=function(n){return Runtime.dynCall(t,e,[n])}:n[e]=function(){return Runtime.dynCall(t,e,Array.prototype.slice.call(arguments))}),n[e]},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var t=STACKTOP;return STACKTOP=STACKTOP+e|0,STACKTOP=STACKTOP+15&-16,t},staticAlloc:function(e){var t=STATICTOP;return STATICTOP=STATICTOP+e|0,STATICTOP=STATICTOP+15&-16,t},dynamicAlloc:function(e){var t=HEAP32[DYNAMICTOP_PTR>>2],n=(t+e+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=n,n>=TOTAL_MEMORY){var i=enlargeMemory();if(!i)return HEAP32[DYNAMICTOP_PTR>>2]=t,0}return t},alignMemory:function(e,t){var n=e=Math.ceil(e/(t?t:16))*(t?t:16);return n},makeBigInt:function(e,t,n){var i=n?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t);return i},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0,cwrap,ccall;!function(){function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}function ensureJSsource(){if(!JSsource){JSsource={};for(var e in JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}}var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(null!==e&&void 0!==e&&0!==e){var n=(e.length<<2)+1;t=Runtime.stackAlloc(n),stringToUTF8(e,t,n)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,n,i,a){var r=getCFunc(e),o=[],s=0;if(i)for(var l=0;l<i.length;l++){var c=toC[n[l]];c?(0===s&&(s=Runtime.stackSave()),o[l]=c(i[l])):o[l]=i[l]}var d=r.apply(null,o);if("string"===t&&(d=Pointer_stringify(d)),0!==s){if(a&&a.async)return void EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(s)});Runtime.stackRestore(s)}return d};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,JSsource=null;cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(e){return"number"===e}),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(e,t){return"$"+t}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}}(),Module.ccall=ccall,Module.cwrap=cwrap,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||16777216;if(TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),buffer=Module.buffer?Module.buffer:new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews(),HEAP32[0]=1668509029,HEAP16[1]=25459,115!==HEAPU8[2]||99!==HEAPU8[3])throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=addOnPreRun,Module.addOnInit=addOnInit,Module.addOnPreMain=addOnPreMain,Module.addOnExit=addOnExit,Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&Math.imul(4294967295,5)===-5||(Math.imul=function(e,t){var n=e>>>16,i=65535&e,a=t>>>16,r=65535&t;return i*r+(n*r+i*a<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var t=0;t<32;t++)if(e&1<<31-t)return t;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+58496,__ATINIT__.push(),allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,248,63,0,0,0,0,0,0,4,64,0,0,0,0,0,0,18,64,0,0,0,0,0,0,33,64,0,0,0,0,0,128,48,64,0,0,0,4,107,244,52,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,248,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,4,64,0,0,0,0,0,0,18,64,0,0,0,0,0,0,33,64,0,0,0,4,107,244,52,66,0,0,0,0,1,0,0,0,3,0,0,0,7,0,0,0,15,0,0,0,31,0,0,0,63,0,0,0,127,0,0,0,255,0,0,0,255,1,0,0,255,3,0,0,255,7,0,0,255,15,0,0,255,31,0,0,255,63,0,0,255,127,0,0,255,255,0,0,255,255,1,0,255,255,3,0,255,255,7,0,255,255,15,0,255,255,31,0,255,255,63,0,255,255,127,0,255,255,255,0,255,255,255,1,255,255,255,3,255,255,255,7,255,255,255,15,255,255,255,31,255,255,255,63,255,255,255,127,255,255,255,255,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,2,0,0,0,0,0,0,0,7,0,0,0,8,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,7,0,0,0,8,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,7,0,0,0,8,0,0,0,5,0,0,0,6,0,0,0,4,0,0,0,2,0,0,0,5,0,0,0,1,0,0,0,9,0,0,0,7,0,0,0,1,0,0,0,10,0,0,0,56,1,0,0,28,1,0,0,84,1,0,0,116,1,0,0,148,1,0,0,62,180,228,51,9,145,243,51,139,178,1,52,60,32,10,52,35,26,19,52,96,169,28,52,167,215,38,52,75,175,49,52,80,59,61,52,112,135,73,52,35,160,86,52,184,146,100,52,85,109,115,52,136,159,129,52,252,11,138,52,147,4,147,52,105,146,156,52,50,191,166,52,63,149,177,52,147,31,189,52,228,105,201,52,173,128,214,52,54,113,228,52,166,73,243,52,136,140,1,53,192,247,9,53,6,239,18,53,118,123,28,53,192,166,38,53,55,123,49,53,218,3,61,53,94,76,73,53,59,97,86,53,185,79,100,53,252,37,115,53,138,121,129,53,134,227,137,53,124,217,146,53,133,100,156,53,82,142,166,53,51,97,177,53,37,232,188,53,220,46,201,53,206,65,214,53,65,46,228,53,87,2,243,53,143,102,1,54,79,207,9,54,245,195,18,54,152,77,28,54,232,117,38,54,50,71,49,54,116,204,60,54,94,17,73,54,101,34,86,54,206,12,100,54,184,222,114,54,151,83,129,54,28,187,137,54,114,174,146,54,175,54,156,54,129,93,166,54,53,45,177,54,199,176,188,54,228,243,200,54,1,3,214,54,96,235,227,54,30,187,242,54,162,64,1,55,235,166,9,55,241,152,18,55,201,31,28,55,30,69,38,55,61,19,49,55,30,149,60,55,111,214,72,55,162,227,85,55,247,201,99,55,137,151,114,55,175,45,129,55,190,146,137,55,116,131,146,55,230,8,156,55,190,44,166,55,71,249,176,55,121,121,188,55,254,184,200,55,71,196,213,55,146,168,227,55,248,115,242,55,192,26,1,56,147,126,9,56,249,109,18,56,6,242,27,56,98,20,38,56,86,223,48,56,216,93,60,56,146,155,72,56,242,164,85,56,51,135,99,56,110,80,114,56,211,7,129,56,107,106,137,56,130,88,146,56,42,219,155,56,9,252,165,56,104,197,176,56,59,66,188,56,41,126,200,56,160,133,213,56,217,101,227,56,232,44,242,56,233,244,0,57,70,86,9,57,14,67,18,57,81,196,27,57,181,227,37,57,127,171,48,57,162,38,60,57,197,96,72,57,83,102,85,57,131,68,99,57,104,9,114,57,1,226,128,57,36,66,137,57,157,45,146,57,123,173,155,57,99,203,165,57,153,145,176,57,13,11,188,57,102,67,200,57,11,71,213,57,50,35,227,57,237,229,241,57,29,207,0,58,5,46,9,58,48,24,18,58,169,150,27,58,21,179,37,58,183,119,48,58,124,239,59,58,10,38,72,58,199,39,85,58,230,1,99,58,120,194,113,58,59,188,128,58,233,25,137,58,198,2,146,58,219,127,155,58,203,154,165,58,216,93,176,58,239,211,187,58,179,8,200,58,136,8,213,58,159,224,226,58,7,159,241,58,92,169,0,59,208,5,9,59,94,237,17,59,15,105,27,59,132,130,37,59,253,67,48,59,103,184,59,59,97,235,71,59,77,233,84,59,93,191,98,59,156,123,113,59,127,150,128,59,186,241,136,59,249,215,145,59,71,82,155,59,65,106,165,59,39,42,176,59,226,156,187,59,18,206,199,59,23,202,212,59,32,158,226,59,53,88,241,59,166,131,0,60,167,221,8,60,152,194,17,60,130,59,27,60,1,82,37,60,84,16,48,60,97,129,59,60,200,176,71,60,229,170,84,60,232,124,98,60,212,52,113,60,207,112,128,60,150,201,136,60,58,173,145,60,192,36,155,60,197,57,165,60,133,246,175,60,229,101,187,60,130,147,199,60,185,139,212,60,180,91,226,60,121,17,241,60,251,93,0,61,137,181,8,61,223,151,17,61,2,14,27,61,141,33,37,61,185,220,47,61,109,74,59,61,64,118,71,61,145,108,84,61,133,58,98,61,34,238,112,61,42,75,128,61,127,161,136,61,136,130,145,61,72,247,154,61,88,9,165,61,242,194,175,61,248,46,187,61,3,89,199,61,109,77,212,61,92,25,226,61,209,202,240,61,91,56,0,62,119,141,8,62,51,109,17,62,144,224,26,62,39,241,36,62,46,169,47,62,135,19,59,62,202,59,71,62,77,46,84,62,55,248,97,62,132,167,112,62,143,37,128,62,115,121,136,62,226,87,145,62,220,201,154,62,249,216,164,62,109,143,175,62,27,248,186,62,149,30,199,62,51,15,212,62,23,215,225,62,61,132,240,62,198,18,0,63,114,101,8,63,147,66,17,63,43,179,26,63,206,192,36,63,177,117,47,63,178,220,58,63,101,1,71,63,29,240,83,63,251,181,97,63,251,96,112,63,0,0,128,63,252,5,0,0,124,6,0,0,124,7,0,0,124,9,0,0,124,13,0,0,124,21,0,0,124,37,0,0,124,69,0,0,24,0,120,58,76,70,11,60,242,204,192,60,116,252,59,61,86,73,154,61,241,93,228,61,248,163,29,62,180,231,78,62,54,157,130,62,78,220,159,62,193,174,190,62,65,132,222,62,173,194,254,62,186,101,15,63,248,0,31,63,29,233,45,63,249,219,59,63,45,162,72,63,160,17,84,63,38,15,94,63,46,143,102,63,112,149,109,63,174,51,115,63,159,135,119,63,66,184,122,63,196,242,124,63,75,103,126,63,196,69,127,63,241,186,127,63,217,237,127,63,162,253,127,63,248,255,127,63,168,9,120,57,17,119,11,59,135,139,193,59,74,113,61,60,148,82,156,60,94,8,233,60,42,83,34,61,74,118,87,61,138,227,137,61,7,140,171,61,34,154,208,61,108,239,248,61,164,52,18,62,100,112,41,62,65,21,66,62,67,11,92,62,47,56,119,62,197,191,137,62,92,97,152,62,135,112,167,62,4,220,182,62,188,145,198,62,231,126,214,62,48,144,230,62,227,177,246,62,13,104,3,63,121,107,11,63,98,89,19,63,42,40,27,63,137,206,34,63,166,67,42,63,49,127,49,63,126,121,56,63,153,43,63,63,92,143,69,63,127,159,75,63,165,87,81,63,104,180,86,63,89,179,91,63,8,83,96,63,252,146,100,63,177,115,104,63,138,246,107,63,198,29,111,63,109,236,113,63,62,102,116,63,154,143,118,63,104,109,120,63,3,5,122,63,26,92,123,63,153,120,124,63,143,96,125,63,17,26,126,63,39,171,126,63,176,25,127,63,74,107,127,63,68,165,127,63,132,204,127,63,123,229,127,63,17,244,127,63,158,251,127,63,219,254,127,63,218,255,127,63,0,0,128,63,5,12,120,56,50,131,11,58,118,186,193,58,226,203,61,59,38,207,156,59,139,32,234,59,245,102,35,60,63,100,89,60,184,127,139,60,59,23,174,60,239,114,212,60,96,140,254,60,45,46,22,61,114,237,46,61,155,127,73,61,220,223,101,61,123,4,130,61,159,250,145,61,71,207,162,61,38,127,180,61,173,6,199,61,16,98,218,61,63,141,238,61,244,193,1,62,185,160,12,62,128,224,23,62,182,126,35,62,166,120,47,62,116,203,59,62,34,116,72,62,141,111,85,62,107,186,98,62,83,81,112,62,180,48,126,62,110,42,134,62,252,92,141,62,9,174,148,62,138,27,156,62,100,163,163,62,112,67,171,62,119,249,178,62,54,195,186,62,93,158,194,62,147,136,202,62,118,127,210,62,154,128,218,62,142,137,226,62,217,151,234,62,2,169,242,62,139,186,250,62,251,100,1,63,99,106,5,63,65,108,9,63,89,105,13,63,116,96,17,63,94,80,21,63,231,55,25,63,231,21,29,63,58,233,32,63,197,176,36,63,116,107,40,63,62,24,44,63,35,182,47,63,43,68,51,63,109,193,54,63,10,45,58,63,48,134,61,63,26,204,64,63,17,254,67,63,107,27,71,63,142,35,74,63,238,21,77,63,15,242,79,63,132,183,82,63,239,101,85,63,3,253,87,63,129,124,90,63,60,228,92,63,21,52,95,63,254,107,97,63,246,139,99,63,14,148,101,63,98,132,103,63,33,93,105,63,133,30,107,63,213,200,108,63,103,92,110,63,155,217,111,63,224,64,113,63,172,146,114,63,131,207,115,63,241,247,116,63,139,12,118,63,239,13,119,63,193,252,119,63,172,217,120,63,99,165,121,63,155,96,122,63,15,12,123,63,124,168,123,63,163,54,124,63,71,183,124,63,41,43,125,63,13,147,125,63,183,239,125,63,229,65,126,63,89,138,126,63,205,201,126,63,251,0,127,63,150,48,127,63,78,89,127,63,205,123,127,63,182,152,127,63,167,176,127,63,53,196,127,63,239,211,127,63,91,224,127,63,245,233,127,63,51,241,127,63,127,246,127,63,59,250,127,63,190,252,127,63,84,254,127,63,64,255,127,63,186,255,127,63,238,255,127,63,254,255,127,63,0,0,128,63,169,12,120,55,54,134,11,57,38,198,193,57,94,226,61,58,234,237,156,58,85,101,234,58,56,170,35,59,207,219,89,59,169,226,139,59,42,178,174,59,13,91,213,59,204,219,255,59,91,25,23,60,250,46,48,60,194,45,75,60,156,20,104,60,46,113,131,60,225,202,147,60,185,22,165,60,1,84,183,60,245,129,202,60,198,159,222,60,155,172,243,60,199,211,4,61,213,71,16,61,250,49,28,61,174,145,40,61,101,102,53,61,141,175,66,61,140,108,80,61,193,156,94,61,133,63,109,61,41,84,124,61,252,236,133,61,26,232,141,61,13,27,150,61,110,133,158,61,212,38,167,61,210,254,175,61,245,12,185,61,200,80,194,61,209,201,203,61,146,119,213,61,139,89,223,61,51,111,233,61,2,184,243,61,105,51,254,61,106,112,4,62,214,223,9,62,171,103,15,62,153,7,21,62,77,191,26,62,116,142,32,62,181,116,38,62,184,113,44,62,34,133,50,62,149,174,56,62,178,237,62,62,21,66,69,62,92,171,75,62,30,41,82,62,243,186,88,62,112,96,95,62,40,25,102,62,170,228,108,62,132,194,115,62,68,178,122,62,185,217,128,62,203,98,132,62,26,244,135,62,105,141,139,62,120,46,143,62,6,215,146,62,211,134,150,62,156,61,154,62,29,251,157,62,19,191,161,62,57,137,165,62,71,89,169,62,249,46,173,62,5,10,177,62,36,234,180,62,13,207,184,62,117,184,188,62,18,166,192,62,153,151,196,62,190,140,200,62,52,133,204,62,175,128,208,62,225,126,212,62,125,127,216,62,52,130,220,62,184,134,224,62,185,140,228,62,233,147,232,62,248,155,236,62,150,164,240,62,117,173,244,62,67,182,248,62,178,190,252,62,57,99,0,63,153,102,2,63,82,105,4,63,60,107,6,63,48,108,8,63,6,108,10,63,151,106,12,63,188,103,14,63,78,99,16,63,39,93,18,63,33,85,20,63,21,75,22,63,222,62,24,63,87,48,26,63,92,31,28,63,199,11,30,63,117,245,31,63,66,220,33,63,12,192,35,63,176,160,37,63,12,126,39,63,254,87,41,63,104,46,43,63,39,1,45,63,29,208,46,63,43,155,48,63,51,98,50,63,23,37,52,63,188,227,53,63,4,158,55,63,214,83,57,63,23,5,59,63,173,177,60,63,128,89,62,63,120,252,63,63,126,154,65,63,124,51,67,63,93,199,68,63,12,86,70,63,119,223,71,63,138,99,73,63,54,226,74,63,104,91,76,63,17,207,77,63,35,61,79,63,145,165,80,63,76,8,82,63,75,101,83,63,130,188,84,63,231,13,86,63,114,89,87,63,26,159,88,63,218,222,89,63,172,24,91,63,138,76,92,63,113,122,93,63,93,162,94,63,78,196,95,63,67,224,96,63,58,246,97,63,54,6,99,63,56,16,100,63,67,20,101,63,92,18,102,63,133,10,103,63,198,252,103,63,37,233,104,63,168,207,105,63,89,176,106,63,64,139,107,63,102,96,108,63,216,47,109,63,159,249,109,63,201,189,110,63,97,124,111,63,118,53,112,63,23,233,112,63,81,151,113,63,53,64,114,63,212,227,114,63,61,130,115,63,131,27,116,63,184,175,116,63,238,62,117,63,56,201,117,63,171,78,118,63,90,207,118,63,90,75,119,63,192,194,119,63,162,53,120,63,21,164,120,63,48,14,121,63,8,116,121,63,182,213,121,63,79,51,122,63,235,140,122,63,162,226,122,63,139,52,123,63,191,130,123,63,85,205,123,63,102,20,124,63,9,88,124,63,88,152,124,63,106,213,124,63,88,15,125,63,58,70,125,63,41,122,125,63,62,171,125,63,143,217,125,63,54,5,126,63,75,46,126,63,228,84,126,63,27,121,126,63,7,155,126,63,190,186,126,63,88,216,126,63,236,243,126,63,144,13,127,63,91,37,127,63,99,59,127,63,188,79,127,63,125,98,127,63,185,115,127,63,135,131,127,63,249,145,127,63,36,159,127,63,26,171,127,63,238,181,127,63,179,191,127,63,122,200,127,63,85,208,127,63,84,215,127,63,136,221,127,63,0,227,127,63,204,231,127,63,249,235,127,63,150,239,127,63,177,242,127,63,85,245,127,63,144,247,127,63,109,249,127,63,246,250,127,63,54,252,127,63,55,253,127,63,1,254,127,63,156,254,127,63,18,255,127,63,103,255,127,63,163,255,127,63,204,255,127,63,229,255,127,63,244,255,127,63,252,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,60,12,120,54,253,134,11,56,19,201,193,56,248,231,61,57,148,245,156,57,115,118,234,57,238,186,35,58,113,249,89,58,32,251,139,58,96,216,174,58,34,148,213,58,3,23,0,59,209,82,23,59,65,125,48,59,21,150,75,59,8,157,104,59,233,200,131,59,20,58,148,59,218,161,165,59,16,0,184,59,136,84,203,59,16,159,223,59,118,223,244,59,194,138,5,60,128,32,17,60,217,48,29,60,172,187,41,60,219,192,54,60,67,64,68,60,194,57,82,60,52,173,96,60,115,154,111,60,88,1,127,60,222,112,135,60,186,157,143,60,42,7,152,60,25,173,160,60,112,143,169,60,23,174,178,60,246,8,188,60,243,159,197,60,245,114,207,60,225,129,217,60,156,204,227,60,10,83,238,60,14,21,249,60,70,9,2,61,177,165,7,61,187,95,13,61,81,55,19,61,102,44,25,61,230,62,31,61,195,110,37,61,233,187,43,61,71,38,50,61,202,173,56,61,97,82,63,61,247,19,70,61,121,242,76,61,210,237,83,61,240,5,91,61,187,58,98,61,32,140,105,61,8,250,112,61,93,132,120,61,132,21,128,61,249,246,131,61,130,230,135,61,19,228,139,61,159,239,143,61,26,9,148,61,119,48,152,61,169,101,156,61,163,168,160,61,88,249,164,61,186,87,169,61,186,195,173,61,76,61,178,61,95,196,182,61,230,88,187,61,209,250,191,61,18,170,196,61,152,102,201,61,85,48,206,61,56,7,211,61,48,235,215,61,47,220,220,61,34,218,225,61,248,228,230,61,161,252,235,61,11,33,241,61,35,82,246,61,217,143,251,61,13,109,0,62,105,24,3,62,247,201,5,62,174,129,8,62,133,63,11,62,113,3,14,62,104,205,16,62,96,157,19,62,79,115,22,62,42,79,25,62,232,48,28,62,124,24,31,62,221,5,34,62,255,248,36,62,215,241,39,62,90,240,42,62,125,244,45,62,51,254,48,62,114,13,52,62,45,34,55,62,88,60,58,62,232,91,61,62,208,128,64,62,3,171,67,62,118,218,70,62,26,15,74,62,229,72,77,62,199,135,80,62,181,203,83,62,162,20,87,62,127,98,90,62,63,181,93,62,213,12,97,62,50,105,100,62,73,202,103,62,12,48,107,62,108,154,110,62,92,9,114,62,203,124,117,62,173,244,120,62,241,112,124,62,138,241,127,62,52,187,129,62,190,127,131,62,91,70,133,62,4,15,135,62,176,217,136,62,89,166,138,62,245,116,140,62,126,69,142,62,234,23,144,62,50,236,145,62,78,194,147,62,54,154,149,62,224,115,151,62,70,79,153,62,93,44,155,62,31,11,157,62,130,235,158,62,127,205,160,62,11,177,162,62,31,150,164,62,177,124,166,62,186,100,168,62,47,78,170,62,9,57,172,62,62,37,174,62,198,18,176,62,150,1,178,62,167,241,179,62,238,226,181,62,100,213,183,62,254,200,185,62,179,189,187,62,122,179,189,62,74,170,191,62,25,162,193,62,221,154,195,62,142,148,197,62,34,143,199,62,142,138,201,62,203,134,203,62,205,131,205,62,140,129,207,62,253,127,209,62,24,127,211,62,210,126,213,62,33,127,215,62,252,127,217,62,88,129,219,62,45,131,221,62,112,133,223,62,23,136,225,62,25,139,227,62,108,142,229,62,5,146,231,62,219,149,233,62,228,153,235,62,21,158,237,62,102,162,239,62,203,166,241,62,59,171,243,62,173,175,245,62,21,180,247,62,107,184,249,62,164,188,251,62,181,192,253,62,150,196,255,62,30,228,0,63,207,229,1,63,88,231,2,63,182,232,3,63,226,233,4,63,215,234,5,63,146,235,6,63,12,236,7,63,66,236,8,63,45,236,9,63,202,235,10,63,19,235,11,63,4,234,12,63,151,232,13,63,200,230,14,63,145,228,15,63,239,225,16,63,220,222,17,63,84,219,18,63,81,215,19,63,208,210,20,63,202,205,21,63,61,200,22,63,34,194,23,63,117,187,24,63,50,180,25,63,85,172,26,63,215,163,27,63,182,154,28,63,236,144,29,63,117,134,30,63,77,123,31,63,110,111,32,63,214,98,33,63,126,85,34,63,100,71,35,63,130,56,36,63,212,40,37,63,87,24,38,63,5,7,39,63,219,244,39,63,213,225,40,63,239,205,41,63,36,185,42,63,113,163,43,63,209,140,44,63,64,117,45,63,188,92,46,63,63,67,47,63,199,40,48,63,78,13,49,63,211,240,49,63,80,211,50,63,195,180,51,63,39,149,52,63,122,116,53,63,184,82,54,63,220,47,55,63,229,11,56,63,206,230,56,63,149,192,57,63,54,153,58,63,174,112,59,63,249,70,60,63,21,28,61,63,255,239,61,63,179,194,62,63,48,148,63,63,113,100,64,63,116,51,65,63,55,1,66,63,182,205,66,63,239,152,67,63,224,98,68,63,134,43,69,63,222,242,69,63,230,184,70,63,156,125,71,63,253,64,72,63,7,3,73,63,184,195,73,63,14,131,74,63,6,65,75,63,159,253,75,63,215,184,76,63,172,114,77,63,28,43,78,63,38,226,78,63,199,151,79,63,253,75,80,63,201,254,80,63,39,176,81,63,22,96,82,63,150,14,83,63,164,187,83,63,63,103,84,63,103,17,85,63,26,186,85,63,86,97,86,63,28,7,87,63,105,171,87,63,62,78,88,63,152,239,88,63,120,143,89,63,221,45,90,63,198,202,90,63,50,102,91,63,33,0,92,63,147,152,92,63,134,47,93,63,251,196,93,63,242,88,94,63,105,235,94,63,98,124,95,63,219,11,96,63,213,153,96,63,80,38,97,63,76,177,97,63,201,58,98,63,199,194,98,63,70,73,99,63,71,206,99,63,202,81,100,63,208,211,100,63,88,84,101,63,100,211,101,63,244,80,102,63,9,205,102,63,163,71,103,63,195,192,103,63,107,56,104,63,154,174,104,63,82,35,105,63,147,150,105,63,96,8,106,63,184,120,106,63,157,231,106,63,16,85,107,63,19,193,107,63,166,43,108,63,203,148,108,63,132,252,108,63,209,98,109,63,180,199,109,63,48,43,110,63,68,141,110,63,244,237,110,63,64,77,111,63,42,171,111,63,181,7,112,63,225,98,112,63,177,188,112,63,38,21,113,63,67,108,113,63,10,194,113,63,123,22,114,63,155,105,114,63,106,187,114,63,234,11,115,63,31,91,115,63,9,169,115,63,172,245,115,63,9,65,116,63,35,139,116,63,252,211,116,63,151,27,117,63,245,97,117,63,26,167,117,63,8,235,117,63,193,45,118,63,72,111,118,63,159,175,118,63,202,238,118,63,201,44,119,63,161,105,119,63,84,165,119,63,228,223,119,63,85,25,120,63,168,81,120,63,226,136,120,63,3,191,120,63,16,244,120,63,11,40,121,63,247,90,121,63,215,140,121,63,173,189,121,63,125,237,121,63,73,28,122,63,20,74,122,63,226,118,122,63,181,162,122,63,144,205,122,63,118,247,122,63,107,32,123,63,112,72,123,63,138,111,123,63,186,149,123,63,5,187,123,63,109,223,123,63,245,2,124,63,160,37,124,63,113,71,124,63,108,104,124,63,147,136,124,63,233,167,124,63,114,198,124,63,48,228,124,63,38,1,125,63,89,29,125,63,201,56,125,63,124,83,125,63,115,109,125,63,178,134,125,63,60,159,125,63,19,183,125,63,60,206,125,63,184,228,125,63,139,250,125,63,184,15,126,63,66,36,126,63,44,56,126,63,120,75,126,63,43,94,126,63,70,112,126,63,204,129,126,63,194,146,126,63,41,163,126,63,4,179,126,63,86,194,126,63,35,209,126,63,109,223,126,63,55,237,126,63,131,250,126,63,85,7,127,63,175,19,127,63,148,31,127,63,7,43,127,63,10,54,127,63,160,64,127,63,205,74,127,63,146,84,127,63,242,93,127,63,239,102,127,63,141,111,127,63,206,119,127,63,181,127,127,63,67,135,127,63,124,142,127,63,98,149,127,63,247,155,127,63,61,162,127,63,56,168,127,63,233,173,127,63,83,179,127,63,120,184,127,63,90,189,127,63,252,193,127,63,95,198,127,63,134,202,127,63,116,206,127,63,41,210,127,63,168,213,127,63,244,216,127,63,13,220,127,63,247,222,127,63,179,225,127,63,67,228,127,63,168,230,127,63,229,232,127,63,252,234,127,63,237,236,127,63,188,238,127,63,105,240,127,63,246,241,127,63,101,243,127,63,183,244,127,63,238,245,127,63,11,247,127,63,16,248,127,63,254,248,127,63,214,249,127,63,155,250,127,63,76,251,127,63,236,251,127,63,124,252,127,63,252,252,127,63,110,253,127,63,211,253,127,63,44,254,127,63,121,254,127,63,189,254,127,63,247,254,127,63,42,255,127,63,84,255,127,63,120,255,127,63,150,255,127,63,175,255,127,63,195,255,127,63,211,255,127,63,224,255,127,63,234,255,127,63,241,255,127,63,246,255,127,63,250,255,127,63,253,255,127,63,254,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,171,15,120,53,24,135,11,55,225,201,193,55,107,233,61,56,128,247,156,56,187,122,234,56,24,191,35,57,213,0,90,57,56,1,140,57,229,225,174,57,88,162,213,57,60,33,0,58,24,97,23,58,175,144,48,58,243,175,75,58,212,190,104,58,159,222,131,58,143,85,148,58,48,196,165,58,119,42,184,58,90,136,203,58,204,221,223,58,191,42,245,58,148,183,5,59,124,85,17,59,16,111,29,59,73,4,42,59,31,21,55,59,138,161,68,59,129,169,82,59,252,44,97,59,241,43,112,59,88,166,127,59,19,206,135,59,169,6,144,59,233,124,152,59,204,48,161,59,79,34,170,59,106,81,179,59,26,190,188,59,86,104,198,59,26,80,208,59,95,117,218,59,31,216,228,59,83,120,239,59,244,85,250,59,126,184,2,60,177,100,8,60,145,47,14,60,25,25,20,60,70,33,26,60,19,72,32,60,126,141,38,60,129,241,44,60,25,116,51,60,65,21,58,60,246,212,64,60,50,179,71,60,243,175,78,60,50,203,85,60,235,4,93,60,26,93,100,60,186,211,107,60,198,104,115,60,58,28,123,60,7,119,129,60,33,111,133,60,102,118,137,60,212,140,141,60,105,178,145,60,33,231,149,60,251,42,154,60,243,125,158,60,6,224,162,60,50,81,167,60,115,209,171,60,199,96,176,60,43,255,180,60,154,172,185,60,19,105,190,60,146,52,195,60,20,15,200,60,149,248,204,60,19,241,209,60,137,248,214,60,245,14,220,60,83,52,225,60,160,104,230,60,215,171,235,60,246,253,240,60,249,94,246,60,220,206,251,60,205,166,0,61,153,109,3,61,207,59,6,61,109,17,9,61,114,238,11,61,220,210,14,61,167,190,17,61,211,177,20,61,94,172,23,61,68,174,26,61,133,183,29,61,30,200,32,61,12,224,35,61,78,255,38,61,225,37,42,61,196,83,45,61,243,136,48,61,109,197,51,61,47,9,55,61,55,84,58,61,130,166,61,61,15,0,65,61,218,96,68,61,226,200,71,61,35,56,75,61,156,174,78,61,73,44,82,61,40,177,85,61,55,61,89,61,115,208,92,61,217,106,96,61,103,12,100,61,25,181,103,61,238,100,107,61,227,27,111,61,244,217,114,61,30,159,118,61,96,107,122,61,182,62,126,61,143,12,129,61,73,253,130,61,138,241,132,61,79,233,134,61,150,228,136,61,94,227,138,61,167,229,140,61,109,235,142,61,175,244,144,61,109,1,147,61,164,17,149,61,83,37,151,61,120,60,153,61,17,87,155,61,30,117,157,61,155,150,159,61,136,187,161,61,226,227,163,61,169,15,166,61,218,62,168,61,116,113,170,61,116,167,172,61,218,224,174,61,162,29,177,61,205,93,179,61,87,161,181,61,62,232,183,61,130,50,186,61,32,128,188,61,22,209,190,61,98,37,193,61,2,125,195,61,245,215,197,61,57,54,200,61,203,151,202,61,169,252,204,61,211,100,207,61,68,208,209,61,252,62,212,61,249,176,214,61,56,38,217,61,184,158,219,61,117,26,222,61,111,153,224,61,163,27,227,61,14,161,229,61,175,41,232,61,132,181,234,61,138,68,237,61,191,214,239,61,33,108,242,61,174,4,245,61,99,160,247,61,62,63,250,61,61,225,252,61,93,134,255,61,78,23,1,62,252,108,2,62,56,196,3,62,255,28,5,62,81,119,6,62,45,211,7,62,145,48,9,62,125,143,10,62,238,239,11,62,228,81,13,62,94,181,14,62,89,26,16,62,214,128,17,62,210,232,18,62,77,82,20,62,69,189,21,62,184,41,23,62,166,151,24,62,13,7,26,62,236,119,27,62,65,234,28,62,11,94,30,62,73,211,31,62,250,73,33,62,28,194,34,62,173,59,36,62,172,182,37,62,24,51,39,62,240,176,40,62,50,48,42,62,220,176,43,62,238,50,45,62,101,182,46,62,64,59,48,62,126,193,49,62,30,73,51,62,29,210,52,62,123,92,54,62,54,232,55,62,76,117,57,62,187,3,59,62,131,147,60,62,162,36,62,62,22,183,63,62,222,74,65,62,248,223,66,62,98,118,68,62,28,14,70,62,35,167,71,62,117,65,73,62,18,221,74,62,247,121,76,62,35,24,78,62,149,183,79,62,74,88,81,62,66,250,82,62,121,157,84,62,240,65,86,62,163,231,87,62,146,142,89,62,186,54,91,62,26,224,92,62,177,138,94,62,124,54,96,62,122,227,97,62,169,145,99,62,7,65,101,62,147,241,102,62,75,163,104,62,44,86,106,62,54,10,108,62,102,191,109,62,187,117,111,62,51,45,113,62,204,229,114,62,132,159,116,62,90,90,118,62,75,22,120,62,85,211,121,62,120,145,123,62,176,80,125,62,253,16,127,62,46,105,128,62,101,74,129,62,36,44,130,62,105,14,131,62,52,241,131,62,130,212,132,62,84,184,133,62,169,156,134,62,127,129,135,62,213,102,136,62,171,76,137,62,255,50,138,62,209,25,139,62,32,1,140,62,233,232,140,62,46,209,141,62,236,185,142,62,34,163,143,62,208,140,144,62,244,118,145,62,142,97,146,62,156,76,147,62,29,56,148,62,17,36,149,62,118,16,150,62,76,253,150,62,144,234,151,62,67,216,152,62,99,198,153,62,239,180,154,62,230,163,155,62,71,147,156,62,17,131,157,62,67,115,158,62,219,99,159,62,218,84,160,62,60,70,161,62,3,56,162,62,43,42,163,62,181,28,164,62,160,15,165,62,233,2,166,62,145,246,166,62,149,234,167,62,245,222,168,62,176,211,169,62,197,200,170,62,50,190,171,62,246,179,172,62,17,170,173,62,129,160,174,62,69,151,175,62,91,142,176,62,196,133,177,62,125,125,178,62,133,117,179,62,220,109,180,62,128,102,181,62,112,95,182,62,171,88,183,62,47,82,184,62,252,75,185,62,17,70,186,62,108,64,187,62,11,59,188,62,239,53,189,62,22,49,190,62,126,44,191,62,38,40,192,62,13,36,193,62,51,32,194,62,150,28,195,62,52,25,196,62,12,22,197,62,30,19,198,62,104,16,199,62,233,13,200,62,159,11,201,62,138,9,202,62,169,7,203,62,249,5,204,62,123,4,205,62,44,3,206,62,11,2,207,62,24,1,208,62,81,0,209,62,181,255,209,62,66,255,210,62,248,254,211,62,213,254,212,62,216,254,213,62,255,254,214,62,75,255,215,62,184,255,216,62,71,0,218,62,245,0,219,62,195,1,220,62,173,2,221,62,180,3,222,62,214,4,223,62,17,6,224,62,101,7,225,62,208,8,226,62,81,10,227,62,231,11,228,62,144,13,229,62,76,15,230,62,25,17,231,62,245,18,232,62,224,20,233,62,217,22,234,62,221,24,235,62,236,26,236,62,5,29,237,62,39,31,238,62,79,33,239,62,125,35,240,62,176,37,241,62,230,39,242,62,31,42,243,62,88,44,244,62,145,46,245,62,200,48,246,62,253,50,247,62,45,53,248,62,88,55,249,62,124,57,250,62,153,59,251,62,172,61,252,62,181,63,253,62,179,65,254,62,163,67,255,62,195,34,0,63,173,163,0,63,142,36,1,63,102,165,1,63,53,38,2,63,250,166,2,63,180,39,3,63,99,168,3,63,5,41,4,63,155,169,4,63,36,42,5,63,159,170,5,63,12,43,6,63,105,171,6,63,183,43,7,63,244,171,7,63,32,44,8,63,59,172,8,63,68,44,9,63,58,172,9,63,28,44,10,63,235,171,10,63,164,43,11,63,73,171,11,63,216,42,12,63,80,170,12,63,177,41,13,63,251,168,13,63,44,40,14,63,69,167,14,63,68,38,15,63,41,165,15,63,243,35,16,63,162,162,16,63,53,33,17,63,172,159,17,63,5,30,18,63,65,156,18,63,95,26,19,63,94,152,19,63,61,22,20,63,252,147,20,63,155,17,21,63,24,143,21,63,116,12,22,63,173,137,22,63,195,6,23,63,182,131,23,63,133,0,24,63,46,125,24,63,179,249,24,63,18,118,25,63,74,242,25,63,91,110,26,63,69,234,26,63,6,102,27,63,159,225,27,63,14,93,28,63,84,216,28,63,111,83,29,63,95,206,29,63,36,73,30,63,188,195,30,63,40,62,31,63,102,184,31,63,119,50,32,63,90,172,32,63,14,38,33,63,146,159,33,63,230,24,34,63,10,146,34,63,253,10,35,63,190,131,35,63,77,252,35,63,169,116,36,63,211,236,36,63,200,100,37,63,138,220,37,63,22,84,38,63,110,203,38,63,143,66,39,63,122,185,39,63,47,48,40,63,172,166,40,63,241,28,41,63,254,146,41,63,210,8,42,63,108,126,42,63,205,243,42,63,243,104,43,63,223,221,43,63,143,82,44,63,3,199,44,63,59,59,45,63,54,175,45,63,244,34,46,63,116,150,46,63,182,9,47,63,185,124,47,63,125,239,47,63,1,98,48,63,69,212,48,63,72,70,49,63,10,184,49,63,139,41,50,63,202,154,50,63,198,11,51,63,127,124,51,63,246,236,51,63,40,93,52,63,22,205,52,63,191,60,53,63,36,172,53,63,66,27,54,63,27,138,54,63,174,248,54,63,249,102,55,63,254,212,55,63,187,66,56,63,47,176,56,63,91,29,57,63,63,138,57,63,217,246,57,63,41,99,58,63,48,207,58,63,236,58,59,63,93,166,59,63,130,17,60,63,93,124,60,63,235,230,60,63,44,81,61,63,33,187,61,63,201,36,62,63,35,142,62,63,48,247,62,63,238,95,63,63,94,200,63,63,126,48,64,63,80,152,64,63,209,255,64,63,3,103,65,63,228,205,65,63,117,52,66,63,181,154,66,63,163,0,67,63,64,102,67,63,139,203,67,63,131,48,68,63,41,149,68,63,124,249,68,63,123,93,69,63,39,193,69,63,127,36,70,63,132,135,70,63,51,234,70,63,142,76,71,63,148,174,71,63,68,16,72,63,159,113,72,63,164,210,72,63,83,51,73,63,172,147,73,63,174,243,73,63,89,83,74,63,173,178,74,63,169,17,75,63,77,112,75,63,154,206,75,63,143,44,76,63,43,138,76,63,110,231,76,63,89,68,77,63,234,160,77,63,34,253,77,63,0,89,78,63,133,180,78,63,176,15,79,63,128,106,79,63,246,196,79,63,18,31,80,63,210,120,80,63,56,210,80,63,66,43,81,63,242,131,81,63,69,220,81,63,61,52,82,63,217,139,82,63,24,227,82,63,252,57,83,63,131,144,83,63,174,230,83,63,123,60,84,63,236,145,84,63,0,231,84,63,183,59,85,63,16,144,85,63,12,228,85,63,170,55,86,63,235,138,86,63,206,221,86,63,83,48,87,63,121,130,87,63,66,212,87,63,172,37,88,63,184,118,88,63,101,199,88,63,180,23,89,63,164,103,89,63,53,183,89,63,104,6,90,63,59,85,90,63,175,163,90,63,197,241,90,63,123,63,91,63,210,140,91,63,201,217,91,63,97,38,92,63,154,114,92,63,115,190,92,63,237,9,93,63,7,85,93,63,194,159,93,63,29,234,93,63,24,52,94,63,179,125,94,63,239,198,94,63,203,15,95,63,72,88,95,63,100,160,95,63,33,232,95,63,126,47,96,63,123,118,96,63,24,189,96,63,85,3,97,63,51,73,97,63,177,142,97,63,207,211,97,63,141,24,98,63,236,92,98,63,235,160,98,63,138,228,98,63,202,39,99,63,170,106,99,63,42,173,99,63,75,239,99,63,13,49,100,63,111,114,100,63,114,179,100,63,21,244,100,63,90,52,101,63,63,116,101,63,197,179,101,63,236,242,101,63,180,49,102,63,29,112,102,63,39,174,102,63,211,235,102,63,32,41,103,63,15,102,103,63,159,162,103,63,209,222,103,63,164,26,104,63,26,86,104,63,49,145,104,63,235,203,104,63,71,6,105,63,69,64,105,63,230,121,105,63,42,179,105,63,16,236,105,63,153,36,106,63,197,92,106,63,148,148,106,63,7,204,106,63,29,3,107,63,214,57,107,63,52,112,107,63,53,166,107,63,218,219,107,63,36,17,108,63,18,70,108,63,164,122,108,63,220,174,108,63,184,226,108,63,57,22,109,63,96,73,109,63,44,124,109,63,157,174,109,63,181,224,109,63,115,18,110,63,214,67,110,63,225,116,110,63,146,165,110,63,233,213,110,63,232,5,111,63,142,53,111,63,219,100,111,63,209,147,111,63,110,194,111,63,179,240,111,63,160,30,112,63,54,76,112,63,117,121,112,63,93,166,112,63,239,210,112,63,41,255,112,63,14,43,113,63,156,86,113,63,213,129,113,63,184,172,113,63,70,215,113,63,127,1,114,63,99,43,114,63,243,84,114,63,46,126,114,63,21,167,114,63,169,207,114,63,233,247,114,63,214,31,115,63,113,71,115,63,184,110,115,63,173,149,115,63,80,188,115,63,162,226,115,63,161,8,116,63,80,46,116,63,174,83,116,63,187,120,116,63,119,157,116,63,228,193,116,63,1,230,116,63,206,9,117,63,76,45,117,63,123,80,117,63,92,115,117,63,238,149,117,63,51,184,117,63,42,218,117,63,211,251,117,63,48,29,118,63,64,62,118,63,3,95,118,63,122,127,118,63,166,159,118,63,134,191,118,63,27,223,118,63,101,254,118,63,101,29,119,63,27,60,119,63,135,90,119,63,169,120,119,63,131,150,119,63,19,180,119,63,91,209,119,63,91,238,119,63,20,11,120,63,132,39,120,63,174,67,120,63,145,95,120,63,46,123,120,63,132,150,120,63,149,177,120,63,96,204,120,63,231,230,120,63,41,1,121,63,38,27,121,63,223,52,121,63,85,78,121,63,136,103,121,63,120,128,121,63,37,153,121,63,144,177,121,63,185,201,121,63,161,225,121,63,72,249,121,63,174,16,122,63,212,39,122,63,185,62,122,63,96,85,122,63,198,107,122,63,238,129,122,63,216,151,122,63,131,173,122,63,241,194,122,63,33,216,122,63,20,237,122,63,202,1,123,63,68,22,123,63,130,42,123,63,133,62,123,63,77,82,123,63,217,101,123,63,43,121,123,63,68,140,123,63,34,159,123,63,200,177,123,63,52,196,123,63,104,214,123,63,99,232,123,63,39,250,123,63,180,11,124,63,9,29,124,63,40,46,124,63,17,63,124,63,196,79,124,63,65,96,124,63,137,112,124,63,156,128,124,63,124,144,124,63,39,160,124,63,158,175,124,63,226,190,124,63,244,205,124,63,211,220,124,63,128,235,124,63,251,249,124,63,69,8,125,63,94,22,125,63,71,36,125,63,255,49,125,63,136,63,125,63,225,76,125,63,11,90,125,63,7,103,125,63,212,115,125,63,115,128,125,63,229,140,125,63,42,153,125,63,66,165,125,63,46,177,125,63,238,188,125,63,130,200,125,63,235,211,125,63,41,223,125,63,61,234,125,63,38,245,125,63,230,255,125,63,124,10,126,63,234,20,126,63,47,31,126,63,75,41,126,63,64,51,126,63,13,61,126,63,180,70,126,63,51,80,126,63,140,89,126,63,191,98,126,63,205,107,126,63,181,116,126,63,120,125,126,63,23,134,126,63,146,142,126,63,233,150,126,63,28,159,126,63,44,167,126,63,26,175,126,63,229,182,126,63,142,190,126,63,22,198,126,63,124,205,126,63,194,212,126,63,231,219,126,63,235,226,126,63,208,233,126,63,149,240,126,63,59,247,126,63,195,253,126,63,44,4,127,63,118,10,127,63,163,16,127,63,179,22,127,63,165,28,127,63,123,34,127,63,52,40,127,63,210,45,127,63,83,51,127,63,186,56,127,63,5,62,127,63,53,67,127,63,75,72,127,63,72,77,127,63,42,82,127,63,243,86,127,63,163,91,127,63,58,96,127,63,185,100,127,63,32,105,127,63,111,109,127,63,166,113,127,63,199,117,127,63,208,121,127,63,196,125,127,63,161,129,127,63,104,133,127,63,25,137,127,63,182,140,127,63,61,144,127,63,176,147,127,63,14,151,127,63,89,154,127,63,143,157,127,63,179,160,127,63,195,163,127,63,192,166,127,63,171,169,127,63,132,172,127,63,74,175,127,63,255,177,127,63,163,180,127,63,53,183,127,63,183,185,127,63,40,188,127,63,137,190,127,63,217,192,127,63,26,195,127,63,76,197,127,63,111,199,127,63,130,201,127,63,135,203,127,63,126,205,127,63,102,207,127,63,65,209,127,63,14,211,127,63,205,212,127,63,128,214,127,63,38,216,127,63,191,217,127,63,76,219,127,63,204,220,127,63,65,222,127,63,170,223,127,63,8,225,127,63,91,226,127,63,163,227,127,63,224,228,127,63,19,230,127,63,59,231,127,63,90,232,127,63,110,233,127,63,122,234,127,63,124,235,127,63,116,236,127,63,100,237,127,63,75,238,127,63,42,239,127,63,1,240,127,63,207,240,127,63,149,241,127,63,84,242,127,63,12,243,127,63,188,243,127,63,101,244,127,63,7,245,127,63,162,245,127,63,55,246,127,63,198,246,127,63,78,247,127,63,209,247,127,63,77,248,127,63,196,248,127,63,54,249,127,63,162,249,127,63,9,250,127,63,108,250,127,63,201,250,127,63,34,251,127,63,118,251,127,63,198,251,127,63,18,252,127,63,89,252,127,63,157,252,127,63,221,252,127,63,26,253,127,63,83,253,127,63,136,253,127,63,187,253,127,63,234,253,127,63,22,254,127,63,64,254,127,63,103,254,127,63,139,254,127,63,173,254,127,63,204,254,127,63,234,254,127,63,5,255,127,63,30,255,127,63,53,255,127,63,74,255,127,63,94,255,127,63,112,255,127,63,128,255,127,63,143,255,127,63,157,255,127,63,169,255,127,63,180,255,127,63,191,255,127,63,200,255,127,63,208,255,127,63,215,255,127,63,221,255,127,63,227,255,127,63,232,255,127,63,236,255,127,63,239,255,127,63,243,255,127,63,245,255,127,63,248,255,127,63,249,255,127,63,251,255,127,63,252,255,127,63,253,255,127,63,254,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,204,8,120,52,171,134,11,54,79,202,193,54,190,233,61,55,238,247,156,55,192,123,234,55,43,192,35,56,161,2,90,56,189,2,140,56,76,228,174,56,227,165,213,56,199,35,0,57,168,100,23,57,134,149,48,57,104,182,75,57,64,199,104,57,7,228,131,57,105,92,148,57,191,204,165,57,6,53,184,57,65,149,203,57,105,237,223,57,120,61,245,57,184,194,5,58,166,98,17,58,134,126,29,58,81,22,42,58,9,42,55,58,172,185,68,58,54,197,82,58,165,76,97,58,250,79,112,58,47,207,127,58,34,229,135,58,154,32,144,58,255,153,152,58,80,81,161,58,139,70,170,58,174,121,179,58,186,234,188,58,171,153,198,58,129,134,208,58,58,177,218,58,212,25,229,58,79,192,239,58,167,164,250,58,109,227,2,59,117,147,8,59,105,98,14,59,73,80,20,59,19,93,26,59,199,136,32,59,100,211,38,59,232,60,45,59,83,197,51,59,164,108,58,59,218,50,65,59,243,23,72,59,239,27,79,59,204,62,86,59,138,128,93,59,38,225,100,59,161,96,108,59,249,254,115,59,45,188,123,59,29,204,129,59,145,201,133,59,113,214,137,59,188,242,141,59,113,30,146,59,145,89,150,59,26,164,154,59,12,254,158,59,102,103,163,59,40,224,167,59,80,104,172,59,222,255,176,59,209,166,181,59,40,93,186,59,228,34,191,59,2,248,195,59,131,220,200,59,101,208,205,59,168,211,210,59,74,230,215,59,76,8,221,59,172,57,226,59,105,122,231,59,131,202,236,59,249,41,242,59,202,152,247,59,245,22,253,59,60,82,1,60,170,32,4,60,196,246,6,60,137,212,9,60,249,185,12,60,19,167,15,60,216,155,18,60,69,152,21,60,92,156,24,60,26,168,27,60,129,187,30,60,143,214,33,60,69,249,36,60,160,35,40,60,162,85,43,60,73,143,46,60,149,208,49,60,133,25,53,60,26,106,56,60,81,194,59,60,44,34,63,60,168,137,66,60,199,248,69,60,134,111,73,60,230,237,76,60,231,115,80,60,134,1,84,60,197,150,87,60,162,51,91,60,28,216,94,60,52,132,98,60,232,55,102,60,56,243,105,60,35,182,109,60,170,128,113,60,202,82,117,60,131,44,121,60,214,13,125,60,96,123,128,60,161,115,130,60,174,111,132,60,134,111,134,60,40,115,136,60,149,122,138,60,205,133,140,60,206,148,142,60,152,167,144,60,44,190,146,60,136,216,148,60,173,246,150,60,154,24,153,60,78,62,155,60,202,103,157,60,13,149,159,60,23,198,161,60,231,250,163,60,125,51,166,60,217,111,168,60,249,175,170,60,223,243,172,60,137,59,175,60,247,134,177,60,40,214,179,60,29,41,182,60,213,127,184,60,80,218,186,60,140,56,189,60,138,154,191,60,74,0,194,60,202,105,196,60,11,215,198,60],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE),
allocate([12,72,201,60,205,188,203,60,77,53,206,60,140,177,208,60,137,49,211,60,69,181,213,60,189,60,216,60,243,199,218,60,230,86,221,60,149,233,223,60,0,128,226,60,39,26,229,60,8,184,231,60,164,89,234,60,250,254,236,60,9,168,239,60,210,84,242,60,83,5,245,60,141,185,247,60,126,113,250,60,39,45,253,60,134,236,255,60,206,87,1,61,52,187,2,61,117,32,4,61,144,135,5,61,133,240,6,61,84,91,8,61,253,199,9,61,128,54,11,61,219,166,12,61,16,25,14,61,29,141,15,61,3,3,17,61,193,122,18,61,87,244,19,61,197,111,21,61,10,237,22,61,39,108,24,61,26,237,25,61,228,111,27,61,132,244,28,61,251,122,30,61,71,3,32,61,105,141,33,61,96,25,35,61,45,167,36,61,206,54,38,61,67,200,39,61,141,91,41,61,171,240,42,61,156,135,44,61,96,32,46,61,248,186,47,61,99,87,49,61,160,245,50,61,175,149,52,61,144,55,54,61,67,219,55,61,199,128,57,61,28,40,59,61,65,209,60,61,56,124,62,61,254,40,64,61,148,215,65,61,250,135,67,61,47,58,69,61,51,238,70,61,5,164,72,61,166,91,74,61,20,21,76,61,80,208,77,61,90,141,79,61,49,76,81,61,212,12,83,61,68,207,84,61,128,147,86,61,135,89,88,61,90,33,90,61,248,234,91,61,97,182,93,61,148,131,95,61,145,82,97,61,88,35,99,61,232,245,100,61,65,202,102,61,100,160,104,61,78,120,106,61,1,82,108,61,123,45,110,61,188,10,112,61,197,233,113,61,148,202,115,61,41,173,117,61,133,145,119,61,166,119,121,61,140,95,123,61,55,73,125,61,166,52,127,61,237,144,128,61,105,136,129,61,198,128,130,61,5,122,131,61,37,116,132,61,39,111,133,61,9,107,134,61,204,103,135,61,112,101,136,61,244,99,137,61,88,99,138,61,157,99,139,61,193,100,140,61,196,102,141,61,167,105,142,61,106,109,143,61,11,114,144,61,139,119,145,61,234,125,146,61,40,133,147,61,67,141,148,61,61,150,149,61,20,160,150,61,201,170,151,61,92,182,152,61,203,194,153,61,24,208,154,61,66,222,155,61,72,237,156,61,42,253,157,61,233,13,159,61,132,31,160,61,250,49,161,61,76,69,162,61,122,89,163,61,130,110,164,61,101,132,165,61,35,155,166,61,188,178,167,61,47,203,168,61,124,228,169,61,162,254,170,61,163,25,172,61,124,53,173,61,47,82,174,61,187,111,175,61,31,142,176,61,92,173,177,61,113,205,178,61,94,238,179,61,35,16,181,61,192,50,182,61,52,86,183,61,127,122,184,61,160,159,185,61,153,197,186,61,104,236,187,61,13,20,189,61,136,60,190,61,217,101,191,61,255,143,192,61,250,186,193,61,202,230,194,61,111,19,196,61,233,64,197,61,55,111,198,61,89,158,199,61,78,206,200,61,23,255,201,61,179,48,203,61,35,99,204,61,101,150,205,61,121,202,206,61,96,255,207,61,25,53,209,61,164,107,210,61,0,163,211,61,45,219,212,61,44,20,214,61,251,77,215,61,154,136,216,61,10,196,217,61,74,0,219,61,89,61,220,61,56,123,221,61,230,185,222,61,99,249,223,61,174,57,225,61,200,122,226,61,176,188,227,61,102,255,228,61,233,66,230,61,58,135,231,61,88,204,232,61,66,18,234,61,249,88,235,61,124,160,236,61,203,232,237,61,230,49,239,61,204,123,240,61,125,198,241,61,249,17,243,61,63,94,244,61,79,171,245,61,42,249,246,61,206,71,248,61,60,151,249,61,114,231,250,61,114,56,252,61,58,138,253,61,202,220,254,61,17,24,0,62,33,194,0,62,149,108,1,62,108,23,2,62,166,194,2,62,68,110,3,62,69,26,4,62,168,198,4,62,111,115,5,62,152,32,6,62,35,206,6,62,17,124,7,62,98,42,8,62,20,217,8,62,40,136,9,62,157,55,10,62,117,231,10,62,173,151,11,62,71,72,12,62,66,249,12,62,158,170,13,62,91,92,14,62,120,14,15,62,246,192,15,62,213,115,16,62,19,39,17,62,177,218,17,62,175,142,18,62,13,67,19,62,202,247,19,62,231,172,20,62,99,98,21,62,62,24,22,62,120,206,22,62,16,133,23,62,7,60,24,62,92,243,24,62,16,171,25,62,33,99,26,62,145,27,27,62,94,212,27,62,137,141,28,62,17,71,29,62,246,0,30,62,56,187,30,62,215,117,31,62,211,48,32,62,43,236,32,62,224,167,33,62,241,99,34,62,93,32,35,62,38,221,35,62,74,154,36,62,202,87,37,62,165,21,38,62,219,211,38,62,108,146,39,62,88,81,40,62,159,16,41,62,64,208,41,62,59,144,42,62,144,80,43,62,63,17,44,62,72,210,44,62,170,147,45,62,102,85,46,62,122,23,47,62,232,217,47,62,175,156,48,62,206,95,49,62,69,35,50,62,21,231,50,62,61,171,51,62,189,111,52,62,148,52,53,62,195,249,53,62,73,191,54,62,38,133,55,62,91,75,56,62,230,17,57,62,199,216,57,62,255,159,58,62,141,103,59,62,113,47,60,62,171,247,60,62,59,192,61,62,31,137,62,62,89,82,63,62,232,27,64,62,204,229,64,62,5,176,65,62,146,122,66,62,115,69,67,62,168,16,68,62,49,220,68,62,14,168,69,62,62,116,70,62,194,64,71,62,152,13,72,62,193,218,72,62,61,168,73,62,12,118,74,62,44,68,75,62,159,18,76,62,100,225,76,62,122,176,77,62,225,127,78,62,154,79,79,62,164,31,80,62,255,239,80,62,170,192,81,62,166,145,82,62,242,98,83,62,141,52,84,62,121,6,85,62,180,216,85,62,63,171,86,62,25,126,87,62,65,81,88,62,185,36,89,62,126,248,89,62,147,204,90,62,245,160,91,62,165,117,92,62,163,74,93,62,238,31,94,62,135,245,94,62,109,203,95,62,159,161,96,62,30,120,97,62,233,78,98,62,1,38,99,62,100,253,99,62,19,213,100,62,14,173,101,62,84,133,102,62,229,93,103,62,193,54,104,62,231,15,105,62,88,233,105,62,19,195,106,62,24,157,107,62,103,119,108,62,255,81,109,62,224,44,110,62,11,8,111,62,126,227,111,62,58,191,112,62,62,155,113,62,139,119,114,62,31,84,115,62,251,48,116,62,31,14,117,62,138,235,117,62,59,201,118,62,52,167,119,62,115,133,120,62,248,99,121,62,196,66,122,62,213,33,123,62,44,1,124,62,200,224,124,62,170,192,125,62,208,160,126,62,59,129,127,62,245,48,128,62,111,161,128,62,11,18,129,62,201,130,129,62,168,243,129,62,169,100,130,62,204,213,130,62,15,71,131,62,117,184,131,62,251,41,132,62,162,155,132,62,107,13,133,62,84,127,133,62,93,241,133,62,136,99,134,62,210,213,134,62,61,72,135,62,200,186,135,62,116,45,136,62,63,160,136,62,42,19,137,62,52,134,137,62,94,249,137,62,168,108,138,62,17,224,138,62,153,83,139,62,64,199,139,62,6,59,140,62,235,174,140,62,239,34,141,62,17,151,141,62,82,11,142,62,177,127,142,62,46,244,142,62,201,104,143,62,130,221,143,62,89,82,144,62,78,199,144,62,96,60,145,62,143,177,145,62,220,38,146,62,70,156,146,62,205,17,147,62,113,135,147,62,50,253,147,62,16,115,148,62,9,233,148,62,32,95,149,62,82,213,149,62,161,75,150,62,12,194,150,62,146,56,151,62,53,175,151,62,243,37,152,62,204,156,152,62,193,19,153,62,209,138,153,62,252,1,154,62,66,121,154,62,163,240,154,62,31,104,155,62,181,223,155,62,101,87,156,62,48,207,156,62,21,71,157,62,20,191,157,62,45,55,158,62,96,175,158,62,172,39,159,62,18,160,159,62,145,24,160,62,41,145,160,62,218,9,161,62,165,130,161,62,136,251,161,62,132,116,162,62,152,237,162,62,197,102,163,62,10,224,163,62,103,89,164,62,220,210,164,62,105,76,165,62,14,198,165,62,202,63,166,62,158,185,166,62,137,51,167,62,139,173,167,62,164,39,168,62,213,161,168,62,27,28,169,62,121,150,169,62,237,16,170,62,119,139,170,62,24,6,171,62,206,128,171,62,155,251,171,62,125,118,172,62,117,241,172,62,130,108,173,62,165,231,173,62,221,98,174,62,42,222,174,62,140,89,175,62,2,213,175,62,142,80,176,62,46,204,176,62,226,71,177,62,170,195,177,62,135,63,178,62,119,187,178,62,124,55,179,62,148,179,179,62,191,47,180,62,254,171,180,62,80,40,181,62,181,164,181,62,45,33,182,62,184,157,182,62,85,26,183,62,5,151,183,62,199,19,184,62,156,144,184,62,130,13,185,62,123,138,185,62,133,7,186,62,161,132,186,62,206,1,187,62,13,127,187,62,93,252,187,62,190,121,188,62,48,247,188,62,178,116,189,62,70,242,189,62,233,111,190,62,157,237,190,62,98,107,191,62,54,233,191,62,26,103,192,62,14,229,192,62,17,99,193,62,36,225,193,62,70,95,194,62,119,221,194,62,184,91,195,62,7,218,195,62,100,88,196,62,209,214,196,62,75,85,197,62,212,211,197,62,107,82,198,62,16,209,198,62,195,79,199,62,132,206,199,62,82,77,200,62,45,204,200,62,21,75,201,62,11,202,201,62,13,73,202,62,29,200,202,62,56,71,203,62,97,198,203,62,149,69,204,62,214,196,204,62,34,68,205,62,123,195,205,62,223,66,206,62,79,194,206,62,202,65,207,62,81,193,207,62,226,64,208,62,127,192,208,62,38,64,209,62,216,191,209,62,148,63,210,62,91,191,210,62,44,63,211,62,7,191,211,62,235,62,212,62,218,190,212,62,210,62,213,62,211,190,213,62,222,62,214,62,242,190,214,62,15,63,215,62,53,191,215,62,99,63,216,62,154,191,216,62,217,63,217,62,32,192,217,62,112,64,218,62,199,192,218,62,38,65,219,62,140,193,219,62,250,65,220,62,112,194,220,62,236,66,221,62,112,195,221,62,250,67,222,62,139,196,222,62,34,69,223,62,192,197,223,62,100,70,224,62,14,199,224,62,189,71,225,62,115,200,225,62,46,73,226,62,239,201,226,62,181,74,227,62,127,203,227,62,79,76,228,62,36,205,228,62,253,77,229,62,219,206,229,62,190,79,230,62,164,208,230,62,142,81,231,62,125,210,231,62,111,83,232,62,100,212,232,62,93,85,233,62,89,214,233,62,89,87,234,62,91,216,234,62,96,89,235,62,104,218,235,62,114,91,236,62,126,220,236,62,141,93,237,62,158,222,237,62,176,95,238,62,196,224,238,62,218,97,239,62,241,226,239,62,10,100,240,62,35,229,240,62,62,102,241,62,89,231,241,62,116,104,242,62,145,233,242,62,173,106,243,62,202,235,243,62,230,108,244,62,3,238,244,62,31,111,245,62,59,240,245,62,86,113,246,62,112,242,246,62,137,115,247,62,161,244,247,62,184,117,248,62,206,246,248,62,226,119,249,62,244,248,249,62,4,122,250,62,18,251,250,62,30,124,251,62,40,253,251,62,47,126,252,62,52,255,252,62,54,128,253,62,52,1,254,62,48,130,254,62,40,3,255,62,29,132,255,62,135,2,0,63,254,66,0,63,115,131,0,63,230,195,0,63,86,4,1,63,197,68,1,63,49,133,1,63,155,197,1,63,3,6,2,63,103,70,2,63,202,134,2,63,42,199,2,63,135,7,3,63,225,71,3,63,56,136,3,63,141,200,3,63,222,8,4,63,44,73,4,63,119,137,4,63,191,201,4,63,3,10,5,63,68,74,5,63,130,138,5,63,188,202,5,63,242,10,6,63,36,75,6,63,83,139,6,63,126,203,6,63,165,11,7,63,199,75,7,63,230,139,7,63,1,204,7,63,23,12,8,63,41,76,8,63,54,140,8,63,63,204,8,63,67,12,9,63,67,76,9,63,62,140,9,63,52,204,9,63,37,12,10,63,18,76,10,63,249,139,10,63,219,203,10,63,184,11,11,63,144,75,11,63,98,139,11,63,47,203,11,63,246,10,12,63,184,74,12,63,116,138,12,63,43,202,12,63,219,9,13,63,134,73,13,63,43,137,13,63,202,200,13,63,98,8,14,63,245,71,14,63,129,135,14,63,7,199,14,63,135,6,15,63,0,70,15,63,114,133,15,63,222,196,15,63,67,4,16,63,161,67,16,63,249,130,16,63,73,194,16,63,147,1,17,63,213,64,17,63,17,128,17,63,69,191,17,63,114,254,17,63,151,61,18,63,181,124,18,63,203,187,18,63,218,250,18,63,225,57,19,63,225,120,19,63,216,183,19,63,200,246,19,63,176,53,20,63,143,116,20,63,103,179,20,63,54,242,20,63,253,48,21,63,188,111,21,63,114,174,21,63,32,237,21,63,197,43,22,63,98,106,22,63,246,168,22,63,129,231,22,63,3,38,23,63,125,100,23,63,237,162,23,63,84,225,23,63,178,31,24,63,7,94,24,63,83,156,24,63,149,218,24,63,206,24,25,63,253,86,25,63,35,149,25,63,63,211,25,63,82,17,26,63,90,79,26,63,89,141,26,63,78,203,26,63,57,9,27,63,25,71,27,63,240,132,27,63,188,194,27,63,126,0,28,63,54,62,28,63,227,123,28,63,134,185,28,63,30,247,28,63,172,52,29,63,47,114,29,63,167,175,29,63,20,237,29,63,118,42,30,63,206,103,30,63,26,165,30,63,91,226,30,63,145,31,31,63,188,92,31,63,219,153,31,63,239,214,31,63,247,19,32,63,244,80,32,63,230,141,32,63,203,202,32,63,165,7,33,63,115,68,33,63,53,129,33,63,235,189,33,63,150,250,33,63,52,55,34,63,198,115,34,63,75,176,34,63,197,236,34,63,50,41,35,63,146,101,35,63,230,161,35,63,46,222,35,63,105,26,36,63,151,86,36,63,185,146,36,63,205,206,36,63,213,10,37,63,208,70,37,63,190,130,37,63,158,190,37,63,114,250,37,63,56,54,38,63,241,113,38,63,157,173,38,63,59,233,38,63,204,36,39,63,79,96,39,63,197,155,39,63,45,215,39,63,135,18,40,63,211,77,40,63,18,137,40,63,66,196,40,63,101,255,40,63,121,58,41,63,128,117,41,63,120,176,41,63,98,235,41,63,62,38,42,63,11,97,42,63,202,155,42,63,122,214,42,63,28,17,43,63,175,75,43,63,52,134,43,63,170,192,43,63,16,251,43,63,105,53,44,63,178,111,44,63,236,169,44,63,23,228,44,63,51,30,45,63,64,88,45,63,61,146,45,63,43,204,45,63,10,6,46,63,218,63,46,63,154,121,46,63,74,179,46,63,235,236,46,63,124,38,47,63,254,95,47,63,112,153,47,63,210,210,47,63,36,12,48,63,102,69,48,63,152,126,48,63,186,183,48,63,204,240,48,63,205,41,49,63,191,98,49,63,160,155,49,63,113,212,49,63,49,13,50,63,225,69,50,63,128,126,50,63,15,183,50,63,141,239,50,63,251,39,51,63,87,96,51,63,163,152,51,63,222,208,51,63,8,9,52,63,34,65,52,63,42,121,52,63,33,177,52,63,7,233,52,63,219,32,53,63,159,88,53,63,81,144,53,63,242,199,53,63,129,255,53,63,255,54,54,63,108,110,54,63,198,165,54,63,16,221,54,63,71,20,55,63,109,75,55,63,129,130,55,63,131,185,55,63,116,240,55,63,82,39,56,63,30,94,56,63,217,148,56,63,129,203,56,63,23,2,57,63,155,56,57,63,13,111,57,63,108,165,57,63,185,219,57,63,244,17,58,63,28,72,58,63,50,126,58,63,53,180,58,63,38,234,58,63,4,32,59,63,207,85,59,63,135,139,59,63,45,193,59,63,192,246,59,63,64,44,60,63,173,97,60,63,7,151,60,63,78,204,60,63,130,1,61,63,163,54,61,63,177,107,61,63,171,160,61,63,146,213,61,63,102,10,62,63,39,63,62,63,212,115,62,63,110,168,62,63,244,220,62,63,103,17,63,63,198,69,63,63,17,122,63,63,73,174,63,63,109,226,63,63,126,22,64,63,122,74,64,63,99,126,64,63,56,178,64,63,248,229,64,63,165,25,65,63,62,77,65,63,195,128,65,63,52,180,65,63,144,231,65,63,216,26,66,63,13,78,66,63,44,129,66,63,56,180,66,63,47,231,66,63,18,26,67,63,224,76,67,63,154,127,67,63,64,178,67,63,208,228,67,63,77,23,68,63,180,73,68,63,7,124,68,63,69,174,68,63,111,224,68,63,131,18,69,63,131,68,69,63,110,118,69,63,68,168,69,63,5,218,69,63,177,11,70,63,72,61,70,63,202,110,70,63,55,160,70,63,143,209,70,63,210,2,71,63,255,51,71,63,23,101,71,63,26,150,71,63,8,199,71,63,224,247,71,63,163,40,72,63,81,89,72,63,233,137,72,63,107,186,72,63,216,234,72,63,48,27,73,63,114,75,73,63,158,123,73,63,181,171,73,63,181,219,73,63,161,11,74,63,118,59,74,63,54,107,74,63,224,154,74,63,116,202,74,63,242,249,74,63,90,41,75,63,173,88,75,63,233,135,75,63,15,183,75,63,32,230,75,63,26,21,76,63,254,67,76,63,204,114,76,63,132,161,76,63,38,208,76,63,177,254,76,63,38,45,77,63,133,91,77,63,206,137,77,63,0,184,77,63,28,230,77,63,34,20,78,63,17,66,78,63,234,111,78,63,172,157,78,63,88,203,78,63,238,248,78,63,108,38,79,63,213,83,79,63,38,129,79,63,97,174,79,63,134,219,79,63,147,8,80,63,138,53,80,63,107,98,80,63,52,143,80,63,231,187,80,63,131,232,80,63,8,21,81,63,119,65,81,63,206,109,81,63,15,154,81,63,57,198,81,63,76,242,81,63,71,30,82,63,44,74,82,63,250,117,82,63,177,161,82,63,81,205,82,63,218,248,82,63,76,36,83,63,166,79,83,63,234,122,83,63,22,166,83,63,44,209,83,63,42,252,83,63,17,39,84,63,224,81,84,63,153,124,84,63,58,167,84,63,196,209,84,63,54,252,84,63,146,38,85,63,214,80,85,63,2,123,85,63,24,165,85,63,22,207,85,63,252,248,85,63,204,34,86,63,131,76,86,63,36,118,86,63,172,159,86,63,30,201,86,63,120,242,86,63,186,27,87,63,229,68,87,63,248,109,87,63,244,150,87,63,216,191,87,63,165,232,87,63,90,17,88,63,248,57,88,63,126,98,88,63,236,138,88,63,67,179,88,63,130,219,88,63,169,3,89,63,185,43,89,63,177,83,89,63,145,123,89,63,90,163,89,63,11,203,89,63,164,242,89,63,37,26,90,63,143,65,90,63,225,104,90,63,27,144,90,63,62,183,90,63,72,222,90,63,59,5,91,63,22,44,91,63,217,82,91,63,133,121,91,63,24,160,91,63,148,198,91,63,248,236,91,63,68,19,92,63,120,57,92,63,149,95,92,63,153,133,92,63,134,171,92,63,91,209,92,63,24,247,92,63,189,28,93,63,74,66,93,63,191,103,93,63,28,141,93,63,98,178,93,63,143,215,93,63,165,252,93,63,162,33,94,63,136,70,94,63,86,107,94,63,11,144,94,63,169,180,94,63,47,217,94,63,157,253,94,63,243,33,95,63,49,70,95,63,88,106,95,63,102,142,95,63,92,178,95,63,59,214,95,63,1,250,95,63,175,29,96,63,70,65,96,63,196,100,96,63,43,136,96,63,122,171,96,63,176,206,96,63,207,241,96,63,214,20,97,63,197,55,97,63,155,90,97,63,90,125,97,63,1,160,97,63,144,194,97,63,8,229,97,63,103,7,98,63,174,41,98,63,221,75,98,63,245,109,98,63,244,143,98,63,220,177,98,63,171,211,98,63,99,245,98,63,3,23,99,63,139,56,99,63,251,89,99,63,83,123,99,63,147,156,99,63,188,189,99,63,204,222,99,63,197,255,99,63,166,32,100,63,110,65,100,63,32,98,100,63,185,130,100,63,58,163,100,63,164,195,100,63,245,227,100,63,47,4,101,63,82,36,101,63,92,68,101,63,78,100,101,63,41,132,101,63,236,163,101,63,151,195,101,63,43,227,101,63,167,2,102,63,11,34,102,63,87,65,102,63,139,96,102,63,168,127,102,63,174,158,102,63,155,189,102,63,113,220,102,63,47,251,102,63,214,25,103,63,101,56,103,63,220,86,103,63,59,117,103,63,132,147,103,63,180,177,103,63,205,207,103,63,206,237,103,63,184,11,104,63,138,41,104,63,69,71,104,63,233,100,104,63,116,130,104,63,233,159,104,63,69,189,104,63,139,218,104,63,185,247,104,63,207,20,105,63,207,49,105,63,182,78,105,63,135,107,105,63,64,136,105,63,225,164,105,63,108,193,105,63,223,221,105,63,59,250,105,63,127,22,106,63,172,50,106,63,195,78,106,63,193,106,106,63,169,134,106,63,121,162,106,63,51,190,106,63,213,217,106,63,96,245,106,63,212,16,107,63,48,44,107,63,118,71,107,63,165,98,107,63,188,125,107,63,189,152,107,63,167,179,107,63,121,206,107,63,53,233,107,63,218,3,108,63,104,30,108,63,223,56,108,63,63,83,108,63,136,109,108,63,187,135,108,63,214,161,108,63,219,187,108,63,201,213,108,63,161,239,108,63,97,9,109,63,11,35,109,63,159,60,109,63,27,86,109,63,129,111,109,63,209,136,109,63,9,162,109,63,44,187,109,63,56,212,109,63,45,237,109,63,12,6,110,63,212,30,110,63,134,55,110,63,33,80,110,63,166,104,110,63,21,129,110,63,110,153,110,63,176,177,110,63,220,201,110,63,241,225,110,63,241,249,110,63,218,17,111,63,173,41,111,63,106,65,111,63,16,89,111,63,161,112,111,63,28,136,111,63,128,159,111,63,207,182,111,63,7,206,111,63,42,229,111,63,54,252,111,63,45,19,112,63,14,42,112,63,217,64,112,63,142,87,112,63,46,110,112,63,184,132,112,63,43,155,112,63,138,177,112,63,210,199,112,63,5,222,112,63,35,244,112,63,42,10,113,63,29,32,113,63,249,53,113,63,193,75,113,63,114,97,113,63,15,119,113,63,150,140,113,63,7,162,113,63,99,183,113,63,170,204,113,63,220,225,113,63,249,246,113,63,0,12,114,63,242,32,114,63,207,53,114,63,151,74,114,63,73,95,114,63,231,115,114,63,112,136,114,63,227,156,114,63,66,177,114,63,140,197,114,63,193,217,114,63,225,237,114,63,236,1,115,63,227,21,115,63,197,41,115,63,146,61,115,63,74,81,115,63,238,100,115,63,125,120,115,63,248,139,115,63,94,159,115,63,175,178,115,63,236,197,115,63,21,217,115,63,41,236,115,63,41,255,115,63,21,18,116,63,236,36,116,63,175,55,116,63,94,74,116,63,248,92,116,63,127,111,116,63,241,129,116,63,80,148,116,63,154,166,116,63,208,184,116,63,242,202,116,63,1,221,116,63,251,238,116,63,226,0,117,63,181,18,117,63,116,36,117,63,31,54,117,63,183,71,117,63,59,89,117,63,171,106,117,63,8,124,117,63,81,141,117,63,135,158,117,63,169,175,117,63,184,192,117,63,179,209,117,63,155,226,117,63,112,243,117,63,50,4,118,63,224,20,118,63,123,37,118,63,3,54,118,63,120,70,118,63,217,86,118,63,40,103,118,63,100,119,118,63,140,135,118,63,162,151,118,63,165,167,118,63,149,183,118,63,114,199,118,63,61,215,118,63,245,230,118,63,154,246,118,63,44,6,119,63,172,21,119,63,26,37,119,63,117,52,119,63,189,67,119,63,243,82,119,63,22,98,119,63,40,113,119,63,39,128,119,63,19,143,119,63,238,157,119,63,182,172,119,63,108,187,119,63,16,202,119,63,162,216,119,63,34,231,119,63,144,245,119,63,236,3,120,63,55,18,120,63,111,32,120,63,150,46,120,63,170,60,120,63,174,74,120,63,159,88,120,63,127,102,120,63,77,116,120,63,10,130,120,63,181,143,120,63,79,157,120,63,215,170,120,63,78,184,120,63,180,197,120,63,8,211,120,63,76,224,120,63,126,237,120,63,158,250,120,63,174,7,121,63,173,20,121,63,155,33,121,63,119,46,121,63,67,59,121,63,254,71,121,63,168,84,121,63,66,97,121,63,202,109,121,63,66,122,121,63,169,134,121,63,0,147,121,63,70,159,121,63,124,171,121,63,161,183,121,63,181,195,121,63,186,207,121,63,173,219,121,63,145,231,121,63,100,243,121,63,40,255,121,63,219,10,122,63,126,22,122,63,16,34,122,63,147,45,122,63,6,57,122,63,105,68,122,63,188,79,122,63,255,90,122,63,51,102,122,63,86,113,122,63,106,124,122,63,111,135,122,63,99,146,122,63,72,157,122,63,30,168,122,63,228,178,122,63,155,189,122,63,66,200,122,63,218,210,122,63,99,221,122,63,221,231,122,63,71,242,122,63,162,252,122,63,238,6,123,63,43,17,123,63,89,27,123,63,120,37,123,63,137,47,123,63,138,57,123,63,124,67,123,63,96,77,123,63,53,87,123,63,252,96,123,63,179,106,123,63,92,116,123,63,247,125,123,63,131,135,123,63,1,145,123,63,112,154,123,63,209,163,123,63,36,173,123,63,104,182,123,63,158,191,123,63,198,200,123,63,224,209,123,63,236,218,123,63,234,227,123,63,218,236,123,63,188,245,123,63,144,254,123,63,86,7,124,63,14,16,124,63,185,24,124,63,86,33,124,63,230,41,124,63,104,50,124,63,220,58,124,63,67,67,124,63,156,75,124,63,232,83,124,63,39,92,124,63,88,100,124,63,124,108,124,63,147,116,124,63,157,124,124,63,153,132,124,63,137,140,124,63,107,148,124,63,65,156,124,63,9,164,124,63,197,171,124,63,116,179,124,63,22,187,124,63,172,194,124,63,52,202,124,63,176,209,124,63,32,217,124,63,131,224,124,63,217,231,124,63,35,239,124,63,97,246,124,63,146,253,124,63,183,4,125,63,208,11,125,63,221,18,125,63,221,25,125,63,209,32,125,63,185,39,125,63,150,46,125,63,102,53,125,63,42,60,125,63,227,66,125,63,143,73,125,63,48,80,125,63,197,86,125,63,78,93,125,63,204,99,125,63,62,106,125,63,165,112,125,63,0,119,125,63,80,125,125,63,148,131,125,63,205,137,125,63,251,143,125,63,29,150,125,63,52,156,125,63,64,162,125,63,65,168,125,63,55,174,125,63,34,180,125,63,2,186,125,63,215,191,125,63,161,197,125,63,96,203,125,63,21,209,125,63,190,214,125,63,93,220,125,63,242,225,125,63,124,231,125,63,251,236,125,63,112,242,125,63,218,247,125,63,58,253,125,63,143,2,126,63,219,7,126,63,28,13,126,63,82,18,126,63,127,23,126,63,161,28,126,63,186,33,126,63,200,38,126,63,204,43,126,63,199,48,126,63,183,53,126,63,158,58,126,63,123,63,126,63,78,68,126,63,23,73,126,63,215,77,126,63,141,82,126,63,58,87,126,63,221,91,126,63,118,96,126,63,6,101,126,63,141,105,126,63,10,110,126,63,126,114,126,63,233,118,126,63,75,123,126,63,164,127,126,63,243,131,126,63,57,136,126,63,119,140,126,63,171,144,126,63,214,148,126,63,249,152,126,63,18,157,126,63,35,161,126,63,44,165,126,63,43,169,126,63,34,173,126,63,16,177,126,63,246,180,126,63,211,184,126,63,167,188,126,63,115,192,126,63,55,196,126,63,243,199,126,63,166,203,126,63,81,207,126,63,243,210,126,63,142,214,126,63,32,218,126,63,171,221,126,63,45,225,126,63,167,228,126,63,26,232,126,63,132,235,126,63,231,238,126,63,66,242,126,63,149,245,126,63,224,248,126,63,36,252,126,63,96,255,126,63,148,2,127,63,193,5,127,63,230,8,127,63,4,12,127,63,27,15,127,63,42,18,127,63,50,21,127,63,50,24,127,63,43,27,127,63,29,30,127,63,8,33,127,63,236,35,127,63,201,38,127,63,158,41,127,63,109,44,127,63,53,47,127,63,246,49,127,63,175,52,127,63,99,55,127,63,15,58,127,63,181,60,127,63,83,63,127,63,236,65,127,63,125,68,127,63,8,71,127,63,141,73,127,63,11,76,127,63,131,78,127,63,244,80,127,63,95,83,127,63,195,85,127,63,33,88,127,63,121,90,127,63,203,92,127,63,23,95,127,63,92,97,127,63,155,99,127,63,213,101,127,63,8,104,127,63,54,106,127,63,93,108,127,63,127,110,127,63,155,112,127,63,177,114,127,63,193,116,127,63,203,118,127,63,208,120,127,63,207,122,127,63,201,124,127,63,189,126,127,63,171,128,127,63,148,130,127,63,120,132,127,63,86,134,127,63,47,136,127,63,2,138,127,63,209,139,127,63,153,141,127,63,93,143,127,63,28,145,127,63,213,146,127,63,137,148,127,63,57,150,127,63,227,151,127,63,136,153,127,63,40,155,127,63,196,156,127,63,90,158,127,63,236,159,127,63,121,161,127,63,1,163,127,63,132,164,127,63,3,166,127,63,125,167,127,63,242,168,127,63,99,170,127,63,207,171,127,63,55,173,127,63,154,174,127,63,249,175,127,63,84,177,127,63,170,178,127,63,251,179,127,63,73,181,127,63,146,182,127,63,215,183,127,63,24,185,127,63,85,186,127,63,141,187,127,63,193,188,127,63,242,189,127,63,30,191,127,63,71,192,127,63,107,193,127,63,140,194,127,63,168,195,127,63,193,196,127,63,214,197,127,63,231,198,127,63,245,199,127,63,255,200,127,63,5,202,127,63,7,203,127,63,6,204,127,63,1,205,127,63,249,205,127,63,237,206,127,63,222,207,127,63,203,208,127,63,181,209,127,63,156,210,127,63,127,211,127,63,95,212,127,63,59,213,127,63,20,214,127,63,234,214,127,63,189,215,127,63,141,216,127,63,90,217,127,63,35,218,127,63,233,218,127,63,173,219,127,63,109,220,127,63,43,221,127,63,229,221,127,63,156,222,127,63,81,223,127,63,3,224,127,63,178,224,127,63,94,225,127,63,7,226,127,63,174,226,127,63,82,227,127,63,243,227,127,63,146,228,127,63,46,229,127,63,199,229,127,63,94,230,127,63,242,230,127,63,132,231,127,63,19,232,127,63,160,232,127,63,42,233,127,63,178,233,127,63,56,234,127,63,187,234,127,63,60,235,127,63,187,235,127,63,55,236,127,63,177,236,127,63,41,237,127,63,159,237,127,63,18,238,127,63,132,238,127,63,243,238,127,63,96,239,127,63,204,239,127,63,53,240,127,63,156,240,127,63,1,241,127,63,101,241,127,63,198,241,127,63,37,242,127,63,131,242,127,63,222,242,127,63,56,243,127,63,144,243,127,63,231,243,127,63,59,244,127,63,142,244,127,63,223,244,127,63,46,245,127,63,124,245,127,63,200,245,127,63,19,246,127,63,91,246,127,63,163,246,127,63,233,246,127,63,45,247,127,63,111,247,127,63,177,247,127,63,240,247,127,63,47,248,127,63,108,248,127,63,167,248,127,63,225,248,127,63,26,249,127,63,82,249,127,63,136,249,127,63,188,249,127,63,240,249,127,63,34,250,127,63,83,250,127,63,131,250,127,63,178,250,127,63,224,250,127,63,12,251,127,63,55,251,127,63,97,251,127,63,138,251,127,63,178,251,127,63,217,251,127,63,255,251,127,63,36,252,127,63,72,252,127,63,107,252,127,63,141,252,127,63,173,252,127,63,205,252,127,63,237,252,127,63,11,253,127,63,40,253,127,63,69,253,127,63,96,253,127,63,123,253,127,63,149,253,127,63,174,253,127,63,199,253,127,63,222,253,127,63,245,253,127,63,12,254,127,63,33,254,127,63,54,254,127,63,74,254,127,63,93,254,127,63,112,254,127,63,130,254,127,63,148,254,127,63,165,254,127,63,181,254,127,63,197,254,127,63,212,254,127,63,227,254,127,63,241,254,127,63,254,254,127,63,11,255,127,63,24,255,127,63,36,255,127,63,47,255,127,63,59,255,127,63,69,255,127,63,79,255,127,63,89,255,127,63,99,255,127,63,108,255,127,63,116,255,127,63,124,255,127,63,132,255,127,63,140,255,127,63,147,255,127,63,154,255,127,63,160,255,127,63,166,255,127,63,172,255,127,63,178,255,127,63,183,255,127,63,188,255,127,63,193,255,127,63,197,255,127,63,202,255,127,63,206,255,127,63,209,255,127,63,213,255,127,63,216,255,127,63,220,255,127,63,223,255,127,63,225,255,127,63,228,255,127,63,230,255,127,63,233,255,127,63,235,255,127,63,237,255,127,63,239,255,127,63,240,255,127,63,242,255,127,63,243,255,127,63,245,255,127,63,246,255,127,63,247,255,127,63,248,255,127,63,249,255,127,63,250,255,127,63,251,255,127,63,251,255,127,63,252,255,127,63,252,255,127,63,253,255,127,63,253,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,198,63,120,51,98,136,11,53,151,200,193,53,80,233,61,54,183,247,156,54,46,124,234,54,153,192,35,55,244,2,90,55,56,3,140,55,227,228,174,55,177,166,213,55,108,36,0,56,146,101,23,56,201,150,48,56,18,184,75,56,81,201,104,56,94,229,131,56,29,94,148,56,229,206,165,56,167,55,184,56,128,152,203,56,85,241,223,56,36,66,245,56,126,197,5,57,238,101,17,57,99,130,29,57,207,26,42,57,63,47,55,57,179,191,68,57,30,204,82,57,141,84,97,57,243,88,112,57,94,217,127,57,227,234,135,57,18,39,144,57,64,161,152,57,105,89,161,57,146,79,170,57,181,131,179,57,215,245,188,57,245,165,198,57,14,148,208,57,34,192,218,57,46,42,229,57,57,210,239,57,60,184,250,57,27,238,2,58,22,159,8,58,13,111,14,58,0,94,20,58,239,107,26,58,218,152,32,58,192,228,38,58,161,79,45,58,124,217,51,58,83,130,58,58,37,74,65,58,240,48,72,58,182,54,79,58,116,91,86,58,45,159,93,58,222,1,101,58,136,131,108,58,42,36,116,58,196,227,123,58,44,225,129,58,241,223,133,58,49,238,137,58,238,11,142,58,37,57,146,58,215,117,150,58,5,194,154,58,174,29,159,58,209,136,163,58,110,3,168,58,134,141,172,58,24,39,177,58,36,208,181,58,169,136,186,58,169,80,191,58,33,40,196,58,19,15,201,58,126,5,206,58,98,11,211,58,191,32,216,58,148,69,221,58,225,121,226,58,166,189,231,58,227,16,237,58,152,115,242,58,196,229,247,58,103,103,253,58,65,124,1,59,137,76,4,59,141,36,7,59,76,4,10,59,198,235,12,59,251,218,15,59,235,209,18,59,149,208,21,59,251,214,24,59,26,229,27,59,244,250,30,59,136,24,34,59,215,61,37,59,223,106,40,59,161,159,43,59,29,220,46,59,83,32,50,59,66,108,53,59,234,191,56,59,76,27,60,59,103,126,63,59,59,233,66,59,199,91,70,59,12,214,73,59,10,88,77,59,193,225,80,59,48,115,84,59,86,12,88,59,53,173,91,59,204,85,95,59,26,6,99,59,32,190,102,59,222,125,106,59,82,69,110,59,127,20,114,59,97,235,117,59,251,201,121,59,76,176,125,59,41,207,128,59,8,202,130,59,194,200,132,59,87,203,134,59,198,209,136,59,17,220,138,59,55,234,140,59,55,252,142,59,18,18,145,59,199,43,147,59,87,73,149,59,194,106,151,59,6,144,153,59,37,185,155,59,30,230,157,59,241,22,160,59,158,75,162,59,37,132,164,59,134,192,166,59,192,0,169,59,212,68,171,59,193,140,173,59,137,216,175,59,41,40,178,59,163,123,180,59,245,210,182,59,33,46,185,59,38,141,187,59,4,240,189,59,186,86,192,59,73,193,194,59,177,47,197,59,242,161,199,59,10,24,202,59,251,145,204,59,196,15,207,59,102,145,209,59,223,22,212,59,49,160,214,59,90,45,217,59,91,190,219,59,51,83,222,59,227,235,224,59,107,136,227,59,201,40,230,59,255,204,232,59,12,117,235,59,240,32,238,59,171,208,240,59,61,132,243,59,165,59,246,59,228,246,248,59,250,181,251,59,229,120,254,59,212,159,0,60,32,5,2,60,87,108,3,60,121,213,4,60,134,64,6,60,126,173,7,60,96,28,9,60,45,141,10,60,229,255,11,60,136,116,13,60,21,235,14,60,141,99,16,60,239,221,17,60,59,90,19,60,114,216,20,60,147,88,22,60,158,218,23,60,147,94,25,60,115,228,26,60,60,108,28,60,240,245,29,60,141,129,31,60,20,15,33,60,133,158,34,60,224,47,36,60,36,195,37,60,82,88,39,60,105,239,40,60,106,136,42,60,84,35,44,60,40,192,45,60,229,94,47,60,139,255,48,60,26,162,50,60,146,70,52,60,243,236,53,60,61,149,55,60,112,63,57,60,140,235,58,60,145,153,60,60,126,73,62,60,84,251,63,60,18,175,65,60,185,100,67,60,72,28,69,60,192,213,70,60,31,145,72,60,103,78,74,60,151,13,76,60,175,206,77,60,176,145,79,60,152,86,81,60,103,29,83,60,31,230,84,60,190,176,86,60,69,125,88,60,179,75,90,60,9,28,92,60,71,238,93,60,107,194,95,60,119,152,97,60,106,112,99,60,68,74,101,60,5,38,103,60,173,3,105,60,60,227,106,60,178,196,108,60,14,168,110,60,81,141,112,60,123,116,114,60,139,93,116,60,130,72,118,60,95,53,120,60,34,36,122,60,203,20,124,60,90,7,126,60,208,251,127,60,22,249,128,60,54,245,129,60,74,242,130,60,80,240,131,60,73,239,132,60,53,239,133,60,19,240,134,60,229,241,135,60,169,244,136,60,95,248,137,60,8,253,138,60,164,2,140,60,50,9,141,60,178,16,142,60,37,25,143,60,139,34,144,60,226,44,145,60,44,56,146,60,104,68,147,60,150,81,148,60,182,95,149,60,201,110,150,60,205,126,151,60,196,143,152,60,172,161,153,60,135,180,154,60,83,200,155,60,17,221,156,60,193,242,157,60,98,9,159,60,245,32,160,60,122,57,161,60,241,82,162,60,89,109,163,60,178,136,164,60,253,164,165,60,57,194,166,60,103,224,167,60,134,255,168,60,151,31,170,60,152,64,171,60,139,98,172,60,111,133,173,60,68,169,174,60,10,206,175,60,193,243,176,60,105,26,178,60,2,66,179,60,139,106,180,60,6,148,181,60,113,190,182,60,205,233,183,60,26,22,185,60,87,67,186,60,133,113,187,60,163,160,188,60,177,208,189,60,177,1,191,60,160,51,192,60,128,102,193,60,80,154,194,60,16,207,195,60,193,4,197,60,97,59,198,60,242,114,199,60,114,171,200,60,227,228,201,60,67,31,203,60,147,90,204,60,211,150,205,60,3,212,206,60,34,18,208,60,49,81,209,60,48,145,210,60,30,210,211,60,252,19,213,60,201,86,214,60,133,154,215,60,49,223,216,60,204,36,218,60,86,107,219,60,208,178,220,60,56,251,221,60,144,68,223,60,214,142,224,60,12,218,225,60,48,38,227,60,67,115,228,60,69,193,229,60,54,16,231,60,21,96,232,60,227,176,233,60,160,2,235,60,75,85,236,60,228,168,237,60,108,253,238,60,226,82,240,60,70,169,241,60,153,0,243,60,218,88,244,60,8,178,245,60,37,12,247,60,48,103,248,60,41,195,249,60,15,32,251,60,228,125,252,60,166,220,253,60,85,60,255,60,121,78,0,61,63,255,0,61,123,176,1,61,46,98,2,61,88,20,3,61,248,198,3,61,15,122,4,61,156,45,5,61,161,225,5,61,27,150,6,61,12,75,7,61,116,0,8,61,82,182,8,61,167,108,9,61,113,35,10,61,179,218,10,61,106,146,11,61,152,74,12,61,60,3,13,61,87,188,13,61,231,117,14,61,238,47,15,61,107,234,15,61,94,165,16,61,199,96,17,61,166,28,18,61,251,216,18,61,198,149,19,61,7,83,20,61,190,16,21,61,234,206,21,61,141,141,22,61,165,76,23,61,52,12,24,61,56,204,24,61,177,140,25,61,161,77,26,61,6,15,27,61,224,208,27,61,48,147,28,61,246,85,29,61,49,25,30,61,226,220,30,61,8,161,31,61,164,101,32,61,181,42,33,61,59,240,33,61,55,182,34,61,168,124,35,61,142,67,36,61,233,10,37,61,186,210,37,61,255,154,38,61,186,99,39,61,234,44,40,61,143,246,40,61,168,192,41,61,55,139,42,61,59,86,43,61,180,33,44,61,161,237,44,61,4,186,45,61,219,134,46,61,38,84,47,61,231,33,48,61,28,240,48,61,198,190,49,61,229,141,50,61,120,93,51,61,127,45,52,61,251,253,52,61,236,206,53,61,81,160,54,61,42,114,55,61,120,68,56,61,58,23,57,61,112,234,57,61,27,190,58,61,58,146,59,61,204,102,60,61,211,59,61,61,79,17,62,61,62,231,62,61,161,189,63,61,120,148,64,61,195,107,65,61,130,67,66,61,181,27,67,61,92,244,67,61,118,205,68,61,4,167,69,61,6,129,70,61,124,91,71,61,101,54,72,61,194,17,73,61,146,237,73,61,214,201,74,61,141,166,75,61,184,131,76,61,86,97,77,61,104,63,78,61,236,29,79,61,229,252,79,61,80,220,80,61,46,188,81,61,128,156,82,61,69,125,83,61,125,94,84,61,40,64,85,61,69,34,86,61,214,4,87,61,218,231,87,61,81,203,88,61,58,175,89,61,150,147,90,61,101,120,91,61,167,93,92,61,91,67,93,61,130,41,94,61,28,16,95,61,40,247,95,61,167,222,96,61,152,198,97,61,251,174,98,61,209,151,99,61,25,129,100,61,212,106,101,61,0,85,102,61,159,63,103,61,176,42,104,61,51,22,105,61,41,2,106,61,144,238,106,61,105,219,107,61,180,200,108,61,113,182,109,61,160,164,110,61,65,147,111,61,84,130,112,61,216,113,113,61,206,97,114,61,54,82,115,61,15,67,116,61,89,52,117,61,22,38,118,61,67,24,119,61,226,10,120,61,243,253,120,61,117,241,121,61,104,229,122,61,204,217,123,61,162,206,124,61,232,195,125,61,160,185,126,61,201,175,127,61,49,83,128,61,183,206,128,61,117,74,129,61,107,198,129,61,154,66,130,61,1,191,130,61,160,59,131,61,120,184,131,61,136,53,132,61,209,178,132,61,81,48,133,61,10,174,133,61,251,43,134,61,37,170,134,61,134,40,135,61,32,167,135,61,242,37,136,61,252,164,136,61,62,36,137,61,184,163,137,61,106,35,138,61,84,163,138,61,118,35,139,61,209,163,139,61,99,36,140,61,45,165,140,61,46,38,141,61,104,167,141,61,218,40,142,61,131,170,142,61,100,44,143,61,125,174,143,61,206,48,144,61,86,179,144,61,23,54,145,61,14,185,145,61,62,60,146,61,165,191,146,61,67,67,147,61,26,199,147,61,39,75,148,61,109,207,148,61,234,83,149,61,158,216,149,61,138,93,150,61,173,226,150,61,7,104,151,61,153,237,151,61,98,115,152,61,99,249,152,61,155,127,153,61,10,6,154,61,176,140,154,61,142,19,155,61,163,154,155,61,239,33,156,61,114,169,156,61,44,49,157,61,29,185,157,61,69,65,158,61,165,201,158,61,59,82,159,61,8,219,159,61,13,100,160,61,72,237,160,61,186,118,161,61,99,0,162,61,67,138,162,61,90,20,163,61,167,158,163,61,43,41,164,61,230,179,164,61,216,62,165,61,0,202,165,61,95,85,166,61,245,224,166,61,193,108,167,61,196,248,167,61,254,132,168,61,110,17,169,61,20,158,169,61,241,42,170,61,4,184,170,61,78,69,171,61,206,210,171,61,133,96,172,61,113,238,172,61,149,124,173,61,238,10,174,61,126,153,174,61,67,40,175,61,63,183,175,61,114,70,176,61,218,213,176,61,120,101,177,61,77,245,177,61,88,133,178,61,152,21,179,61,15,166,179,61,187,54,180,61,158,199,180,61,182,88,181,61,4,234,181,61,137,123,182,61,67,13,183,61,50,159,183,61,88,49,184,61,179,195,184,61,68,86,185,61,11,233,185,61,7,124,186,61,57,15,187,61,160,162,187,61,61,54,188,61,16,202,188,61,24,94,189,61,85,242,189,61,200,134,190,61,112,27,191,61,78,176,191,61,97,69,192,61,170,218,192,61,39,112,193,61,218,5,194,61,194,155,194,61,224,49,195,61,50,200,195,61,186,94,196,61,119,245,196,61,104,140,197,61,143,35,198,61,235,186,198,61,124,82,199,61,66,234,199,61,61,130,200,61,108,26,201,61,209,178,201,61,106,75,202,61,57,228,202,61,59,125,203,61,115,22,204,61,224,175,204,61,129,73,205,61,86,227,205,61,97,125,206,61,159,23,207,61,19,178,207,61,187,76,208,61,151,231,208,61,168,130,209,61,237,29,210,61],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240),
allocate([103,185,210,61,21,85,211,61,248,240,211,61,14,141,212,61,89,41,213,61,216,197,213,61,140,98,214,61,115,255,214,61,143,156,215,61,223,57,216,61,99,215,216,61,27,117,217,61,7,19,218,61,38,177,218,61,122,79,219,61,2,238,219,61,189,140,220,61,173,43,221,61,208,202,221,61,39,106,222,61,178,9,223,61,112,169,223,61,98,73,224,61,136,233,224,61,226,137,225,61,111,42,226,61,47,203,226,61,35,108,227,61,74,13,228,61,165,174,228,61,52,80,229,61,245,241,229,61,234,147,230,61,19,54,231,61,110,216,231,61,253,122,232,61,191,29,233,61,180,192,233,61,221,99,234,61,56,7,235,61,199,170,235,61,136,78,236,61,125,242,236,61,164,150,237,61,255,58,238,61,140,223,238,61,76,132,239,61,63,41,240,61,101,206,240,61,189,115,241,61,73,25,242,61,7,191,242,61,247,100,243,61,26,11,244,61,112,177,244,61,248,87,245,61,179,254,245,61,160,165,246,61,192,76,247,61,18,244,247,61,151,155,248,61,77,67,249,61,55,235,249,61,82,147,250,61,159,59,251,61,31,228,251,61,209,140,252,61,181,53,253,61,203,222,253,61,19,136,254,61,141,49,255,61,57,219,255,61,140,66,0,62,148,151,0,62,181,236,0,62,238,65,1,62,65,151,1,62,173,236,1,62,49,66,2,62,206,151,2,62,132,237,2,62,83,67,3,62,59,153,3,62,59,239,3,62,84,69,4,62,134,155,4,62,209,241,4,62,52,72,5,62,176,158,5,62,68,245,5,62,242,75,6,62,183,162,6,62,150,249,6,62,141,80,7,62,156,167,7,62,196,254,7,62,5,86,8,62,94,173,8,62,207,4,9,62,89,92,9,62,252,179,9,62,183,11,10,62,138,99,10,62,118,187,10,62,122,19,11,62,150,107,11,62,203,195,11,62,24,28,12,62,125,116,12,62,250,204,12,62,144,37,13,62,62,126,13,62,4,215,13,62,227,47,14,62,217,136,14,62,232,225,14,62,15,59,15,62,78,148,15,62,165,237,15,62,20,71,16,62,155,160,16,62,58,250,16,62,241,83,17,62,193,173,17,62,168,7,18,62,167,97,18,62,190,187,18,62,237,21,19,62,51,112,19,62,146,202,19,62,9,37,20,62,151,127,20,62,61,218,20,62,251,52,21,62,209,143,21,62,190,234,21,62,195,69,22,62,224,160,22,62,21,252,22,62,97,87,23,62,197,178,23,62,64,14,24,62,211,105,24,62,126,197,24,62,64,33,25,62,26,125,25,62,11,217,25,62,20,53,26,62,52,145,26,62,108,237,26,62,187,73,27,62,34,166,27,62,160,2,28,62,53,95,28,62,226,187,28,62,166,24,29,62,129,117,29,62,116,210,29,62,126,47,30,62,159,140,30,62,215,233,30,62,39,71,31,62,141,164,31,62,11,2,32,62,160,95,32,62,76,189,32,62,16,27,33,62,234,120,33,62,219,214,33,62,228,52,34,62,3,147,34,62,58,241,34,62,135,79,35,62,235,173,35,62,103,12,36,62,249,106,36,62,162,201,36,62,98,40,37,62,56,135,37,62,38,230,37,62,42,69,38,62,69,164,38,62,119,3,39,62,192,98,39,62,31,194,39,62,149,33,40,62,33,129,40,62,197,224,40,62,126,64,41,62,79,160,41,62,54,0,42,62,51,96,42,62,72,192,42,62,114,32,43,62,179,128,43,62,11,225,43,62,121,65,44,62,253,161,44,62,152,2,45,62,73,99,45,62,16,196,45,62,238,36,46,62,226,133,46,62,237,230,46,62,13,72,47,62,68,169,47,62,145,10,48,62,245,107,48,62,110,205,48,62,254,46,49,62,163,144,49,62,95,242,49,62,49,84,50,62,25,182,50,62,23,24,51,62,43,122,51,62,85,220,51,62,148,62,52,62,234,160,52,62,86,3,53,62,216,101,53,62,111,200,53,62,28,43,54,62,223,141,54,62,184,240,54,62,167,83,55,62,171,182,55,62,197,25,56,62,245,124,56,62,59,224,56,62,150,67,57,62,7,167,57,62,141,10,58,62,41,110,58,62,219,209,58,62,162,53,59,62,126,153,59,62,112,253,59,62,120,97,60,62,149,197,60,62,199,41,61,62,15,142,61,62,108,242,61,62,222,86,62,62,102,187,62,62,3,32,63,62,181,132,63,62,125,233,63,62,90,78,64,62,75,179,64,62,83,24,65,62,111,125,65,62,160,226,65,62,231,71,66,62,66,173,66,62,179,18,67,62,57,120,67,62,211,221,67,62,131,67,68,62,71,169,68,62,33,15,69,62,15,117,69,62,18,219,69,62,42,65,70,62,87,167,70,62,153,13,71,62,240,115,71,62,91,218,71,62,219,64,72,62,111,167,72,62,25,14,73,62,215,116,73,62,169,219,73,62,144,66,74,62,140,169,74,62,157,16,75,62,193,119,75,62,251,222,75,62,73,70,76,62,171,173,76,62,34,21,77,62,173,124,77,62,76,228,77,62,0,76,78,62,200,179,78,62,164,27,79,62,149,131,79,62,154,235,79,62,179,83,80,62,225,187,80,62,34,36,81,62,120,140,81,62,225,244,81,62,95,93,82,62,241,197,82,62,151,46,83,62,81,151,83,62,31,0,84,62,1,105,84,62,247,209,84,62,0,59,85,62,30,164,85,62,79,13,86,62,149,118,86,62,238,223,86,62,91,73,87,62,219,178,87,62,112,28,88,62,24,134,88,62,211,239,88,62,163,89,89,62,134,195,89,62,124,45,90,62,134,151,90,62,164,1,91,62,213,107,91,62,26,214,91,62,114,64,92,62,221,170,92,62,92,21,93,62,239,127,93,62,148,234,93,62,77,85,94,62,26,192,94,62,249,42,95,62,236,149,95,62,242,0,96,62,11,108,96,62,55,215,96,62,119,66,97,62,202,173,97,62,47,25,98,62,168,132,98,62,52,240,98,62,210,91,99,62,132,199,99,62,73,51,100,62,32,159,100,62,11,11,101,62,8,119,101,62,24,227,101,62,59,79,102,62,113,187,102,62,186,39,103,62,21,148,103,62,131,0,104,62,3,109,104,62,151,217,104,62,60,70,105,62,245,178,105,62,192,31,106,62,157,140,106,62,141,249,106,62,144,102,107,62,165,211,107,62,204,64,108,62,6,174,108,62,82,27,109,62,176,136,109,62,33,246,109,62,164,99,110,62,57,209,110,62,225,62,111,62,154,172,111,62,102,26,112,62,68,136,112,62,52,246,112,62,55,100,113,62,75,210,113,62,113,64,114,62,169,174,114,62,243,28,115,62,80,139,115,62,190,249,115,62,61,104,116,62,207,214,116,62,115,69,117,62,40,180,117,62,239,34,118,62,200,145,118,62,179,0,119,62,175,111,119,62,189,222,119,62,221,77,120,62,14,189,120,62,80,44,121,62,165,155,121,62,10,11,122,62,130,122,122,62,10,234,122,62,164,89,123,62,80,201,123,62,13,57,124,62,219,168,124,62,186,24,125,62,171,136,125,62,173,248,125,62,192,104,126,62,228,216,126,62,26,73,127,62,96,185,127,62,220,20,128,62,16,77,128,62,77,133,128,62,147,189,128,62,225,245,128,62,55,46,129,62,150,102,129,62,253,158,129,62,109,215,129,62,229,15,130,62,102,72,130,62,238,128,130,62,128,185,130,62,25,242,130,62,187,42,131,62,102,99,131,62,24,156,131,62,211,212,131,62,150,13,132,62,98,70,132,62,53,127,132,62,17,184,132,62,245,240,132,62,226,41,133,62,214,98,133,62,211,155,133,62,216,212,133,62,229,13,134,62,250,70,134,62,23,128,134,62,61,185,134,62,106,242,134,62,160,43,135,62,221,100,135,62,35,158,135,62,112,215,135,62,198,16,136,62,35,74,136,62,137,131,136,62,247,188,136,62,108,246,136,62,233,47,137,62,111,105,137,62,252,162,137,62,145,220,137,62,46,22,138,62,211,79,138,62,127,137,138,62,52,195,138,62,240,252,138,62,180,54,139,62,128,112,139,62,84,170,139,62,47,228,139,62,18,30,140,62,253,87,140,62,239,145,140,62,233,203,140,62,235,5,141,62,245,63,141,62,6,122,141,62,31,180,141,62,63,238,141,62,103,40,142,62,150,98,142,62,205,156,142,62,12,215,142,62,82,17,143,62,159,75,143,62,245,133,143,62,81,192,143,62,181,250,143,62,33,53,144,62,147,111,144,62,14,170,144,62,143,228,144,62,25,31,145,62,169,89,145,62,65,148,145,62,224,206,145,62,134,9,146,62,52,68,146,62,233,126,146,62,165,185,146,62,105,244,146,62,52,47,147,62,6,106,147,62,223,164,147,62,191,223,147,62,167,26,148,62,150,85,148,62,139,144,148,62,136,203,148,62,140,6,149,62,152,65,149,62,170,124,149,62,195,183,149,62,227,242,149,62,11,46,150,62,57,105,150,62,111,164,150,62,171,223,150,62,238,26,151,62,56,86,151,62,138,145,151,62,226,204,151,62,65,8,152,62,167,67,152,62,19,127,152,62,135,186,152,62,1,246,152,62,130,49,153,62,10,109,153,62,153,168,153,62,47,228,153,62,203,31,154,62,110,91,154,62,24,151,154,62,200,210,154,62,127,14,155,62,61,74,155,62,2,134,155,62,205,193,155,62,158,253,155,62,119,57,156,62,85,117,156,62,59,177,156,62,39,237,156,62,25,41,157,62,18,101,157,62,18,161,157,62,24,221,157,62,36,25,158,62,55,85,158,62,80,145,158,62,112,205,158,62,150,9,159,62,195,69,159,62,246,129,159,62,47,190,159,62,111,250,159,62,180,54,160,62,1,115,160,62,83,175,160,62,172,235,160,62,11,40,161,62,112,100,161,62,219,160,161,62,77,221,161,62,196,25,162,62,66,86,162,62,198,146,162,62,81,207,162,62,225,11,163,62,119,72,163,62,20,133,163,62,182,193,163,62,95,254,163,62,13,59,164,62,194,119,164,62,125,180,164,62,61,241,164,62,4,46,165,62,208,106,165,62,162,167,165,62,123,228,165,62,89,33,166,62,61,94,166,62,39,155,166,62,23,216,166,62,12,21,167,62,7,82,167,62,8,143,167,62,15,204,167,62,28,9,168,62,46,70,168,62,70,131,168,62,100,192,168,62,136,253,168,62,177,58,169,62,223,119,169,62,20,181,169,62,78,242,169,62,141,47,170,62,211,108,170,62,29,170,170,62,109,231,170,62,195,36,171,62,31,98,171,62,127,159,171,62,230,220,171,62,81,26,172,62,194,87,172,62,57,149,172,62,181,210,172,62,54,16,173,62,189,77,173,62,73,139,173,62,218,200,173,62,113,6,174,62,13,68,174,62,174,129,174,62,85,191,174,62,0,253,174,62,177,58,175,62,103,120,175,62,35,182,175,62,227,243,175,62,169,49,176,62,116,111,176,62,68,173,176,62,25,235,176,62,243,40,177,62,210,102,177,62,182,164,177,62,160,226,177,62,142,32,178,62,129,94,178,62,121,156,178,62,119,218,178,62,121,24,179,62,128,86,179,62,140,148,179,62,157,210,179,62,178,16,180,62,205,78,180,62,236,140,180,62,16,203,180,62,57,9,181,62,103,71,181,62,154,133,181,62,209,195,181,62,13,2,182,62,78,64,182,62,147,126,182,62,221,188,182,62,44,251,182,62,127,57,183,62,215,119,183,62,52,182,183,62,149,244,183,62,251,50,184,62,101,113,184,62,212,175,184,62,71,238,184,62,191,44,185,62,59,107,185,62,188,169,185,62,65,232,185,62,202,38,186,62,88,101,186,62,235,163,186,62,129,226,186,62,28,33,187,62,188,95,187,62,95,158,187,62,7,221,187,62,180,27,188,62,100,90,188,62,25,153,188,62,210,215,188,62,143,22,189,62,80,85,189,62,22,148,189,62,223,210,189,62,173,17,190,62,127,80,190,62,85,143,190,62,47,206,190,62,13,13,191,62,239,75,191,62,213,138,191,62,191,201,191,62,173,8,192,62,159,71,192,62,149,134,192,62,143,197,192,62,141,4,193,62,143,67,193,62,148,130,193,62,158,193,193,62,171,0,194,62,188,63,194,62,209,126,194,62,234,189,194,62,6,253,194,62,38,60,195,62,74,123,195,62,113,186,195,62,157,249,195,62,204,56,196,62,254,119,196,62,52,183,196,62,110,246,196,62,171,53,197,62,236,116,197,62,49,180,197,62,121,243,197,62,196,50,198,62,19,114,198,62,102,177,198,62,188,240,198,62,21,48,199,62,114,111,199,62,210,174,199,62,54,238,199,62,157,45,200,62,7,109,200,62,117,172,200,62,230,235,200,62,90,43,201,62,209,106,201,62,76,170,201,62,202,233,201,62,75,41,202,62,208,104,202,62,88,168,202,62,226,231,202,62,112,39,203,62,1,103,203,62,149,166,203,62,45,230,203,62,199,37,204,62,100,101,204,62,4,165,204,62,168,228,204,62,78,36,205,62,248,99,205,62,164,163,205,62,83,227,205,62,5,35,206,62,186,98,206,62,114,162,206,62,45,226,206,62,234,33,207,62,171,97,207,62,110,161,207,62,52,225,207,62,253,32,208,62,200,96,208,62,150,160,208,62,103,224,208,62,59,32,209,62,17,96,209,62,234,159,209,62,198,223,209,62,164,31,210,62,133,95,210,62,104,159,210,62,78,223,210,62,55,31,211,62,33,95,211,62,15,159,211,62,255,222,211,62,241,30,212,62,230,94,212,62,221,158,212,62,215,222,212,62,211,30,213,62,209,94,213,62,210,158,213,62,213,222,213,62,219,30,214,62,226,94,214,62,236,158,214,62,248,222,214,62,7,31,215,62,24,95,215,62,42,159,215,62,63,223,215,62,87,31,216,62,112,95,216,62,139,159,216,62,169,223,216,62,200,31,217,62,234,95,217,62,14,160,217,62,51,224,217,62,91,32,218,62,133,96,218,62,176,160,218,62,222,224,218,62,13,33,219,62,63,97,219,62,114,161,219,62,167,225,219,62,222,33,220,62,23,98,220,62,82,162,220,62,142,226,220,62,204,34,221,62,12,99,221,62,78,163,221,62,146,227,221,62,215,35,222,62,29,100,222,62,102,164,222,62,176,228,222,62,252,36,223,62,73,101,223,62,152,165,223,62,232,229,223,62,58,38,224,62,142,102,224,62,227,166,224,62,57,231,224,62,145,39,225,62,234,103,225,62,69,168,225,62,161,232,225,62,255,40,226,62,94,105,226,62,190,169,226,62,32,234,226,62,131,42,227,62,231,106,227,62,76,171,227,62,179,235,227,62,27,44,228,62,132,108,228,62,238,172,228,62,90,237,228,62,199,45,229,62,52,110,229,62,163,174,229,62,19,239,229,62,133,47,230,62,247,111,230,62,106,176,230,62,222,240,230,62,83,49,231,62,202,113,231,62,65,178,231,62,185,242,231,62,50,51,232,62,172,115,232,62,38,180,232,62,162,244,232,62,31,53,233,62,156,117,233,62,26,182,233,62,153,246,233,62,25,55,234,62,153,119,234,62,26,184,234,62,156,248,234,62,31,57,235,62,162,121,235,62,38,186,235,62,170,250,235,62,47,59,236,62,181,123,236,62,59,188,236,62,194,252,236,62,73,61,237,62,209,125,237,62,89,190,237,62,226,254,237,62,107,63,238,62,245,127,238,62,127,192,238,62,10,1,239,62,149,65,239,62,32,130,239,62,171,194,239,62,55,3,240,62,196,67,240,62,80,132,240,62,221,196,240,62,106,5,241,62,247,69,241,62,132,134,241,62,18,199,241,62,160,7,242,62,45,72,242,62,187,136,242,62,74,201,242,62,216,9,243,62,102,74,243,62,244,138,243,62,131,203,243,62,17,12,244,62,159,76,244,62,46,141,244,62,188,205,244,62,74,14,245,62,216,78,245,62,102,143,245,62,244,207,245,62,129,16,246,62,15,81,246,62,156,145,246,62,41,210,246,62,182,18,247,62,67,83,247,62,207,147,247,62,91,212,247,62,231,20,248,62,115,85,248,62,254,149,248,62,136,214,248,62,19,23,249,62,157,87,249,62,38,152,249,62,175,216,249,62,56,25,250,62,192,89,250,62,72,154,250,62,207,218,250,62,86,27,251,62,220,91,251,62,97,156,251,62,230,220,251,62,106,29,252,62,238,93,252,62,113,158,252,62,243,222,252,62,117,31,253,62,245,95,253,62,118,160,253,62,245,224,253,62,116,33,254,62,241,97,254,62,110,162,254,62,235,226,254,62,102,35,255,62,224,99,255,62,90,164,255,62,211,228,255,62,165,18,0,63,225,50,0,63,27,83,0,63,86,115,0,63,144,147,0,63,201,179,0,63,2,212,0,63,58,244,0,63,114,20,1,63,169,52,1,63,224,84,1,63,22,117,1,63,76,149,1,63,129,181,1,63,181,213,1,63,233,245,1,63,28,22,2,63,78,54,2,63,128,86,2,63,178,118,2,63,226,150,2,63,18,183,2,63,65,215,2,63,112,247,2,63,157,23,3,63,203,55,3,63,247,87,3,63,35,120,3,63,78,152,3,63,120,184,3,63,161,216,3,63,202,248,3,63,242,24,4,63,25,57,4,63,63,89,4,63,101,121,4,63,137,153,4,63,173,185,4,63,208,217,4,63,243,249,4,63,20,26,5,63,52,58,5,63,84,90,5,63,115,122,5,63,145,154,5,63,173,186,5,63,202,218,5,63,229,250,5,63,255,26,6,63,24,59,6,63,48,91,6,63,72,123,6,63,94,155,6,63,116,187,6,63,136,219,6,63,155,251,6,63,174,27,7,63,191,59,7,63,208,91,7,63,223,123,7,63,237,155,7,63,250,187,7,63,7,220,7,63,18,252,7,63,28,28,8,63,37,60,8,63,44,92,8,63,51,124,8,63,57,156,8,63,61,188,8,63,64,220,8,63,67,252,8,63,68,28,9,63,68,60,9,63,66,92,9,63,64,124,9,63,60,156,9,63,55,188,9,63,49,220,9,63,41,252,9,63,33,28,10,63,23,60,10,63,12,92,10,63,255,123,10,63,242,155,10,63,227,187,10,63,211,219,10,63,193,251,10,63,174,27,11,63,154,59,11,63,133,91,11,63,110,123,11,63,86,155,11,63,60,187,11,63,33,219,11,63,5,251,11,63,231,26,12,63,200,58,12,63,168,90,12,63,134,122,12,63,98,154,12,63,62,186,12,63,23,218,12,63,240,249,12,63,199,25,13,63,156,57,13,63,112,89,13,63,66,121,13,63,19,153,13,63,227,184,13,63,176,216,13,63,125,248,13,63,72,24,14,63,17,56,14,63,216,87,14,63,159,119,14,63,99,151,14,63,38,183,14,63,232,214,14,63,167,246,14,63,101,22,15,63,34,54,15,63,221,85,15,63,150,117,15,63,78,149,15,63,4,181,15,63,184,212,15,63,106,244,15,63,27,20,16,63,202,51,16,63,120,83,16,63,36,115,16,63,206,146,16,63,118,178,16,63,28,210,16,63,193,241,16,63,100,17,17,63,6,49,17,63,165,80,17,63,67,112,17,63,223,143,17,63,121,175,17,63,17,207,17,63,167,238,17,63,60,14,18,63,206,45,18,63,95,77,18,63,238,108,18,63,123,140,18,63,7,172,18,63,144,203,18,63,23,235,18,63,157,10,19,63,32,42,19,63,162,73,19,63,34,105,19,63,159,136,19,63,27,168,19,63,149,199,19,63,13,231,19,63,131,6,20,63,247,37,20,63,104,69,20,63,216,100,20,63,70,132,20,63,178,163,20,63,27,195,20,63,131,226,20,63,233,1,21,63,76,33,21,63,174,64,21,63,13,96,21,63,106,127,21,63,197,158,21,63,31,190,21,63,117,221,21,63,202,252,21,63,29,28,22,63,109,59,22,63,188,90,22,63,8,122,22,63,82,153,22,63,153,184,22,63,223,215,22,63,34,247,22,63,100,22,23,63,162,53,23,63,223,84,23,63,26,116,23,63,82,147,23,63,136,178,23,63,187,209,23,63,237,240,23,63,28,16,24,63,73,47,24,63,115,78,24,63,155,109,24,63,193,140,24,63,228,171,24,63,6,203,24,63,36,234,24,63,65,9,25,63,91,40,25,63,115,71,25,63,136,102,25,63,155,133,25,63,171,164,25,63,185,195,25,63,197,226,25,63,206,1,26,63,213,32,26,63,217,63,26,63,219,94,26,63,218,125,26,63,215,156,26,63,210,187,26,63,202,218,26,63,191,249,26,63,178,24,27,63,162,55,27,63,144,86,27,63,123,117,27,63,100,148,27,63,74,179,27,63,46,210,27,63,15,241,27,63,237,15,28,63,201,46,28,63,162,77,28,63,121,108,28,63,77,139,28,63,31,170,28,63,237,200,28,63,185,231,28,63,131,6,29,63,74,37,29,63,14,68,29,63,207,98,29,63,142,129,29,63,74,160,29,63,3,191,29,63,186,221,29,63,110,252,29,63,31,27,30,63,205,57,30,63,121,88,30,63,34,119,30,63,200,149,30,63,107,180,30,63,12,211,30,63,170,241,30,63,69,16,31,63,221,46,31,63,114,77,31,63,5,108,31,63,148,138,31,63,33,169,31,63,171,199,31,63,50,230,31,63,182,4,32,63,56,35,32,63,182,65,32,63,50,96,32,63,170,126,32,63,32,157,32,63,147,187,32,63,3,218,32,63,112,248,32,63,218,22,33,63,65,53,33,63,165,83,33,63,6,114,33,63,100,144,33,63,191,174,33,63,23,205,33,63,108,235,33,63,190,9,34,63,13,40,34,63,89,70,34,63,162,100,34,63,232,130,34,63,43,161,34,63,107,191,34,63,167,221,34,63,225,251,34,63,24,26,35,63,75,56,35,63,123,86,35,63,168,116,35,63,211,146,35,63,249,176,35,63,29,207,35,63,62,237,35,63,91,11,36,63,118,41,36,63,141,71,36,63,161,101,36,63,177,131,36,63,191,161,36,63,201,191,36,63,208,221,36,63,212,251,36,63,213,25,37,63,210,55,37,63,204,85,37,63,195,115,37,63,183,145,37,63,167,175,37,63,148,205,37,63,126,235,37,63,101,9,38,63,72,39,38,63,40,69,38,63,4,99,38,63,221,128,38,63,179,158,38,63,134,188,38,63,85,218,38,63,33,248,38,63,233,21,39,63,174,51,39,63,112,81,39,63,46,111,39,63,233,140,39,63,160,170,39,63,84,200,39,63,4,230,39,63,178,3,40,63,91,33,40,63,1,63,40,63,164,92,40,63,67,122,40,63,223,151,40,63,120,181,40,63,12,211,40,63,158,240,40,63,43,14,41,63,182,43,41,63,60,73,41,63,192,102,41,63,63,132,41,63,187,161,41,63,52,191,41,63,169,220,41,63,26,250,41,63,136,23,42,63,242,52,42,63,89,82,42,63,188,111,42,63,28,141,42,63,119,170,42,63,208,199,42,63,36,229,42,63,117,2,43,63,194,31,43,63,12,61,43,63,82,90,43,63,148,119,43,63,211,148,43,63,14,178,43,63,69,207,43,63,120,236,43,63,168,9,44,63,212,38,44,63,252,67,44,63,33,97,44,63,66,126,44,63,95,155,44,63,120,184,44,63,142,213,44,63,159,242,44,63,173,15,45,63,184,44,45,63,190,73,45,63,193,102,45,63,191,131,45,63,186,160,45,63,177,189,45,63,165,218,45,63,148,247,45,63,128,20,46,63,103,49,46,63,75,78,46,63,43,107,46,63,7,136,46,63,224,164,46,63,180,193,46,63,132,222,46,63,81,251,46,63,26,24,47,63,222,52,47,63,159,81,47,63,92,110,47,63,21,139,47,63,202,167,47,63,123,196,47,63,40,225,47,63,209,253,47,63,118,26,48,63,23,55,48,63,180,83,48,63,77,112,48,63,226,140,48,63,115,169,48,63,0,198,48,63,137,226,48,63,14,255,48,63,142,27,49,63,11,56,49,63,132,84,49,63,248,112,49,63,105,141,49,63,214,169,49,63,62,198,49,63,162,226,49,63,2,255,49,63,95,27,50,63,182,55,50,63,10,84,50,63,90,112,50,63,166,140,50,63,237,168,50,63,48,197,50,63,111,225,50,63,170,253,50,63,225,25,51,63,19,54,51,63,66,82,51,63,108,110,51,63,146,138,51,63,180,166,51,63,209,194,51,63,234,222,51,63,0,251,51,63,16,23,52,63,29,51,52,63,37,79,52,63,41,107,52,63,41,135,52,63,37,163,52,63,28,191,52,63,15,219,52,63,253,246,52,63,232,18,53,63,206,46,53,63,176,74,53,63,141,102,53,63,102,130,53,63,59,158,53,63,11,186,53,63,215,213,53,63,159,241,53,63,98,13,54,63,33,41,54,63,220,68,54,63,146,96,54,63,68,124,54,63,241,151,54,63,154,179,54,63,63,207,54,63,223,234,54,63,123,6,55,63,18,34,55,63,165,61,55,63,52,89,55,63,190,116,55,63,67,144,55,63,196,171,55,63,65,199,55,63,185,226,55,63,45,254,55,63,156,25,56,63,7,53,56,63,109,80,56,63,207,107,56,63,44,135,56,63,133,162,56,63,217,189,56,63,40,217,56,63,115,244,56,63,186,15,57,63,252,42,57,63,57,70,57,63,114,97,57,63,166,124,57,63,214,151,57,63,1,179,57,63,40,206,57,63,74,233,57,63,103,4,58,63,128,31,58,63,148,58,58,63,163,85,58,63,174,112,58,63,180,139,58,63,182,166,58,63,179,193,58,63,171,220,58,63,159,247,58,63,142,18,59,63,120,45,59,63,94,72,59,63,63,99,59,63,27,126,59,63,243,152,59,63,197,179,59,63,148,206,59,63,93,233,59,63,34,4,60,63,226,30,60,63,157,57,60,63,84,84,60,63,5,111,60,63,178,137,60,63,91,164,60,63,254,190,60,63,157,217,60,63,55,244,60,63,204,14,61,63,93,41,61,63,232,67,61,63,111,94,61,63,241,120,61,63,110,147,61,63,231,173,61,63,91,200,61,63,201,226,61,63,51,253,61,63,152,23,62,63,249,49,62,63,84,76,62,63,171,102,62,63,252,128,62,63,73,155,62,63,145,181,62,63,212,207,62,63,19,234,62,63,76,4,63,63,128,30,63,63,176,56,63,63,219,82,63,63,0,109,63,63,33,135,63,63,61,161,63,63,84,187,63,63,102,213,63,63,115,239,63,63,123,9,64,63,127,35,64,63,125,61,64,63,118,87,64,63,106,113,64,63,90,139,64,63,68,165,64,63,42,191,64,63,10,217,64,63,229,242,64,63,188,12,65,63,141,38,65,63,90,64,65,63,33,90,65,63,228,115,65,63,161,141,65,63,89,167,65,63,13,193,65,63,187,218,65,63,100,244,65,63,8,14,66,63,167,39,66,63,65,65,66,63,214,90,66,63,102,116,66,63,241,141,66,63,119,167,66,63,248,192,66,63,115,218,66,63,234,243,66,63,91,13,67,63,199,38,67,63,47,64,67,63,145,89,67,63,238,114,67,63,69,140,67,63,152,165,67,63,230,190,67,63,46,216,67,63,113,241,67,63,175,10,68,63,232,35,68,63,28,61,68,63,75,86,68,63,116,111,68,63,153,136,68,63,184,161,68,63,210,186,68,63,230,211,68,63,246,236,68,63,0,6,69,63,5,31,69,63,5,56,69,63,0,81,69,63,245,105,69,63,230,130,69,63,209,155,69,63,182,180,69,63,151,205,69,63,114,230,69,63,72,255,69,63,25,24,70,63,229,48,70,63,171,73,70,63,108,98,70,63,40,123,70,63,222,147,70,63,143,172,70,63,59,197,70,63,226,221,70,63,131,246,70,63,31,15,71,63,182,39,71,63,71,64,71,63,211,88,71,63,90,113,71,63,220,137,71,63,88,162,71,63,207,186,71,63,64,211,71,63,172,235,71,63,19,4,72,63,116,28,72,63,209,52,72,63,39,77,72,63,121,101,72,63,197,125,72,63,11,150,72,63,77,174,72,63,137,198,72,63,191,222,72,63,240,246,72,63,28,15,73,63,66,39,73,63,99,63,73,63,127,87,73,63,149,111,73,63,166,135,73,63,177,159,73,63,183,183,73,63,183,207,73,63,178,231,73,63,168,255,73,63,152,23,74,63,131,47,74,63,104,71,74,63,72,95,74,63,34,119,74,63,247,142,74,63,199,166,74,63,145,190,74,63,85,214,74,63,20,238,74,63,206,5,75,63,130,29,75,63,49,53,75,63,218,76,75,63,126,100,75,63,28,124,75,63,181,147,75,63,72,171,75,63,213,194,75,63,93,218,75,63,224,241,75,63,93,9,76,63,213,32,76,63,71,56,76,63,179,79,76,63,26,103,76,63,124,126,76,63,216,149,76,63,46,173,76,63,127,196,76,63,202,219,76,63,16,243,76,63,80,10,77,63,139,33,77,63,192,56,77,63,240,79,77,63,26,103,77,63,62,126,77,63,93,149,77,63,118,172,77,63,137,195,77,63,151,218,77,63,160,241,77,63,163,8,78,63,160,31,78,63,151,54,78,63,137,77,78,63,118,100,78,63,93,123,78,63,62,146,78,63,25,169,78,63,239,191,78,63,192,214,78,63,138,237,78,63,79,4,79,63,15,27,79,63,201,49,79,63,125,72,79,63,43,95,79,63,212,117,79,63,119,140,79,63,21,163,79,63,172,185,79,63,63,208,79,63,203,230,79,63,82,253,79,63,211,19,80,63,79,42,80,63,197,64,80,63,53,87,80,63,159,109,80,63,4,132,80,63,99,154,80,63,189,176,80,63,16,199,80,63,94,221,80,63,167,243,80,63,233,9,81,63,38,32,81,63,93,54,81,63,143,76,81,63,187,98,81,63,225,120,81,63,1,143,81,63,28,165,81,63,48,187,81,63,64,209,81,63,73,231,81,63,77,253,81,63,75,19,82,63,67,41,82,63,53,63,82,63,34,85,82,63,9,107,82,63,234,128,82,63,198,150,82,63,155,172,82,63,107,194,82,63,53,216,82,63,250,237,82,63,185,3,83,63,113,25,83,63,37,47,83,63,210,68,83,63,121,90,83,63,27,112,83,63,183,133,83,63,77,155,83,63,222,176,83,63,104,198,83,63,237,219,83,63,108,241,83,63,230,6,84,63,89,28,84,63,199,49,84,63,46,71,84,63,145,92,84,63,237,113,84,63,67,135,84,63,148,156,84,63,223,177,84,63,35,199,84,63,99,220,84,63,156,241,84,63,207,6,85,63,253,27,85,63,37,49,85,63,71,70,85,63,99,91,85,63,121,112,85,63,138,133,85,63,149,154,85,63,153,175,85,63,152,196,85,63,146,217,85,63,133,238,85,63,114,3,86,63,90,24,86,63,60,45,86,63,24,66,86,63,238,86,86,63,190,107,86,63,136,128,86,63,76,149,86,63,11,170,86,63,196,190,86,63,118,211,86,63,35,232,86,63,203,252,86,63,108,17,87,63,7,38,87,63,156,58,87,63,44,79,87,63,182,99,87,63,58,120,87,63,183,140,87,63,47,161,87,63,162,181,87,63,14,202,87,63,116,222,87,63,213,242,87,63,47,7,88,63,132,27,88,63,211,47,88,63,28,68,88,63,95,88,88,63,156,108,88,63,211,128,88,63,4,149,88,63,47,169,88,63,85,189,88,63,116,209,88,63,142,229,88,63,162,249,88,63,175,13,89,63,183,33,89,63,185,53,89,63,181,73,89,63,171,93,89,63,155,113,89,63,134,133,89,63,106,153,89,63,72,173,89,63,33,193,89,63,243,212,89,63,192,232,89,63,135,252,89,63,71,16,90,63,2,36,90,63,183,55,90,63,102,75,90,63,15,95,90,63,178,114,90,63,79,134,90,63,230,153,90,63,119,173,90,63,3,193,90,63,136,212,90,63,7,232,90,63,129,251,90,63,244,14,91,63,98,34,91,63,201,53,91,63,43,73,91,63,135,92,91,63,220,111,91,63,44,131,91,63,118,150,91,63,186,169,91,63,248,188,91,63,47,208,91,63,97,227,91,63,141,246,91,63,179,9,92,63,212,28,92,63,238,47,92,63,2,67,92,63,16,86,92,63,24,105,92,63,26,124,92,63,23,143,92,63,13,162,92,63,253,180,92,63,232,199,92,63,204,218,92,63,171,237,92,63,131,0,93,63,86,19,93,63,34,38,93,63,233,56,93,63,169,75,93,63,100,94,93,63,24,113,93,63,199,131,93,63,112,150,93,63,18,169,93,63,175,187,93,63,70,206,93,63,215,224,93,63,97,243,93,63,230,5,94,63,101,24,94,63,222,42,94,63,81,61,94,63,190,79,94,63,36,98,94,63,133,116,94,63,224,134,94,63,53,153,94,63,132,171,94,63,205,189,94,63,16,208,94,63,77,226,94,63,132,244,94,63,181,6,95,63,224,24,95,63,5,43,95,63,36,61,95,63,61,79,95,63,80,97,95,63,93,115,95,63,101,133,95,63,102,151,95,63,97,169,95,63,86,187,95,63,69,205,95,63,46,223,95,63,18,241,95,63,239,2,96,63,198,20,96,63,151,38,96,63,98,56,96,63,40,74,96,63,231,91,96,63,160,109,96,63,84,127,96,63,1,145,96,63,168,162,96,63,73,180,96,63,229,197,96,63,122,215,96,63,10,233,96,63,147,250,96,63,22,12,97,63,148,29,97,63,11,47,97,63,125,64,97,63,232,81,97,63,77,99,97,63,173,116,97,63,6,134,97,63,90,151,97,63,167,168,97,63,239,185,97,63,48,203,97,63,108,220,97,63,162,237,97,63,209,254,97,63,251,15,98,63,30,33,98,63,60,50,98,63,84,67,98,63,101,84,98,63,113,101,98,63,119,118,98,63,119,135,98,63,112,152,98,63,100,169,98,63,82,186,98,63,58,203,98,63,28,220,98,63,247,236,98,63,205,253,98,63,157,14,99,63,103,31,99,63,43,48,99,63,233,64,99,63,161,81,99,63,83,98,99,63,255,114,99,63,165,131,99,63,69,148,99,63,224,164,99,63,116,181,99,63,2,198,99,63,138,214,99,63,13,231,99,63,137,247,99,63,255,7,100,63,112,24,100,63,218,40,100,63,62,57,100,63,157,73,100,63,246,89,100,63,72,106,100,63,149,122,100,63,219,138,100,63,28,155,100,63,87,171,100,63,140,187,100,63,186,203,100,63,227,219,100,63,6,236,100,63,35,252,100,63,58,12,101,63,75,28,101,63,86,44,101,63,91,60,101,63,91,76,101,63,84,92,101,63,71,108,101,63,53,124,101,63,28,140,101,63,254,155,101,63,217,171,101,63,175,187,101,63,126,203,101,63,72,219,101,63,12,235,101,63,202,250,101,63,130,10,102,63,52,26,102,63,224,41,102,63,134,57,102,63,38,73,102,63,193,88,102,63,85,104,102,63,227,119,102,63,108,135,102,63,238,150,102,63,107,166,102,63,226,181,102,63,83,197,102,63,190,212,102,63,35,228,102,63,130,243,102,63,219,2,103,63,46,18,103,63,124,33,103,63,195,48,103,63,5,64,103,63,64,79,103,63,118,94,103,63,166,109,103,63,208,124,103,63,244,139,103,63,18,155,103,63,42,170,103,63,61,185,103,63,73,200,103,63,80,215,103,63,80,230,103,63,75,245,103,63,64,4,104,63,47,19,104,63,24,34,104,63,251,48,104,63,217,63,104,63,176,78,104,63,130,93,104,63,78,108,104,63,20,123,104,63,212,137,104,63,142,152,104,63,66,167,104,63,240,181,104,63,153,196,104,63,60,211,104,63,217,225,104,63,112,240,104,63,1,255,104,63,140,13,105,63,17,28,105,63,145,42,105,63,11,57,105,63,127,71,105,63,237,85,105,63,85,100,105,63,183,114,105,63,20,129,105,63,106,143,105,63,187,157,105,63,6,172,105,63,75,186,105,63,139,200,105,63,196,214,105,63,248,228,105,63,38,243,105,63,78,1,106,63,112,15,106,63,141,29,106,63,163,43,106,63,180,57,106,63,191,71,106,63,196,85,106,63,196,99,106,63,189,113,106,63,177,127,106,63,159,141,106,63,135,155,106,63,106,169,106,63,70,183,106,63,29,197,106,63,238,210,106,63,186,224,106,63,127,238,106,63,63,252,106,63,249,9,107,63,173,23,107,63,91,37,107,63,4,51,107,63,167,64,107,63,68,78,107,63,219,91,107,63,109,105,107,63,249,118,107,63,127,132,107,63,255,145,107,63,122,159,107,63,238,172,107,63,94,186,107,63,199,199,107,63,42,213,107,63,136,226,107,63,224,239,107,63,51,253,107,63,128,10,108,63,198,23,108,63,8,37,108,63,67,50,108,63,121,63,108,63,169,76,108,63,211,89,108,63,248,102,108,63,23,116,108,63,48,129,108,63,68,142,108,63,82,155,108,63,90,168,108,63,92,181,108,63,89,194,108,63,80,207,108,63,65,220,108,63,45,233,108,63,19,246,108,63,243,2,109,63,206,15,109,63,163,28,109,63,114,41,109,63,60,54,109,63,0,67,109,63,190,79,109,63,119,92,109,63,42,105,109,63,215,117,109,63,127,130,109,63,33,143,109,63,189,155,109,63,84,168,109,63,229,180,109,63,113,193,109,63,247,205,109,63,119,218,109,63,242,230,109,63,103,243,109,63,214,255,109,63,64,12,110,63,164,24,110,63,3,37,110,63,91,49,110,63,175,61,110,63,253,73,110,63,69,86,110,63,135,98,110,63,196,110,110,63,252,122,110,63,45,135,110,63,90,147,110,63,128,159,110,63,161,171,110,63,189,183,110,63,211,195,110,63,227,207,110,63,238,219,110,63,243,231,110,63,243,243,110,63,237,255,110,63,226,11,111,63,209,23,111,63,186,35,111,63,158,47,111,63,125,59,111,63,85,71,111,63,41,83,111,63,247,94,111,63,191,106,111,63,130,118,111,63,63,130,111,63,247,141,111,63,169,153,111,63,86,165,111,63,253,176,111,63,159,188,111,63,59,200,111,63,210,211,111,63,99,223,111,63,239,234,111,63,117,246,111,63,246,1,112,63,114,13,112,63,231,24,112,63,88,36,112,63,195,47,112,63,40,59,112,63,137,70,112,63,227,81,112,63,56,93,112,63,136,104,112,63,210,115,112,63,23,127,112,63,87,138,112,63,145,149,112,63,197,160,112,63,244,171,112,63,30,183,112,63,66,194,112,63,97,205,112,63,123,216,112,63,143,227,112,63,157,238,112,63,167,249,112,63,171,4,113,63,169,15,113,63,162,26,113,63,150,37,113,63,132,48,113,63,109,59,113,63,81,70,113,63,47,81,113,63,8,92,113,63,219,102,113,63,170,113,113,63,114,124,113,63,54,135,113,63,244,145,113,63,173,156,113,63,96,167,113,63,14,178,113,63,183,188,113,63,91,199,113,63,249,209,113,63,146,220,113,63,37,231,113,63,179,241,113,63,60,252,113,63,192,6,114,63,62,17,114,63,183,27,114,63,43,38,114,63,154,48,114,63,3,59,114,63,103,69,114,63,197,79,114,63,31,90,114,63,115,100,114,63,194,110,114,63,11,121,114,63,79,131,114,63,143,141,114,63,200,151,114,63,253,161,114,63,44,172,114,63,87,182,114,63,123,192,114,63,155,202,114,63,182,212,114,63,203,222,114,63,219,232,114,63,230,242,114,63,235,252,114,63,236,6,115,63,231,16,115,63,221,26,115,63,206,36,115,63,186,46,115,63,160,56,115,63,130,66,115,63,94,76,115,63,53,86,115,63,7,96,115,63,212,105,115,63,155,115,115,63,94,125,115,63,27,135,115,63,211,144,115,63,134,154,115,63,52,164,115,63,221,173,115,63,128,183,115,63,31,193,115,63,184,202,115,63,77,212,115,63,220,221,115,63,102,231,115,63,235,240,115,63,107,250,115,63,230,3,116,63,92,13,116,63,204,22,116,63,56,32,116,63,159,41,116,63,0,51,116,63,93,60,116,63,180,69,116,63,6,79,116,63,84,88,116,63,156,97,116,63,223,106,116,63,29,116,116,63,87,125,116,63,139,134,116,63,186,143,116,63,228,152,116,63,9,162,116,63,41,171,116,63,68,180,116,63,91,189,116,63,108,198,116,63,120,207,116,63,127,216,116,63,129,225,116,63,127,234,116,63,119,243,116,63,106,252,116,63,89,5,117,63,66,14,117,63,38,23,117,63,6,32,117,63,225,40,117,63,182,49,117,63,135,58,117,63,83,67,117,63,26,76,117,63,220,84,117,63,153,93,117,63,81,102,117,63,4,111,117,63,179,119,117,63,92,128,117,63,1,137,117,63,160,145,117,63,59,154,117,63,209,162,117,63,98,171,117,63,239,179,117,63,118,188,117,63,249,196,117,63,118,205,117,63,239,213,117,63,99,222,117,63,210,230,117,63,61,239,117,63,162,247,117,63,3,0,118,63,95,8,118,63,182,16,118,63,8,25,118,63,86,33,118,63,159,41,118,63,227,49,118,63,34,58,118,63,92,66,118,63,146,74,118,63,195,82,118,63,239,90,118,63,22,99,118,63,57,107,118,63,86,115,118,63,112,123,118,63,132,131,118,63,148,139,118,63,158,147,118,63,165,155,118,63,166,163,118,63,163,171,118,63,155,179,118,63,142,187,118,63,125,195,118,63,103,203,118,63,76,211,118,63,45,219,118,63,9,227,118,63,224,234,118,63,178,242,118,63,128,250,118,63,74,2,119,63,14,10,119,63,206,17,119,63,137,25,119,63,64,33,119,63,242,40,119,63,160,48,119,63,72,56,119,63,237,63,119,63,140,71,119,63,39,79,119,63,190,86,119,63,79,94,119,63,220,101,119,63,101,109,119,63,233,116,119,63,105,124,119,63,228,131,119,63,90,139,119,63,204,146,119,63,57,154,119,63,162,161,119,63,6,169,119,63,101,176,119,63,192,183,119,63,23,191,119,63,105,198,119,63,182,205,119,63,255,212,119,63,68,220,119,63,132,227,119,63,191,234,119,63,246,241,119,63,41,249,119,63,87,0,120,63,129,7,120,63,166,14,120,63,198,21,120,63,227,28,120,63,250,35,120,63,14,43,120,63,28,50,120,63,39,57,120,63,45,64,120,63,46,71,120,63,44,78,120,63,36,85,120,63,25,92,120,63,9,99,120,63,244,105,120,63,219,112,120,63,190,119,120,63,156,126,120,63,118,133,120,63,76,140,120,63,29,147,120,63,234,153,120,63,179,160,120,63,119,167,120,63,55,174,120,63,242,180,120,63,169,187,120,63,92,194,120,63,11,201,120,63,181,207,120,63,91,214,120,63,252,220,120,63,154,227,120,63,51,234,120,63,199,240,120,63,88,247,120,63,228,253,120,63,108,4,121,63,240,10,121,63,111,17,121,63,234,23,121,63,97,30,121,63,211,36,121,63,66,43,121,63,172,49,121,63,18,56,121,63,116,62,121,63,209,68,121,63,42,75,121,63,127,81,121,63,208,87,121,63,29,94,121,63,101,100,121,63,170,106,121,63,234,112,121,63,38,119,121,63,93,125,121,63,145,131,121,63,193,137,121,63,236,143,121,63,19,150,121,63,54,156,121,63,85,162,121,63,112,168,121,63,134,174,121,63,153,180,121,63,167,186,121,63,178,192,121,63,184,198,121,63,186,204,121,63,184,210,121,63,178,216,121,63,168,222,121,63,154,228,121,63,135,234,121,63,113,240,121,63,87,246,121,63,56,252,121,63,22,2,122,63,239,7,122,63,197,13,122,63,150,19,122,63,100,25,122,63,45,31,122,63,243,36,122,63,180,42,122,63,113,48,122,63,43,54,122,63,224,59,122,63,146,65,122,63,63,71,122,63,233,76,122,63,142,82,122,63,48,88,122,63,206,93,122,63,103,99,122,63,253,104,122,63,143,110,122,63,29,116,122,63,167,121,122,63,45,127,122,63,175,132,122,63,45,138,122,63,168,143,122,63,30,149,122,63,145,154,122,63,255,159,122,63,106,165,122,63,209,170,122,63,52,176,122,63,147,181,122,63,239,186,122,63,70,192,122,63,154,197,122,63,234,202,122,63,54,208,122,63,126,213,122,63,194,218,122,63,3,224,122,63,64,229,122,63,121,234,122,63,174,239,122,63,223,244,122,63,13,250,122,63,55,255,122,63,93,4,123,63,127,9,123,63,157,14,123,63,184,19,123,63,207,24,123,63,227,29,123,63,242,34,123,63,254,39,123,63,6,45,123,63,10,50,123,63,11,55,123,63,8,60,123,63,1,65,123,63,247,69,123,63,233,74,123,63,215,79,123,63,193,84,123,63,168,89,123,63,139,94,123,63,107,99,123,63,71,104,123,63,31,109,123,63,243,113,123,63,196,118,123,63,146,123,123,63,91,128,123,63,33,133,123,63,228,137,123,63,163,142,123,63,94,147,123,63,22,152,123,63,202,156,123,63,122,161,123,63,39,166,123,63,208,170,123,63,118,175,123,63,24,180,123,63,183,184,123,63,82,189,123,63,233,193,123,63,125,198,123,63,14,203,123,63,155,207,123,63,36,212,123,63,170,216,123,63,45,221,123,63,172,225,123,63,39,230,123,63,159,234,123,63,19,239,123,63,132,243,123,63,242,247,123,63,92,252,123,63,195,0,124,63,38,5,124,63,133,9,124,63,226,13,124,63,58,18,124,63,144,22,124,63,226,26,124,63,48,31,124,63,123,35,124,63,195,39,124,63,7,44,124,63,72,48,124,63,134,52,124,63,192,56,124,63,247,60,124,63,42,65,124,63,90,69,124,63,135,73,124,63,176,77,124,63,214,81,124,63,249,85,124,63,24,90,124,63,52,94,124,63,77,98,124,63,98,102,124,63,116,106,124,63,131,110,124,63,142,114,124,63,150,118,124,63,155,122,124,63,157,126,124,63,155,130,124,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480),
allocate([150,134,124,63,142,138,124,63,130,142,124,63,116,146,124,63,98,150,124,63,77,154,124,63,52,158,124,63,24,162,124,63,249,165,124,63,215,169,124,63,178,173,124,63,137,177,124,63,94,181,124,63,47,185,124,63,253,188,124,63,199,192,124,63,143,196,124,63,83,200,124,63,20,204,124,63,211,207,124,63,141,211,124,63,69,215,124,63,250,218,124,63,171,222,124,63,90,226,124,63,5,230,124,63,173,233,124,63,82,237,124,63,244,240,124,63,147,244,124,63,46,248,124,63,199,251,124,63,93,255,124,63,239,2,125,63,127,6,125,63,11,10,125,63,148,13,125,63,27,17,125,63,158,20,125,63,30,24,125,63,155,27,125,63,21,31,125,63,140,34,125,63,0,38,125,63,114,41,125,63,224,44,125,63,75,48,125,63,179,51,125,63,24,55,125,63,122,58,125,63,217,61,125,63,54,65,125,63,143,68,125,63,229,71,125,63,56,75,125,63,137,78,125,63,214,81,125,63,33,85,125,63,104,88,125,63,173,91,125,63,239,94,125,63,46,98,125,63,106,101,125,63,163,104,125,63,217,107,125,63,12,111,125,63,61,114,125,63,106,117,125,63,149,120,125,63,189,123,125,63,226,126,125,63,4,130,125,63,36,133,125,63,64,136,125,63,90,139,125,63,112,142,125,63,133,145,125,63,150,148,125,63,164,151,125,63,176,154,125,63,185,157,125,63,191,160,125,63,194,163,125,63,194,166,125,63,192,169,125,63,187,172,125,63,179,175,125,63,168,178,125,63,155,181,125,63,139,184,125,63,120,187,125,63,99,190,125,63,74,193,125,63,48,196,125,63,18,199,125,63,241,201,125,63,206,204,125,63,169,207,125,63,128,210,125,63,85,213,125,63,39,216,125,63,247,218,125,63,196,221,125,63,142,224,125,63,85,227,125,63,26,230,125,63,220,232,125,63,156,235,125,63,89,238,125,63,19,241,125,63,203,243,125,63,128,246,125,63,51,249,125,63,227,251,125,63,144,254,125,63,59,1,126,63,227,3,126,63,137,6,126,63,44,9,126,63,204,11,126,63,106,14,126,63,6,17,126,63,158,19,126,63,53,22,126,63,200,24,126,63,90,27,126,63,232,29,126,63,116,32,126,63,254,34,126,63,133,37,126,63,10,40,126,63,140,42,126,63,12,45,126,63,137,47,126,63,4,50,126,63,124,52,126,63,242,54,126,63,101,57,126,63,214,59,126,63,68,62,126,63,176,64,126,63,26,67,126,63,129,69,126,63,230,71,126,63,72,74,126,63,168,76,126,63,5,79,126,63,96,81,126,63,185,83,126,63,15,86,126,63,99,88,126,63,181,90,126,63,4,93,126,63,81,95,126,63,155,97,126,63,227,99,126,63,41,102,126,63,108,104,126,63,173,106,126,63,236,108,126,63,40,111,126,63,98,113,126,63,154,115,126,63,208,117,126,63,3,120,126,63,51,122,126,63,98,124,126,63,142,126,126,63,184,128,126,63,224,130,126,63,5,133,126,63,40,135,126,63,73,137,126,63,104,139,126,63,132,141,126,63,159,143,126,63,183,145,126,63,204,147,126,63,224,149,126,63,241,151,126,63,0,154,126,63,13,156,126,63,24,158,126,63,32,160,126,63,38,162,126,63,42,164,126,63,44,166,126,63,44,168,126,63,41,170,126,63,37,172,126,63,30,174,126,63,21,176,126,63,10,178,126,63,253,179,126,63,238,181,126,63,220,183,126,63,201,185,126,63,179,187,126,63,155,189,126,63,129,191,126,63,101,193,126,63,71,195,126,63,39,197,126,63,5,199,126,63,224,200,126,63,186,202,126,63,145,204,126,63,103,206,126,63,58,208,126,63,12,210,126,63,219,211,126,63,168,213,126,63,115,215,126,63,61,217,126,63,4,219,126,63,201,220,126,63,140,222,126,63,77,224,126,63,12,226,126,63,202,227,126,63,133,229,126,63,62,231,126,63,245,232,126,63,170,234,126,63,94,236,126,63,15,238,126,63,190,239,126,63,108,241,126,63,23,243,126,63,193,244,126,63,104,246,126,63,14,248,126,63,178,249,126,63,84,251,126,63,243,252,126,63,145,254,126,63,46,0,127,63,200,1,127,63,96,3,127,63,247,4,127,63,139,6,127,63,30,8,127,63,175,9,127,63,62,11,127,63,203,12,127,63,86,14,127,63,223,15,127,63,103,17,127,63,237,18,127,63,112,20,127,63,242,21,127,63,115,23,127,63,241,24,127,63,110,26,127,63,233,27,127,63,98,29,127,63,217,30,127,63,78,32,127,63,194,33,127,63,52,35,127,63,164,36,127,63,18,38,127,63,127,39,127,63,234,40,127,63,83,42,127,63,186,43,127,63,32,45,127,63,131,46,127,63,230,47,127,63,70,49,127,63,165,50,127,63,2,52,127,63,93,53,127,63,182,54,127,63,14,56,127,63,100,57,127,63,185,58,127,63,12,60,127,63,93,61,127,63,172,62,127,63,250,63,127,63,70,65,127,63,145,66,127,63,217,67,127,63,33,69,127,63,102,70,127,63,170,71,127,63,236,72,127,63,45,74,127,63,108,75,127,63,169,76,127,63,229,77,127,63,31,79,127,63,88,80,127,63,143,81,127,63,196,82,127,63,248,83,127,63,42,85,127,63,91,86,127,63,138,87,127,63,184,88,127,63,228,89,127,63,14,91,127,63,55,92,127,63,94,93,127,63,132,94,127,63,169,95,127,63,203,96,127,63,237,97,127,63,12,99,127,63,42,100,127,63,71,101,127,63,98,102,127,63,124,103,127,63,148,104,127,63,171,105,127,63,192,106,127,63,212,107,127,63,230,108,127,63,247,109,127,63,6,111,127,63,20,112,127,63,33,113,127,63,44,114,127,63,53,115,127,63,61,116,127,63,68,117,127,63,73,118,127,63,77,119,127,63,79,120,127,63,80,121,127,63,80,122,127,63,78,123,127,63,75,124,127,63,70,125,127,63,64,126,127,63,57,127,127,63,48,128,127,63,38,129,127,63,27,130,127,63,14,131,127,63,0,132,127,63,240,132,127,63,223,133,127,63,205,134,127,63,185,135,127,63,164,136,127,63,142,137,127,63,118,138,127,63,93,139,127,63,67,140,127,63,40,141,127,63,11,142,127,63,237,142,127,63,205,143,127,63,173,144,127,63,139,145,127,63,103,146,127,63,67,147,127,63,29,148,127,63,246,148,127,63,205,149,127,63,164,150,127,63,121,151,127,63,77,152,127,63,31,153,127,63,241,153,127,63,193,154,127,63,144,155,127,63,93,156,127,63,42,157,127,63,245,157,127,63,191,158,127,63,136,159,127,63,79,160,127,63,22,161,127,63,219,161,127,63,159,162,127,63,98,163,127,63,36,164,127,63,228,164,127,63,163,165,127,63,98,166,127,63,31,167,127,63,219,167,127,63,149,168,127,63,79,169,127,63,7,170,127,63,190,170,127,63,117,171,127,63,42,172,127,63,221,172,127,63,144,173,127,63,66,174,127,63,242,174,127,63,162,175,127,63,80,176,127,63,253,176,127,63,169,177,127,63,85,178,127,63,254,178,127,63,167,179,127,63,79,180,127,63,246,180,127,63,156,181,127,63,64,182,127,63,228,182,127,63,134,183,127,63,40,184,127,63,200,184,127,63,103,185,127,63,6,186,127,63,163,186,127,63,63,187,127,63,219,187,127,63,117,188,127,63,14,189,127,63,166,189,127,63,61,190,127,63,212,190,127,63,105,191,127,63,253,191,127,63,144,192,127,63,34,193,127,63,180,193,127,63,68,194,127,63,211,194,127,63,98,195,127,63,239,195,127,63,123,196,127,63,7,197,127,63,145,197,127,63,27,198,127,63,163,198,127,63,43,199,127,63,178,199,127,63,56,200,127,63,189,200,127,63,65,201,127,63,196,201,127,63,70,202,127,63,199,202,127,63,71,203,127,63,199,203,127,63,69,204,127,63,195,204,127,63,64,205,127,63,187,205,127,63,54,206,127,63,177,206,127,63,42,207,127,63,162,207,127,63,26,208,127,63,144,208,127,63,6,209,127,63,123,209,127,63,239,209,127,63,98,210,127,63,213,210,127,63,70,211,127,63,183,211,127,63,39,212,127,63,150,212,127,63,4,213,127,63,114,213,127,63,222,213,127,63,74,214,127,63,181,214,127,63,32,215,127,63,137,215,127,63,242,215,127,63,89,216,127,63,192,216,127,63,39,217,127,63,140,217,127,63,241,217,127,63,85,218,127,63,184,218,127,63,27,219,127,63,124,219,127,63,221,219,127,63,61,220,127,63,157,220,127,63,251,220,127,63,89,221,127,63,183,221,127,63,19,222,127,63,111,222,127,63,202,222,127,63,36,223,127,63,126,223,127,63,215,223,127,63,47,224,127,63,134,224,127,63,221,224,127,63,51,225,127,63,137,225,127,63,221,225,127,63,49,226,127,63,133,226,127,63,215,226,127,63,41,227,127,63,122,227,127,63,203,227,127,63,27,228,127,63,106,228,127,63,185,228,127,63,7,229,127,63,84,229,127,63,161,229,127,63,237,229,127,63,56,230,127,63,131,230,127,63,205,230,127,63,23,231,127,63,96,231,127,63,168,231,127,63,239,231,127,63,54,232,127,63,125,232,127,63,195,232,127,63,8,233,127,63,76,233,127,63,144,233,127,63,212,233,127,63,23,234,127,63,89,234,127,63,154,234,127,63,219,234,127,63,28,235,127,63,92,235,127,63,155,235,127,63,218,235,127,63,24,236,127,63,86,236,127,63,147,236,127,63,207,236,127,63,11,237,127,63,71,237,127,63,130,237,127,63,188,237,127,63,246,237,127,63,47,238,127,63,104,238,127,63,160,238,127,63,216,238,127,63,15,239,127,63,69,239,127,63,123,239,127,63,177,239,127,63,230,239,127,63,27,240,127,63,79,240,127,63,130,240,127,63,182,240,127,63,232,240,127,63,26,241,127,63,76,241,127,63,125,241,127,63,174,241,127,63,222,241,127,63,14,242,127,63,61,242,127,63,108,242,127,63,154,242,127,63,200,242,127,63,245,242,127,63,34,243,127,63,79,243,127,63,123,243,127,63,166,243,127,63,209,243,127,63,252,243,127,63,38,244,127,63,80,244,127,63,121,244,127,63,162,244,127,63,203,244,127,63,243,244,127,63,27,245,127,63,66,245,127,63,105,245,127,63,143,245,127,63,181,245,127,63,219,245,127,63,0,246,127,63,37,246,127,63,73,246,127,63,109,246,127,63,145,246,127,63,180,246,127,63,215,246,127,63,250,246,127,63,28,247,127,63,62,247,127,63,95,247,127,63,128,247,127,63,160,247,127,63,193,247,127,63,225,247,127,63,0,248,127,63,31,248,127,63,62,248,127,63,93,248,127,63,123,248,127,63,152,248,127,63,182,248,127,63,211,248,127,63,240,248,127,63,12,249,127,63,40,249,127,63,68,249,127,63,95,249,127,63,122,249,127,63,149,249,127,63,175,249,127,63,202,249,127,63,227,249,127,63,253,249,127,63,22,250,127,63,47,250,127,63,71,250,127,63,96,250,127,63,120,250,127,63,143,250,127,63,166,250,127,63,190,250,127,63,212,250,127,63,235,250,127,63,1,251,127,63,23,251,127,63,44,251,127,63,66,251,127,63,87,251,127,63,108,251,127,63,128,251,127,63,148,251,127,63,168,251,127,63,188,251,127,63,208,251,127,63,227,251,127,63,246,251,127,63,8,252,127,63,27,252,127,63,45,252,127,63,63,252,127,63,81,252,127,63,98,252,127,63,115,252,127,63,132,252,127,63,149,252,127,63,165,252,127,63,182,252,127,63,198,252,127,63,213,252,127,63,229,252,127,63,244,252,127,63,3,253,127,63,18,253,127,63,33,253,127,63,47,253,127,63,62,253,127,63,76,253,127,63,89,253,127,63,103,253,127,63,116,253,127,63,130,253,127,63,143,253,127,63,155,253,127,63,168,253,127,63,181,253,127,63,193,253,127,63,205,253,127,63,217,253,127,63,228,253,127,63,240,253,127,63,251,253,127,63,6,254,127,63,17,254,127,63,28,254,127,63,38,254,127,63,49,254,127,63,59,254,127,63,69,254,127,63,79,254,127,63,89,254,127,63,98,254,127,63,108,254,127,63,117,254,127,63,126,254,127,63,135,254,127,63,144,254,127,63,152,254,127,63,161,254,127,63,169,254,127,63,177,254,127,63,185,254,127,63,193,254,127,63,201,254,127,63,208,254,127,63,216,254,127,63,223,254,127,63,230,254,127,63,237,254,127,63,244,254,127,63,251,254,127,63,2,255,127,63,8,255,127,63,14,255,127,63,21,255,127,63,27,255,127,63,33,255,127,63,39,255,127,63,45,255,127,63,50,255,127,63,56,255,127,63,61,255,127,63,67,255,127,63,72,255,127,63,77,255,127,63,82,255,127,63,87,255,127,63,92,255,127,63,96,255,127,63,101,255,127,63,105,255,127,63,110,255,127,63,114,255,127,63,118,255,127,63,122,255,127,63,126,255,127,63,130,255,127,63,134,255,127,63,138,255,127,63,142,255,127,63,145,255,127,63,149,255,127,63,152,255,127,63,155,255,127,63,159,255,127,63,162,255,127,63,165,255,127,63,168,255,127,63,171,255,127,63,174,255,127,63,176,255,127,63,179,255,127,63,182,255,127,63,184,255,127,63,187,255,127,63,189,255,127,63,192,255,127,63,194,255,127,63,196,255,127,63,198,255,127,63,201,255,127,63,203,255,127,63,205,255,127,63,207,255,127,63,209,255,127,63,210,255,127,63,212,255,127,63,214,255,127,63,216,255,127,63,217,255,127,63,219,255,127,63,220,255,127,63,222,255,127,63,223,255,127,63,225,255,127,63,226,255,127,63,227,255,127,63,229,255,127,63,230,255,127,63,231,255,127,63,232,255,127,63,233,255,127,63,234,255,127,63,235,255,127,63,236,255,127,63,237,255,127,63,238,255,127,63,239,255,127,63,240,255,127,63,241,255,127,63,241,255,127,63,242,255,127,63,243,255,127,63,244,255,127,63,244,255,127,63,245,255,127,63,246,255,127,63,246,255,127,63,247,255,127,63,247,255,127,63,248,255,127,63,248,255,127,63,249,255,127,63,249,255,127,63,250,255,127,63,250,255,127,63,250,255,127,63,251,255,127,63,251,255,127,63,251,255,127,63,252,255,127,63,252,255,127,63,252,255,127,63,253,255,127,63,253,255,127,63,253,255,127,63,253,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,254,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,255,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,180,1,0,0,4,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,0,0,76,194,0,0,80,194,0,0,84,194,0,0,88,194,0,0,92,194,0,0,96,194,0,0,100,194,0,0,104,194,0,0,108,194,0,0,112,194,0,0,116,194,0,0,120,194,0,0,124,194,0,0,128,194,0,0,130,194,0,0,132,194,0,0,134,194,0,0,136,194,0,0,138,194,0,0,140,194,0,0,142,194,0,0,144,194,0,0,146,194,0,0,148,194,0,0,150,194,0,0,152,194,0,0,154,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,164,194,0,0,166,194,0,0,168,194,0,0,170,194,0,0,172,194,0,0,174,194,0,0,176,194,0,0,176,194,0,0,178,194,0,0,178,194,0,0,180,194,0,0,182,194,0,0,182,194,0,0,184,194,0,0,186,194,0,0,188,194,0,0,190,194,0,0,192,194,0,0,192,194,0,0,194,194,0,0,196,194,0,0,196,194,0,0,198,194,0,0,198,194,0,0,200,194,0,0,200,194,0,0,202,194,0,0,204,194,0,0,206,194,0,0,208,194,0,0,212,194,0,0,214,194,0,0,214,194,0,0,214,194,0,0,214,194,0,0,210,194,0,0,206,194,0,0,204,194,0,0,202,194,0,0,198,194,0,0,196,194,0,0,192,194,0,0,190,194,0,0,190,194,0,0,192,194,0,0,194,194,0,0,192,194,0,0,190,194,0,0,186,194,0,0,180,194,0,0,160,194,0,0,140,194,0,0,72,194,0,0,32,194,0,0,240,193,0,0,240,193,0,0,240,193,0,0,240,193,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,112,194,0,0,120,194,0,0,120,194,0,0,130,194,0,0,146,194,0,0,138,194,0,0,136,194,0,0,136,194,0,0,134,194,0,0,140,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,150,194,0,0,158,194,0,0,158,194,0,0,160,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,84,194,0,0,116,194,0,0,132,194,0,0,132,194,0,0,136,194,0,0,134,194,0,0,140,194,0,0,152,194,0,0,152,194,0,0,144,194,0,0,146,194,0,0,150,194,0,0,152,194,0,0,156,194,0,0,158,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,20,194,0,0,24,194,0,0,32,194,0,0,40,194,0,0,56,194,0,0,64,194,0,0,84,194,0,0,92,194,0,0,120,194,0,0,130,194,0,0,104,194,0,0,96,194,0,0,96,194,0,0,116,194,0,0,112,194,0,0,130,194,0,0,134,194,0,0,138,194,0,0,142,194,0,0,154,194,0,0,154,194,0,0,156,194,0,0,160,194,0,0,164,194,0,0,168,194,0,0,176,194,0,0,186,194,0,0,196,194,0,0,212,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,200,193,0,0,208,193,0,0,216,193,0,0,232,193,0,0,0,194,0,0,24,194,0,0,64,194,0,0,80,194,0,0,80,194,0,0,72,194,0,0,64,194,0,0,64,194,0,0,76,194,0,0,80,194,0,0,88,194,0,0,112,194,0,0,134,194,0,0,134,194,0,0,132,194,0,0,136,194,0,0,138,194,0,0,146,194,0,0,146,194,0,0,152,194,0,0,160,194,0,0,162,194,0,0,162,194,0,0,170,194,0,0,170,194,0,0,172,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,128,193,0,0,136,193,0,0,152,193,0,0,160,193,0,0,176,193,0,0,208,193,0,0,224,193,0,0,248,193,0,0,32,194,0,0,60,194,0,0,28,194,0,0,28,194,0,0,32,194,0,0,40,194,0,0,44,194,0,0,60,194,0,0,76,194,0,0,100,194,0,0,80,194,0,0,92,194,0,0,92,194,0,0,112,194,0,0,104,194,0,0,120,194,0,0,124,194,0,0,140,194,0,0,134,194,0,0,138,194,0,0,144,194,0,0,146,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,166,194,0,0,174,194,0,0,180,194,0,0,188,194,0,0,196,194,0,0,208,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,32,193,0,0,48,193,0,0,112,193,0,0,152,193,0,0,200,193,0,0,240,193,0,0,8,194,0,0,248,193,0,0,240,193,0,0,248,193,0,0,232,193,0,0,0,194,0,0,12,194,0,0,40,194,0,0,64,194,0,0,40,194,0,0,48,194,0,0,56,194,0,0,72,194,0,0,72,194,0,0,76,194,0,0,80,194,0,0,108,194,0,0,88,194,0,0,92,194,0,0,92,194,0,0,104,194,0,0,120,194,0,0,124,194,0,0,132,194,0,0,144,194,0,0,146,194,0,0,152,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,160,194,0,0,162,194,0,0,168,194,0,0,176,194,0,0,180,194,0,0,188,194,0,0,196,194,0,0,202,194,0,0,212,194,0,0,220,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,134,194,0,0,134,194,0,0,134,194,0,0,152,194,0,0,144,194,0,0,142,194,0,0,148,194,0,0,152,194,0,0,152,194,0,0,150,194,0,0,156,194,0,0,158,194,0,0,158,194,0,0,162,194,0,0,166,194,0,0,172,194,0,0,178,194,0,0,186,194,0,0,194,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,64,194,0,0,76,194,0,0,92,194,0,0,108,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,134,194,0,0,132,194,0,0,136,194,0,0,138,194,0,0,140,194,0,0,148,194,0,0,158,194,0,0,154,194,0,0,154,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,164,194,0,0,168,194,0,0,172,194,0,0,176,194,0,0,182,194,0,0,190,194,0,0,200,194,0,0,216,194,0,0,232,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,20,194,0,0,20,194,0,0,36,194,0,0,48,194,0,0,64,194,0,0,76,194,0,0,104,194,0,0,120,194,0,0,112,194,0,0,100,194,0,0,108,194,0,0,108,194,0,0,112,194,0,0,124,194,0,0,130,194,0,0,144,194,0,0,142,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,154,194,0,0,152,194,0,0,156,194,0,0,162,194,0,0,162,194,0,0,160,194,0,0,166,194,0,0,172,194,0,0,182,194,0,0,192,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,240,193,0,0,0,194,0,0,0,194,0,0,4,194,0,0,12,194,0,0,36,194,0,0,68,194,0,0,72,194,0,0,68,194,0,0,60,194,0,0,64,194,0,0,64,194,0,0,80,194,0,0,76,194,0,0,100,194,0,0,130,194,0,0,116,194,0,0,108,194,0,0,116,194,0,0,128,194,0,0,138,194,0,0,140,194,0,0,148,194,0,0,154,194,0,0,154,194,0,0,156,194,0,0,162,194,0,0,168,194,0,0,170,194,0,0,174,194,0,0,180,194,0,0,184,194,0,0,192,194,0,0,200,194,0,0,214,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,152,193,0,0,160,193,0,0,168,193,0,0,184,193,0,0,216,193,0,0,240,193,0,0,12,194,0,0,16,194,0,0,36,194,0,0,56,194,0,0,48,194,0,0,40,194,0,0,32,194,0,0,36,194,0,0,36,194,0,0,44,194,0,0,64,194,0,0,92,194,0,0,84,194,0,0,80,194,0,0,84,194,0,0,96,194,0,0,108,194,0,0,104,194,0,0,112,194,0,0,134,194,0,0,132,194,0,0,138,194,0,0,142,194,0,0,144,194,0,0,150,194,0,0,158,194,0,0,162,194,0,0,168,194,0,0,174,194,0,0,180,194,0,0,186,194,0,0,194,194,0,0,202,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,16,193,0,0,48,193,0,0,64,193,0,0,64,193,0,0,112,193,0,0,128,193,0,0,160,193,0,0,184,193,0,0,240,193,0,0,20,194,0,0,8,194,0,0,4,194,0,0,8,194,0,0,248,193,0,0,0,194,0,0,0,194,0,0,24,194,0,0,60,194,0,0,48,194,0,0,36,194,0,0,32,194,0,0,60,194,0,0,68,194,0,0,56,194,0,0,56,194,0,0,104,194,0,0,72,194,0,0,72,194,0,0,88,194,0,0,104,194,0,0,120,194,0,0,128,194,0,0,134,194,0,0,134,194,0,0,140,194,0,0,144,194,0,0,152,194,0,0,158,194,0,0,166,194,0,0,174,194,0,0,182,194,0,0,192,194,0,0,200,194,0,0,208,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,124,194,0,0,128,194,0,0,132,194,0,0,134,194,0,0,132,194,0,0,136,194,0,0,150,194,0,0,144,194,0,0,152,194,0,0,150,194,0,0,152,194,0,0,156,194,0,0,158,194,0,0,164,194,0,0,168,194,0,0,170,194,0,0,180,194,0,0,188,194,0,0,202,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,108,194,0,0,112,194,0,0,112,194,0,0,116,194,0,0,124,194,0,0,132,194,0,0,142,194,0,0,136,194,0,0,140,194,0,0,140,194,0,0,142,194,0,0,144,194,0,0,144,194,0,0,150,194,0,0,162,194,0,0,156,194,0,0,158,194,0,0,164,194,0,0,166,194,0,0,172,194,0,0,180,194,0,0,194,194,0,0,206,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,84,194,0,0,88,194,0,0,92,194,0,0,100,194,0,0,96,194,0,0,100,194,0,0,92,194,0,0,116,194,0,0,130,194,0,0,112,194,0,0,112,194,0,0,120,194,0,0,124,194,0,0,124,194,0,0,132,194,0,0,136,194,0,0,148,194,0,0,146,194,0,0,150,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,160,194,0,0,164,194,0,0,170,194,0,0,180,194,0,0,192,194,0,0,202,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,56,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,60,194,0,0,64,194,0,0,76,194,0,0,100,194,0,0,76,194,0,0,68,194,0,0,72,194,0,0,76,194,0,0,84,194,0,0,88,194,0,0,108,194,0,0,132,194,0,0,112,194,0,0,120,194,0,0,134,194,0,0,134,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,152,194,0,0,156,194,0,0,162,194,0,0,170,194,0,0,176,194,0,0,188,194,0,0,194,194,0,0,208,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,16,194,0,0,28,194,0,0,36,194,0,0,40,194,0,0,40,194,0,0,28,194,0,0,24,194,0,0,36,194,0,0,44,194,0,0,80,194,0,0,48,194,0,0,32,194,0,0,28,194,0,0,20,194,0,0,20,194,0,0,32,194,0,0,60,194,0,0,88,194,0,0,72,194,0,0,64,194,0,0,72,194,0,0,92,194,0,0,116,194,0,0,108,194,0,0,120,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,138,194,0,0,138,194,0,0,146,194,0,0,148,194,0,0,148,194,0,0,150,194,0,0,154,194,0,0,158,194,0,0,164,194,0,0,174,194,0,0,182,194,0,0,190,194,0,0,200,194,0,0,216,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,224,193,0,0,208,193,0,0,192,193,0,0,176,193,0,0,160,193,0,0,160,193,0,0,184,193,0,0,232,193,0,0,240,193,0,0,248,193,0,0,224,193,0,0,216,193,0,0,224,193,0,0,224,193,0,0,224,193,0,0,12,194,0,0,32,194,0,0,4,194,0,0,0,194,0,0,232,193,0,0,240,193,0,0,240,193,0,0,240,193,0,0,20,194,0,0,52,194,0,0,36,194,0,0,20,194,0,0,24,194,0,0,52,194,0,0,60,194,0,0,60,194,0,0,64,194,0,0,84,194,0,0,68,194,0,0,64,194,0,0,72,194,0,0,68,194,0,0,68,194,0,0,76,194,0,0,80,194,0,0,104,194,0,0,96,194,0,0,100,194,0,0,96,194,0,0,112,194,0,0,116,194,0,0,120,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,156,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,212,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,200,194,0,0,190,194,0,0,182,194,0,0,174,194,0,0,166,194,0,0,160,194,0,0,156,194,0,0,152,194,0,0,156,194,0,0,156,194,0,0,162,194,0,0,166,194,0,0,170,194,0,0,172,194,0,0,170,194,0,0,172,194,0,0,174,194,0,0,180,194,0,0,194,194,0,0,214,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,162,194,0,0,154,194,0,0,146,194,0,0,140,194,0,0,134,194,0,0,134,194,0,0,136,194,0,0,150,194,0,0,146,194,0,0,140,194,0,0,138,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,158,194,0,0,168,194,0,0,166,194,0,0,168,194,0,0,172,194,0,0,176,194,0,0,178,194,0,0,178,194,0,0,186,194,0,0,196,194,0,0,210,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,152,194,0,0,142,194,0,0,136,194,0,0,136,194,0,0,130,194,0,0,124,194,0,0,124,194,0,0,120,194,0,0,120,194,0,0,128,194,0,0,130,194,0,0,128,194,0,0,116,194,0,0,120,194,0,0,124,194,0,0,128,194,0,0,132,194,0,0,136,194,0,0,146,194,0,0,146,194,0,0,148,194,0,0,150,194,0,0,152,194,0,0,162,194,0,0,166,194,0,0,170,194,0,0,176,194,0,0,178,194,0,0,184,194,0,0,190,194,0,0,200,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,160,194,0,0,150,194,0,0,142,194,0,0,136,194,0,0,130,194,0,0,124,194,0,0,120,194,0,0,116,194,0,0,116,194,0,0,116,194,0,0,116,194,0,0,108,194,0,0,96,194,0,0,100,194,0,0,84,194,0,0,72,194,0,0,104,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,80,194,0,0,84,194,0,0,88,194,0,0,104,194,0,0,134,194,0,0,124,194,0,0,134,194,0,0,136,194,0,0,144,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,162,194,0,0,164,194,0,0,170,194,0,0,178,194,0,0,180,194,0,0,186,194,0,0,194,194,0,0,202,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,130,194,0,0,116,194,0,0,108,194,0,0,100,194,0,0,96,194,0,0,92,194,0,0,92,194,0,0,96,194,0,0,96,194,0,0,100,194,0,0,92,194,0,0,84,194,0,0,80,194,0,0,60,194,0,0,48,194,0,0,48,194,0,0,72,194,0,0,48,194,0,0,36,194,0,0,28,194,0,0,28,194,0,0,40,194,0,0,32,194,0,0,56,194,0,0,76,194,0,0,68,194,0,0,72,194,0,0,84,194,0,0,88,194,0,0,124,194,0,0,112,194,0,0,116,194,0,0,120,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,140,194,0,0,146,194,0,0,148,194,0,0,150,194,0,0,152,194,0,0,150,194,0,0,158,194,0,0,170,194,0,0,178,194,0,0,182,194,0,0,192,194,0,0,204,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,80,194,0,0,72,194,0,0,68,194,0,0,68,194,0,0,64,194,0,0,64,194,0,0,64,194,0,0,68,194,0,0,72,194,0,0,72,194,0,0,68,194,0,0,56,194,0,0,44,194,0,0,28,194,0,0,12,194,0,0,4,194,0,0,24,194,0,0,16,194,0,0,0,194,0,0,232,193,0,0,0,194,0,0,0,194,0,0,0,194,0,0,12,194,0,0,48,194,0,0,28,194,0,0,24,194,0,0,24,194,0,0,56,194,0,0,72,194,0,0,52,194,0,0,56,194,0,0,84,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,88,194,0,0,88,194,0,0,84,194,0,0,84,194,0,0,96,194,0,0,100,194,0,0,108,194,0,0,132,194,0,0,140,194,0,0,144,194,0,0,148,194,0,0,158,194,0,0,166,194,0,0,170,194,0,0,180,194,0,0,194,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,172,194,0,0,160,194,0,0,150,194,0,0,150,194,0,0,158,194,0,0,160,194,0,0,158,194,0,0,160,194,0,0,162,194,0,0,164,194,0,0,176,194,0,0,190,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,176,194,0,0,166,194,0,0,158,194,0,0,156,194,0,0,150,194,0,0,142,194,0,0,134,194,0,0,136,194,0,0,146,194,0,0,146,194,0,0,144,194,0,0,146,194,0,0,150,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,202,194,0,0,192,194,0,0,180,194,0,0,172,194,0,0,162,194,0,0,154,194,0,0,146,194,0,0,138,194,0,0,132,194,0,0,116,194,0,0,120,194,0,0,132,194,0,0,128,194,0,0,120,194,0,0,130,194,0,0,132,194,0,0,140,194,0,0,144,194,0,0,152,194,0,0,162,194,0,0,160,194,0,0,168,194,0,0,180,194,0,0,190,194,0,0,204,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,206,194,0,0,194,194,0,0,184,194,0,0,176,194,0,0,166,194,0,0,158,194,0,0,148,194,0,0,140,194,0,0,132,194,0,0,108,194,0,0,84,194,0,0,104,194,0,0,120,194,0,0,92,194,0,0,88,194,0,0,88,194,0,0,88,194,0,0,104,194,0,0,116,194,0,0,120,194,0,0,144,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,156,194,0,0,160,194,0,0,162,194,0,0,160,194,0,0,166,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,150,194,0,0,140,194,0,0,132,194,0,0,120,194,0,0,96,194,0,0,64,194,0,0,48,194,0,0,64,194,0,0,56,194,0,0,56,194,0,0,44,194,0,0,56,194,0,0,64,194,0,0,64,194,0,0,76,194,0,0,104,194,0,0,104,194,0,0,108,194,0,0,112,194,0,0,120,194,0,0,120,194,0,0,116,194,0,0,116,194,0,0,130,194,0,0,128,194,0,0,130,194,0,0,136,194,0,0,140,194,0,0,148,194],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720),
allocate([0,0,150,194,0,0,156,194,0,0,162,194,0,0,172,194,0,0,190,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,150,194,0,0,140,194,0,0,130,194,0,0,116,194,0,0,92,194,0,0,68,194,0,0,28,194,0,0,4,194,0,0,32,194,0,0,12,194,0,0,0,194,0,0,24,194,0,0,32,194,0,0,4,194,0,0,12,194,0,0,20,194,0,0,56,194,0,0,36,194,0,0,52,194,0,0,48,194,0,0,56,194,0,0,40,194,0,0,52,194,0,0,56,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,88,194,0,0,88,194,0,0,92,194,0,0,100,194,0,0,120,194,0,0,128,194,0,0,132,194,0,0,136,194,0,0,140,194,0,0,152,194,0,0,162,194,0,0,180,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,180,194,0,0,170,194,0,0,164,194,0,0,166,194,0,0,160,194,0,0,156,194,0,0,168,194,0,0,158,194,0,0,160,194,0,0,166,194,0,0,174,194,0,0,178,194,0,0,182,194,0,0,186,194,0,0,198,194,0,0,212,194,0,0,234,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,150,194,0,0,140,194,0,0,136,194,0,0,148,194,0,0,144,194,0,0,148,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,170,194,0,0,174,194,0,0,184,194,0,0,178,194,0,0,182,194,0,0,190,194,0,0,200,194,0,0,212,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,180,194,0,0,166,194,0,0,150,194,0,0,142,194,0,0,124,194,0,0,128,194,0,0,134,194,0,0,120,194,0,0,128,194,0,0,134,194,0,0,140,194,0,0,146,194,0,0,154,194,0,0,162,194,0,0,168,194,0,0,166,194,0,0,170,194,0,0,178,194,0,0,180,194,0,0,186,194,0,0,196,194,0,0,208,194,0,0,218,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,206,194,0,0,192,194,0,0,176,194,0,0,162,194,0,0,150,194,0,0,136,194,0,0,104,194,0,0,88,194,0,0,96,194,0,0,88,194,0,0,96,194,0,0,96,194,0,0,104,194,0,0,112,194,0,0,124,194,0,0,132,194,0,0,148,194,0,0,138,194,0,0,144,194,0,0,144,194,0,0,150,194,0,0,148,194,0,0,154,194,0,0,162,194,0,0,162,194,0,0,164,194,0,0,168,194,0,0,174,194,0,0,186,194,0,0,192,194,0,0,198,194,0,0,208,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,204,194,0,0,192,194,0,0,182,194,0,0,170,194,0,0,160,194,0,0,148,194,0,0,136,194,0,0,112,194,0,0,76,194,0,0,56,194,0,0,64,194,0,0,56,194,0,0,44,194,0,0,52,194,0,0,60,194,0,0,60,194,0,0,68,194,0,0,64,194,0,0,96,194,0,0,84,194,0,0,92,194,0,0,104,194,0,0,100,194,0,0,124,194,0,0,104,194,0,0,112,194,0,0,132,194,0,0,128,194,0,0,134,194,0,0,140,194,0,0,140,194,0,0,148,194,0,0,154,194,0,0,168,194,0,0,172,194,0,0,178,194,0,0,182,194,0,0,186,194,0,0,188,194,0,0,202,194,0,0,218,194,0,0,236,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,176,194,0,0,166,194,0,0,156,194,0,0,146,194,0,0,136,194,0,0,112,194,0,0,84,194,0,0,48,194,0,0,12,194,0,0,24,194,0,0,24,194,0,0,8,194,0,0,8,194,0,0,16,194,0,0,32,194,0,0,36,194,0,0,48,194,0,0,76,194,0,0,52,194,0,0,56,194,0,0,60,194,0,0,56,194,0,0,88,194,0,0,72,194,0,0,68,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,76,194,0,0,88,194,0,0,100,194,0,0,104,194,0,0,112,194,0,0,132,194,0,0,132,194,0,0,132,194,0,0,128,194,0,0,130,194,0,0,136,194,0,0,154,194,0,0,164,194,0,0,174,194,0,0,190,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,204,194,0,0,194,194,0,0,184,194,0,0,174,194,0,0,166,194,0,0,156,194,0,0,150,194,0,0,164,194,0,0,158,194,0,0,166,194,0,0,170,194,0,0,178,194,0,0,184,194,0,0,190,194,0,0,196,194,0,0,202,194,0,0,210,194,0,0,218,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,172,194,0,0,162,194,0,0,156,194,0,0,148,194,0,0,138,194,0,0,148,194,0,0,148,194,0,0,152,194,0,0,158,194,0,0,166,194,0,0,168,194,0,0,172,194,0,0,178,194,0,0,184,194,0,0,194,194,0,0,186,194,0,0,200,194,0,0,206,194,0,0,214,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,174,194,0,0,166,194,0,0,160,194,0,0,150,194,0,0,138,194,0,0,112,194,0,0,132,194,0,0,132,194,0,0,136,194,0,0,140,194,0,0,148,194,0,0,156,194,0,0,158,194,0,0,162,194,0,0,162,194,0,0,166,194,0,0,168,194,0,0,174,194,0,0,186,194,0,0,192,194,0,0,198,194,0,0,206,194,0,0,214,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,178,194,0,0,170,194,0,0,164,194,0,0,156,194,0,0,142,194,0,0,120,194,0,0,92,194,0,0,104,194,0,0,104,194,0,0,88,194,0,0,88,194,0,0,92,194,0,0,108,194,0,0,116,194,0,0,120,194,0,0,140,194,0,0,132,194,0,0,132,194,0,0,134,194,0,0,140,194,0,0,144,194,0,0,150,194,0,0,156,194,0,0,168,194,0,0,168,194,0,0,168,194,0,0,176,194,0,0,182,194,0,0,180,194,0,0,190,194,0,0,196,194,0,0,204,194,0,0,206,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,188,194,0,0,180,194,0,0,174,194,0,0,164,194,0,0,158,194,0,0,146,194,0,0,134,194,0,0,104,194,0,0,60,194,0,0,72,194,0,0,52,194,0,0,36,194,0,0,52,194,0,0,64,194,0,0,48,194,0,0,48,194,0,0,68,194,0,0,88,194,0,0,76,194,0,0,64,194,0,0,60,194,0,0,68,194,0,0,72,194,0,0,76,194,0,0,100,194,0,0,104,194,0,0,112,194,0,0,124,194,0,0,138,194,0,0,140,194,0,0,138,194,0,0,142,194,0,0,148,194,0,0,156,194,0,0,164,194,0,0,180,194,0,0,190,194,0,0,202,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,202,194,0,0,194,194,0,0,186,194,0,0,180,194,0,0,170,194,0,0,160,194,0,0,154,194,0,0,144,194,0,0,130,194,0,0,96,194,0,0,64,194,0,0,20,194,0,0,32,194,0,0,16,194,0,0,8,194,0,0,32,194,0,0,72,194,0,0,60,194,0,0,24,194,0,0,36,194,0,0,60,194,0,0,24,194,0,0,12,194,0,0,28,194,0,0,24,194,0,0,44,194,0,0,32,194,0,0,52,194,0,0,72,194,0,0,52,194,0,0,48,194,0,0,60,194,0,0,72,194,0,0,92,194,0,0,64,194,0,0,64,194,0,0,80,194,0,0,132,194,0,0,140,194,0,0,152,194,0,0,164,194,0,0,180,194,0,0,194,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,172,194,0,0,158,194,0,0,152,194,0,0,166,194,0,0,162,194,0,0,170,194,0,0,174,194,0,0,178,194,0,0,186,194,0,0,196,194,0,0,204,194,0,0,214,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,172,194,0,0,158,194,0,0,142,194,0,0,154,194,0,0,148,194,0,0,154,194,0,0,158,194,0,0,162,194,0,0,168,194,0,0,170,194,0,0,180,194,0,0,184,194,0,0,186,194,0,0,184,194,0,0,196,194,0,0,202,194,0,0,216,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,206,194,0,0,196,194,0,0,186,194,0,0,174,194,0,0,156,194,0,0,136,194,0,0,130,194,0,0,132,194,0,0,120,194,0,0,130,194,0,0,134,194,0,0,140,194,0,0,146,194,0,0,150,194,0,0,156,194,0,0,164,194,0,0,164,194,0,0,166,194,0,0,168,194,0,0,182,194,0,0,186,194,0,0,196,194,0,0,204,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,164,194,0,0,148,194,0,0,120,194,0,0,100,194,0,0,104,194,0,0,96,194,0,0,76,194,0,0,80,194,0,0,80,194,0,0,88,194,0,0,88,194,0,0,104,194,0,0,132,194,0,0,108,194,0,0,112,194,0,0,124,194,0,0,132,194,0,0,138,194,0,0,146,194,0,0,158,194,0,0,166,194,0,0,168,194,0,0,160,194,0,0,162,194,0,0,162,194,0,0,164,194,0,0,176,194,0,0,184,194,0,0,196,194,0,0,210,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,204,194,0,0,194,194,0,0,184,194,0,0,168,194,0,0,158,194,0,0,138,194,0,0,100,194,0,0,60,194,0,0,80,194,0,0,60,194,0,0,48,194,0,0,52,194,0,0,72,194,0,0,80,194,0,0,40,194,0,0,40,194,0,0,84,194,0,0,44,194,0,0,44,194,0,0,64,194,0,0,76,194,0,0,96,194,0,0,92,194,0,0,80,194,0,0,100,194,0,0,108,194,0,0,116,194,0,0,120,194,0,0,134,194,0,0,142,194,0,0,156,194,0,0,166,194,0,0,172,194,0,0,188,194,0,0,196,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,190,194,0,0,180,194,0,0,168,194,0,0,156,194,0,0,140,194,0,0,116,194,0,0,76,194,0,0,36,194,0,0,32,194,0,0,24,194,0,0,32,194,0,0,56,194,0,0,80,194,0,0,76,194,0,0,36,194,0,0,32,194,0,0,56,194,0,0,32,194,0,0,24,194,0,0,24,194,0,0,36,194,0,0,56,194,0,0,36,194,0,0,56,194,0,0,60,194,0,0,44,194,0,0,44,194,0,0,52,194,0,0,36,194,0,0,52,194,0,0,96,194,0,0,134,194,0,0,136,194,0,0,166,194,0,0,174,194,0,0,180,194,0,0,190,194,0,0,204,194,0,0,214,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,218,194,0,0,210,194,0,0,202,194,0,0,192,194,0,0,182,194,0,0,168,194,0,0,154,194,0,0,164,194,0,0,164,194,0,0,170,194,0,0,178,194,0,0,188,194,0,0,200,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,206,194,0,0,196,194,0,0,184,194,0,0,170,194,0,0,160,194,0,0,142,194,0,0,150,194,0,0,144,194,0,0,152,194,0,0,160,194,0,0,168,194,0,0,172,194,0,0,178,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,208,194,0,0,202,194,0,0,194,194,0,0,184,194,0,0,176,194,0,0,168,194,0,0,160,194,0,0,128,194,0,0,132,194,0,0,124,194,0,0,128,194,0,0,132,194,0,0,138,194,0,0,146,194,0,0,154,194,0,0,166,194,0,0,166,194,0,0,172,194,0,0,182,194,0,0,196,194,0,0,208,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,208,194,0,0,202,194,0,0,194,194,0,0,184,194,0,0,180,194,0,0,168,194,0,0,148,194,0,0,100,194,0,0,104,194,0,0,80,194,0,0,92,194,0,0,88,194,0,0,72,194,0,0,80,194,0,0,72,194,0,0,80,194,0,0,124,194,0,0,120,194,0,0,138,194,0,0,152,194,0,0,154,194,0,0,156,194,0,0,156,194,0,0,158,194,0,0,164,194,0,0,176,194,0,0,188,194,0,0,200,194,0,0,212,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,204,194,0,0,196,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,166,194,0,0,156,194,0,0,140,194,0,0,72,194,0,0,72,194,0,0,36,194,0,0,48,194,0,0,68,194,0,0,60,194,0,0,72,194,0,0,72,194,0,0,48,194,0,0,92,194,0,0,56,194,0,0,60,194,0,0,64,194,0,0,64,194,0,0,88,194,0,0,68,194,0,0,68,194,0,0,104,194,0,0,120,194,0,0,142,194,0,0,162,194,0,0,174,194,0,0,184,194,0,0,194,194,0,0,204,194,0,0,216,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,212,194,0,0,204,194,0,0,196,194,0,0,190,194,0,0,180,194,0,0,170,194,0,0,166,194,0,0,156,194,0,0,140,194,0,0,52,194,0,0,44,194,0,0,36,194,0,0,60,194,0,0,72,194,0,0,76,194,0,0,72,194,0,0,68,194,0,0,52,194,0,0,60,194,0,0,36,194,0,0,48,194,0,0,36,194,0,0,28,194,0,0,44,194,0,0,24,194,0,0,20,194,0,0,32,194,0,0,36,194,0,0,48,194,0,0,72,194,0,0,104,194,0,0,130,194,0,0,146,194,0,0,158,194,0,0,170,194,0,0,184,194,0,0,194,194,0,0,202,194,0,0,210,194,0,0,218,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,200,194,0,0,190,194,0,0,174,194,0,0,162,194,0,0,170,194,0,0,166,194,0,0,176,194,0,0,186,194,0,0,200,194,0,0,214,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,202,194,0,0,190,194,0,0,176,194,0,0,166,194,0,0,152,194,0,0,146,194,0,0,144,194,0,0,158,194,0,0,168,194,0,0,180,194,0,0,190,194,0,0,200,194,0,0,210,194,0,0,220,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,208,194,0,0,196,194,0,0,184,194,0,0,174,194,0,0,162,194,0,0,140,194,0,0,130,194,0,0,120,194,0,0,134,194,0,0,142,194,0,0,148,194,0,0,160,194,0,0,170,194,0,0,182,194,0,0,190,194,0,0,198,194,0,0,206,194,0,0,216,194,0,0,222,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,206,194,0,0,194,194,0,0,180,194,0,0,170,194,0,0,152,194,0,0,112,194,0,0,96,194,0,0,88,194,0,0,112,194,0,0,120,194,0,0,116,194,0,0,96,194,0,0,124,194,0,0,130,194,0,0,146,194,0,0,148,194,0,0,154,194,0,0,150,194,0,0,156,194,0,0,162,194,0,0,172,194,0,0,174,194,0,0,176,194,0,0,182,194,0,0,188,194,0,0,196,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,194,194,0,0,184,194,0,0,172,194,0,0,162,194,0,0,158,194,0,0,140,194,0,0,100,194,0,0,76,194,0,0,60,194,0,0,76,194,0,0,104,194,0,0,112,194,0,0,96,194,0,0,84,194,0,0,72,194,0,0,104,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,84,194,0,0,92,194,0,0,128,194,0,0,138,194,0,0,142,194,0,0,170,194,0,0,164,194,0,0,156,194,0,0,162,194,0,0,170,194,0,0,190,194,0,0,204,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,200,194,0,0,194,194,0,0,184,194,0,0,170,194,0,0,166,194,0,0,158,194,0,0,144,194,0,0,68,194,0,0,32,194,0,0,44,194,0,0,44,194,0,0,88,194,0,0,96,194,0,0,76,194,0,0,72,194,0,0,32,194,0,0,44,194,0,0,24,194,0,0,16,194,0,0,12,194,0,0,20,194,0,0,24,194,0,0,20,194,0,0,48,194,0,0,88,194,0,0,112,194,0,0,100,194,0,0,112,194,0,0,140,194,0,0,150,194,0,0,168,194,0,0,184,194,0,0,206,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,204,194,0,0,190,194,0,0,178,194,0,0,164,194,0,0,166,194,0,0,168,194,0,0,180,194,0,0,184,194,0,0,198,194,0,0,214,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,202,194,0,0,190,194,0,0,178,194,0,0,166,194,0,0,144,194,0,0,148,194,0,0,156,194,0,0,170,194,0,0,176,194,0,0,176,194,0,0,180,194,0,0,184,194,0,0,196,194,0,0,210,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,218,194,0,0,206,194,0,0,194,194,0,0,186,194,0,0,174,194,0,0,162,194,0,0,140,194,0,0,140,194,0,0,134,194,0,0,150,194,0,0,146,194,0,0,152,194,0,0,158,194,0,0,162,194,0,0,166,194,0,0,176,194,0,0,178,194,0,0,194,194,0,0,206,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,214,194,0,0,200,194,0,0,188,194,0,0,176,194,0,0,166,194,0,0,150,194,0,0,124,194,0,0,108,194,0,0,108,194,0,0,124,194,0,0,132,194,0,0,112,194,0,0,120,194,0,0,134,194,0,0,134,194,0,0,154,194,0,0,152,194,0,0,162,194,0,0,176,194,0,0,172,194,0,0,184,194,0,0,192,194,0,0,204,194,0,0,218,194,0,0,232,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,196,194,0,0,184,194,0,0,172,194,0,0,162,194,0,0,146,194,0,0,96,194,0,0,80,194,0,0,60,194,0,0,92,194,0,0,112,194,0,0,104,194,0,0,80,194,0,0,76,194,0,0,52,194,0,0,68,194,0,0,72,194,0,0,84,194,0,0,88,194,0,0,116,194,0,0,142,194,0,0,140,194,0,0,138,194,0,0,156,194,0,0,158,194,0,0,174,194,0,0,180,194,0,0,192,194,0,0,208,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,206,194,0,0,192,194,0,0,180,194,0,0,172,194,0,0,156,194,0,0,140,194,0,0,76,194,0,0,40,194,0,0,60,194,0,0,64,194,0,0,92,194,0,0,88,194,0,0,88,194,0,0,84,194,0,0,40,194,0,0,12,194,0,0,224,193,0,0,4,194,0,0,24,194,0,0,20,194,0,0,48,194,0,0,60,194,0,0,68,194,0,0,88,194,0,0,124,194,0,0,136,194,0,0,156,194,0,0,164,194,0,0,178,194,0,0,188,194,0,0,198,194,0,0,208,194,0,0,218,194,0,0,228,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,180,194,0,0,158,194,0,0,170,194,0,0,162,194,0,0,164,194,0,0,164,194,0,0,178,194,0,0,188,194,0,0,198,194,0,0,206,194,0,0,218,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,194,194,0,0,170,194,0,0,144,194,0,0,148,194,0,0,140,194,0,0,140,194,0,0,140,194,0,0,152,194,0,0,170,194,0,0,182,194,0,0,186,194,0,0,194,194,0,0,206,194,0,0,218,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,224,194,0,0,186,194,0,0,162,194,0,0,136,194,0,0,120,194,0,0,112,194,0,0,112,194,0,0,100,194,0,0,124,194,0,0,140,194,0,0,154,194,0,0,164,194,0,0,180,194,0,0,186,194,0,0,196,194,0,0,208,194,0,0,218,194,0,0,226,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,226,194,0,0,200,194,0,0,186,194,0,0,168,194,0,0,124,194,0,0,104,194,0,0,64,194,0,0,84,194,0,0,88,194,0,0,80,194,0,0,80,194,0,0,100,194,0,0,128,194,0,0,132,194,0,0,152,194,0,0,166,194,0,0,162,194,0,0,170,194,0,0,170,194,0,0,180,194,0,0,190,194,0,0,196,194,0,0,202,194,0,0,206,194,0,0,212,194,0,0,216,194,0,0,222,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,210,194,0,0,190,194,0,0,172,194,0,0,148,194,0,0,84,194,0,0,72,194,0,0,24,194,0,0,44,194,0,0,68,194,0,0,44,194,0,0,40,194,0,0,28,194,0,0,28,194,0,0,56,194,0,0,80,194,0,0,100,194,0,0,96,194,0,0,144,194,0,0,138,194,0,0,148,194,0,0,162,194,0,0,174,194,0,0,184,194,0,0,188,194,0,0,194,194,0,0,198,194,0,0,204,194,0,0,210,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,216,194,0,0,198,194,0,0,180,194,0,0,152,194,0,0,132,194,0,0,52,194,0,0,44,194,0,0,36,194,0,0,48,194,0,0,60,194,0,0,44,194,0,0,60,194,0,0,32,194,0,0,240,193,0,0,248,193,0,0,248,193,0,0,28,194,0,0,4,194,0,0,32,194,0,0,36,194,0,0,44,194,0,0,84,194,0,0,108,194,0,0,140,194,0,0,146,194,0,0,154,194,0,0,158,194,0,0,164,194,0,0,168,194,0,0,174,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,182,194,0,0,152,194,0,0,150,194,0,0,170,194,0,0,186,194,0,0,196,194,0,0,208,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,182,194,0,0,140,194,0,0,140,194,0,0,150,194,0,0,172,194,0,0,178,194,0,0,188,194,0,0,196,194,0,0,202,194,0,0,212,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,190,194,0,0,160,194,0,0,112,194,0,0,130,194,0,0,128,194,0,0,148,194,0,0,166,194,0,0,176,194,0,0,182,194],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+40960),
allocate([0,0,190,194,0,0,198,194,0,0,206,194,0,0,214,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,190,194,0,0,160,194,0,0,104,194,0,0,92,194,0,0,68,194,0,0,132,194,0,0,136,194,0,0,142,194,0,0,156,194,0,0,156,194,0,0,160,194,0,0,176,194,0,0,170,194,0,0,178,194,0,0,194,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,190,194,0,0,160,194,0,0,84,194,0,0,80,194,0,0,36,194,0,0,108,194,0,0,108,194,0,0,68,194,0,0,104,194,0,0,96,194,0,0,124,194,0,0,172,194,0,0,158,194,0,0,180,194,0,0,186,194,0,0,196,194,0,0,206,194,0,0,214,194,0,0,224,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,194,194,0,0,182,194,0,0,146,194,0,0,52,194,0,0,32,194,0,0,4,194,0,0,84,194,0,0,116,194,0,0,68,194,0,0,88,194,0,0,72,194,0,0,72,194,0,0,112,194,0,0,80,194,0,0,134,194,0,0,148,194,0,0,162,194,0,0,184,194,0,0,192,194,0,0,200,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,226,194,0,0,212,194,0,0,198,194,0,0,184,194,0,0,154,194,0,0,160,194,0,0,176,194,0,0,194,194,0,0,212,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,232,194,0,0,218,194,0,0,204,194,0,0,190,194,0,0,178,194,0,0,148,194,0,0,144,194,0,0,176,194,0,0,174,194,0,0,190,194,0,0,204,194,0,0,218,194,0,0,232,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,232,194,0,0,218,194,0,0,204,194,0,0,190,194,0,0,178,194,0,0,150,194,0,0,132,194,0,0,148,194,0,0,154,194,0,0,156,194,0,0,172,194,0,0,174,194,0,0,180,194,0,0,192,194,0,0,210,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,230,194,0,0,216,194,0,0,202,194,0,0,188,194,0,0,176,194,0,0,132,194,0,0,96,194,0,0,116,194,0,0,140,194,0,0,130,194,0,0,156,194,0,0,144,194,0,0,166,194,0,0,168,194,0,0,186,194,0,0,196,194,0,0,210,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,210,194,0,0,190,194,0,0,178,194,0,0,164,194,0,0,100,194,0,0,80,194,0,0,80,194,0,0,108,194,0,0,96,194,0,0,108,194,0,0,104,194,0,0,138,194,0,0,134,194,0,0,176,194,0,0,164,194,0,0,164,194,0,0,178,194,0,0,188,194,0,0,200,194,0,0,216,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,202,194,0,0,192,194,0,0,180,194,0,0,166,194,0,0,154,194,0,0,88,194,0,0,44,194,0,0,24,194,0,0,72,194,0,0,64,194,0,0,80,194,0,0,64,194,0,0,40,194,0,0,40,194,0,0,76,194,0,0,80,194,0,0,84,194,0,0,108,194,0,0,130,194,0,0,142,194,0,0,156,194,0,0,170,194,0,0,190,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,210,194,0,0,172,194,0,0,136,194,0,0,156,194,0,0,158,194,0,0,180,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,210,194,0,0,172,194,0,0,132,194,0,0,146,194,0,0,154,194,0,0,176,194,0,0,192,194,0,0,210,194,0,0,230,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,210,194,0,0,184,194,0,0,160,194,0,0,116,194,0,0,128,194,0,0,136,194,0,0,160,194,0,0,174,194,0,0,184,194,0,0,200,194,0,0,220,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,240,194,0,0,208,194,0,0,182,194,0,0,158,194,0,0,80,194,0,0,112,194,0,0,88,194,0,0,128,194,0,0,138,194,0,0,154,194,0,0,160,194,0,0,164,194,0,0,168,194,0,0,170,194,0,0,174,194,0,0,176,194,0,0,180,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,236,194,0,0,200,194,0,0,174,194,0,0,154,194,0,0,68,194,0,0,72,194,0,0,48,194,0,0,104,194,0,0,116,194,0,0,116,194,0,0,134,194,0,0,130,194,0,0,120,194,0,0,120,194,0,0,120,194,0,0,130,194,0,0,136,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,230,194,0,0,196,194,0,0,168,194,0,0,120,194,0,0,68,194,0,0,48,194,0,0,24,194,0,0,56,194,0,0,68,194,0,0,68,194,0,0,56,194,0,0,28,194,0,0,20,194,0,0,28,194,0,0,32,194,0,0,40,194,0,0,44,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,176,194,0,0,148,194,0,0,154,194,0,0,164,194,0,0,164,194,0,0,170,194,0,0,180,194,0,0,188,194,0,0,198,194,0,0,208,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,176,194,0,0,132,194,0,0,140,194,0,0,162,194,0,0,160,194,0,0,162,194,0,0,168,194,0,0,176,194,0,0,182,194,0,0,186,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,176,194,0,0,116,194,0,0,124,194,0,0,140,194,0,0,142,194,0,0,148,194,0,0,154,194,0,0,160,194,0,0,166,194,0,0,170,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,172,194,0,0,120,194,0,0,124,194,0,0,120,194,0,0,120,194,0,0,104,194,0,0,80,194,0,0,72,194,0,0,72,194,0,0,80,194,0,0,88,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,236,194,0,0,216,194,0,0,168,194,0,0,84,194,0,0,72,194,0,0,72,194,0,0,72,194,0,0,92,194,0,0,60,194,0,0,52,194,0,0,32,194,0,0,32,194,0,0,32,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,236,194,0,0,200,194,0,0,146,194,0,0,44,194,0,0,20,194,0,0,40,194,0,0,44,194,0,0,84,194,0,0,24,194,0,0,20,194,0,0,12,194,0,0,12,194,0,0,24,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,182,194,0,0,168,194,0,0,148,194,0,0,160,194,0,0,160,194,0,0,160,194,0,0,160,194,0,0,160,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,182,194,0,0,168,194,0,0,148,194,0,0,136,194,0,0,136,194,0,0,136,194,0,0,136,194,0,0,136,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,172,194,0,0,156,194,0,0,140,194,0,0,112,194,0,0,52,194,0,0,240,193,0,0,168,193,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,174,194,0,0,156,194,0,0,134,194,0,0,64,194,0,0,24,194,0,0,232,193,0,0,168,193,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,172,194,0,0,138,194,0,0,96,194,0,0,52,194,0,0,12,194,0,0,4,194,0,0,232,193,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,220,194,0,0,200,194,0,0,166,194,0,0,142,194,0,0,64,194,0,0,216,193,0,0,24,194,0,0,20,194,0,0,8,194,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,192,121,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,226,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,111,114,98,105,115,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+51200);var tempDoublePtr=STATICTOP;STATICTOP+=16,Module._i64Subtract=_i64Subtract;var _llvm_pow_f64=Math_pow;Module._i64Add=_i64Add,Module._memset=_memset,Module._bitshift64Shl=_bitshift64Shl,Module._llvm_bswap_i32=_llvm_bswap_i32,Module._sbrk=_sbrk;var _llvm_sqrt_f64=Math_sqrt;Module._memcpy=_memcpy,DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0,Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort:abort,assert:assert,enlargeMemory:enlargeMemory,getTotalMemory:getTotalMemory,abortOnCannotGrowMemory:abortOnCannotGrowMemory,invoke_iiiii:invoke_iiiii,invoke_vi:invoke_vi,invoke_vii:invoke_vii,invoke_ii:invoke_ii,invoke_viii:invoke_viii,invoke_iiiiiiiii:invoke_iiiiiiiii,invoke_iii:invoke_iii,invoke_iiiiii:invoke_iiiiii,_ogvjs_callback_init_audio:_ogvjs_callback_init_audio,_llvm_pow_f64:_llvm_pow_f64,_llvm_sqrt_f64:_llvm_sqrt_f64,_abort:_abort,___setErrNo:___setErrNo,_ogvjs_callback_audio:_ogvjs_callback_audio,_emscripten_memcpy_big:_emscripten_memcpy_big,_exit:_exit,__exit:__exit,DYNAMICTOP_PTR:DYNAMICTOP_PTR,tempDoublePtr:tempDoublePtr,ABORT:ABORT,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX};var asm=function(e,t,n){"use asm";var i=new e.Int8Array(n);var a=new e.Int16Array(n);var r=new e.Int32Array(n);var o=new e.Uint8Array(n);var s=new e.Uint16Array(n);var l=new e.Uint32Array(n);var c=new e.Float32Array(n);var d=new e.Float64Array(n);var u=t.DYNAMICTOP_PTR|0;var p=t.tempDoublePtr|0;var f=t.ABORT|0;var m=t.STACKTOP|0;var h=t.STACK_MAX|0;var g=0;var _=0;var v=0;var y=0;var b=e.NaN,w=e.Infinity;var k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0;var x=0;var P=e.Math.floor;var D=e.Math.abs;var R=e.Math.sqrt;var O=e.Math.pow;var N=e.Math.cos;var L=e.Math.sin;var F=e.Math.tan;var U=e.Math.acos;var B=e.Math.asin;var H=e.Math.atan;var j=e.Math.atan2;var V=e.Math.exp;var q=e.Math.log;var z=e.Math.ceil;var W=e.Math.imul;var G=e.Math.min;var K=e.Math.max;var Y=e.Math.clz32;var X=t.abort;var J=t.assert;var Z=t.enlargeMemory;var Q=t.getTotalMemory;var ee=t.abortOnCannotGrowMemory;var te=t.invoke_iiiii;var ne=t.invoke_vi;var ie=t.invoke_vii;var ae=t.invoke_ii;var re=t.invoke_viii;var oe=t.invoke_iiiiiiiii;var se=t.invoke_iii;var le=t.invoke_iiiiii;var ce=t._ogvjs_callback_init_audio;var de=t._llvm_pow_f64;var ue=t._llvm_sqrt_f64;var pe=t._abort;var fe=t.___setErrNo;var me=t._ogvjs_callback_audio;var he=t._emscripten_memcpy_big;var ge=t._exit;var _e=t.__exit;var ve=0;function ye(e){e=e|0;var t=0;t=m;m=m+e|0;m=m+15&-16;return t|0}function be(){return m|0}function we(e){e=e|0;m=e}function ke(e,t){e=e|0;t=t|0;m=e;h=t}function Me(e,t){e=e|0;t=t|0;if(!g){g=e;_=t}}function Se(e){e=e|0;x=e}function Ae(){return x|0}function Ce(e){e=e|0;var t=0;t=e;r[t>>2]=0;r[t+4>>2]=0;t=Yn(256)|0;r[e+8>>2]=t;r[e+12>>2]=t;i[t>>0]=0;r[e+16>>2]=256;return}function Te(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,s=0,l=0,c=0,d=0,u=0;do if(n>>>0<=32){a=e+16|0;s=r[a>>2]|0;l=e+12|0;c=r[l>>2]|0;if((r[e>>2]|0)<(s+-4|0))d=c;else{if(!c)return;if((s|0)>2147483391)break;c=e+8|0;u=Zn(r[c>>2]|0,s+256|0)|0;if(!u)break;r[c>>2]=u;r[a>>2]=(r[a>>2]|0)+256;a=u+(r[e>>2]|0)|0;r[l>>2]=a;d=a}a=r[152+(n<<2)>>2]&t;u=e+4|0;c=r[u>>2]|0;s=c+n|0;i[d>>0]=o[d>>0]|0|a<<c;if((((s|0)>7?(i[(r[l>>2]|0)+1>>0]=a>>>(8-(r[u>>2]|0)|0),(s|0)>15):0)?(i[(r[l>>2]|0)+2>>0]=a>>>(16-(r[u>>2]|0)|0),(s|0)>23):0)?(i[(r[l>>2]|0)+3>>0]=a>>>(24-(r[u>>2]|0)|0),(s|0)>31):0){c=r[u>>2]|0;i[(r[l>>2]|0)+4>>0]=(c|0)==0?0:a>>>(32-c|0)&255}c=(s|0)/8|0;r[e>>2]=(r[e>>2]|0)+c;r[l>>2]=(r[l>>2]|0)+c;r[u>>2]=s&7;return}while(0);d=r[e+8>>2]|0;if(d|0)Xn(d);r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;r[e+16>>2]=0;return}function Ee(e){e=e|0;var t=0;t=r[e+8>>2]|0;if(t|0)Xn(t);r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;r[e+16>>2]=0;return}function $e(e,t,n){e=e|0;t=t|0;n=n|0;var i=0;i=e;r[i>>2]=0;r[i+4>>2]=0;r[e+12>>2]=t;r[e+8>>2]=t;r[e+16>>2]=n;return}function Ie(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,s=0,l=0,c=0,d=0,u=0;if(t>>>0>32){n=-1;return n|0}i=r[152+(t<<2)>>2]|0;a=r[e+4>>2]|0;s=a+t|0;t=r[e>>2]|0;l=r[e+16>>2]|0;if((t|0)>=(l+-4|0)){if((t|0)>(l-(s+7>>3)|0)){n=-1;return n|0}if(!s){n=0;return n|0}}l=r[e+12>>2]|0;e=(o[l>>0]|0)>>>a;if((s|0)>8){t=(o[l+1>>0]|0)<<8-a|e;if((s|0)>16){c=(o[l+2>>0]|0)<<16-a|t;if((s|0)>24){d=(o[l+3>>0]|0)<<24-a|c;if((a|0)==0|(s|0)<33)u=d;else u=(o[l+4>>0]|0)<<32-a|d}else u=c}else u=t}else u=e;n=u&i;return n|0}function xe(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=e+4|0;i=(r[n>>2]|0)+t|0;t=r[e>>2]|0;a=r[e+16>>2]|0;if((t|0)>(a-(i+7>>3)|0)){r[e+12>>2]=0;r[e>>2]=a;o=1;r[n>>2]=o;return}else{a=(i|0)/8|0;s=e+12|0;r[s>>2]=(r[s>>2]|0)+a;r[e>>2]=a+t;o=i&7;r[n>>2]=o;return}}function Pe(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0;n=r[e+16>>2]|0;do if(t>>>0>32){i=e+4|0;a=e}else{s=r[152+(t<<2)>>2]|0;l=e+4|0;c=r[l>>2]|0;d=c+t|0;u=r[e>>2]|0;if((u|0)>=(n+-4|0)){if((u|0)>(n-(d+7>>3)|0)){i=l;a=e;break}if(!d){p=0;return p|0}}f=e+12|0;m=r[f>>2]|0;h=(o[m>>0]|0)>>>c;if((d|0)>8){g=(o[m+1>>0]|0)<<8-c|h;if((d|0)>16){_=(o[m+2>>0]|0)<<16-c|g;if((d|0)>24){v=(o[m+3>>0]|0)<<24-c|_;if((c|0)==0|(d|0)<33)y=v;else y=(o[m+4>>0]|0)<<32-c|v}else y=_}else y=g}else y=h;h=(d|0)/8|0;r[f>>2]=m+h;r[e>>2]=u+h;r[l>>2]=d&7;p=y&s;return p|0}while(0);r[e+12>>2]=0;r[a>>2]=n;r[i>>2]=1;p=-1;return p|0}function De(e){e=e|0;return(((r[e+4>>2]|0)+7|0)/8|0)+(r[e>>2]|0)|0}function Re(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0;n=e+836|0;i=r[e+840>>2]|0;Te(t,r[e>>2]|0,5);if((r[e>>2]|0)>0){a=e+4|0;o=0;s=-1;do{l=a+(o<<2)|0;Te(t,r[l>>2]|0,4);c=r[l>>2]|0;s=(s|0)<(c|0)?c:s;o=o+1|0}while((o|0)<(r[e>>2]|0));if((s|0)>=0){o=e+128|0;a=e+192|0;c=e+256|0;l=e+320|0;d=0;while(1){Te(t,(r[o+(d<<2)>>2]|0)+-1|0,3);u=a+(d<<2)|0;Te(t,r[u>>2]|0,2);if(!((r[u>>2]|0)!=0?(Te(t,r[c+(d<<2)>>2]|0,8),(r[u>>2]|0)==31):0)){p=0;f=8}if((f|0)==8)while(1){f=0;Te(t,(r[l+(d<<5)+(p<<2)>>2]|0)+1|0,8);p=p+1|0;if((p|0)>=(1<<r[u>>2]|0))break;else f=8}if((d|0)==(s|0))break;else d=d+1|0}}}Te(t,(r[e+832>>2]|0)+-1|0,2);d=i+-1|0;if((i|0)==0|(d|0)==0){Te(t,0,4);m=0}else{i=0;s=d;do{i=i+1|0;s=s>>>1}while((s|0)!=0);Te(t,i,4);i=0;s=d;while(1){d=i+1|0;s=s>>>1;if(!s){m=d;break}else i=d}}i=r[e>>2]|0;if((i|0)<=0)return;s=e+128|0;d=e+4|0;f=i;i=0;p=0;l=0;while(1){i=(r[s+(r[d+(p<<2)>>2]<<2)>>2]|0)+i|0;if((l|0)<(i|0)){c=l;do{Te(t,r[n+(c+2<<2)>>2]|0,m);c=c+1|0}while((c|0)!=(i|0));h=r[e>>2]|0;g=i}else{h=f;g=l}p=p+1|0;if((p|0)>=(h|0))break;else{f=h;l=g}}return}function Oe(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0;n=m;m=m+272|0;i=n;a=r[e+28>>2]|0;e=Jn(1,1120)|0;o=Pe(t,5)|0;r[e>>2]=o;e:do if((o|0)>0){s=e+4|0;l=0;c=-1;do{d=Pe(t,4)|0;r[s+(l<<2)>>2]=d;if((d|0)<0)break e;c=(c|0)<(d|0)?d:c;l=l+1|0}while((l|0)<(r[e>>2]|0));if((c|0)>=0){l=e+128|0;s=e+192|0;d=e+256|0;u=a+24|0;p=e+320|0;f=0;while(1){r[l+(f<<2)>>2]=(Pe(t,3)|0)+1;h=Pe(t,2)|0;g=s+(f<<2)|0;r[g>>2]=h;if((h|0)<0)break e;_=d+(f<<2)|0;if(!h)v=r[_>>2]|0;else{h=Pe(t,8)|0;r[_>>2]=h;v=h}if((v|0)<0)break e;if((v|0)>=(r[u>>2]|0))break e;if((r[g>>2]|0)!=31){h=0;do{_=Pe(t,8)|0;r[p+(f<<5)+(h<<2)>>2]=_+-1;if((_|0)<0)break e;h=h+1|0;if((_|0)>(r[u>>2]|0))break e}while((h|0)<(1<<r[g>>2]|0))}if((f|0)<(c|0))f=f+1|0;else{y=18;break}}}else y=18}else y=18;while(0);e:do if((y|0)==18?(r[e+832>>2]=(Pe(t,2)|0)+1,v=Pe(t,4)|0,(v|0)>=0):0){a=r[e>>2]|0;if((a|0)>0){o=e+128|0;f=e+4|0;c=e+836|0;u=1<<v;p=a;a=0;d=0;s=0;while(1){l=(r[o+(r[f+(d<<2)>>2]<<2)>>2]|0)+a|0;if((l|0)>63)break e;if((s|0)<(l|0)){g=s;do{h=Pe(t,v)|0;r[c+(g+2<<2)>>2]=h;if(!((h|0)>-1&(h|0)<(u|0)))break e;g=g+1|0}while((g|0)<(l|0));b=r[e>>2]|0;w=g}else{b=p;w=s}d=d+1|0;if((d|0)>=(b|0)){k=l;M=c;S=u;break}else{p=b;a=l;s=w}}}else{k=0;M=e+836|0;S=1<<v}r[M>>2]=0;r[e+840>>2]=S;s=k+2|0;if((k|0)>-2){a=0;do{r[i+(a<<2)>>2]=M+(a<<2);a=a+1|0}while((a|0)<(s|0))}Ln(i,s,4,11);t:do if((s|0)>1){a=r[r[i>>2]>>2]|0;v=1;while(1){p=a;a=r[r[i+(v<<2)>>2]>>2]|0;v=v+1|0;if((p|0)==(a|0))break;if((v|0)>=(s|0))break t}if(!e)A=0;else break e;m=n;return A|0}while(0);A=e;m=n;return A|0}while(0);Xn(e);A=0;m=n;return A|0}function Ne(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0;e=m;m=m+272|0;n=e;i=Jn(1,1312)|0;r[i+1296>>2]=t;a=t+836|0;o=i+1288|0;r[o>>2]=r[t+840>>2];s=r[t>>2]|0;if((s|0)>0){l=t+128|0;c=t+4|0;d=0;u=0;do{u=(r[l+(r[c+(d<<2)>>2]<<2)>>2]|0)+u|0;d=d+1|0}while((d|0)<(s|0));s=u+2|0;r[i+1284>>2]=s;if((u|0)>-2){p=s;f=u;h=7}else{Ln(n,s,4,11);g=u}}else{r[i+1284>>2]=2;p=2;f=0;h=7}if((h|0)==7){u=0;do{r[n+(u<<2)>>2]=a+(u<<2);u=u+1|0}while((u|0)<(p|0));Ln(n,p,4,11);u=a;s=i+260|0;d=0;do{r[s+(d<<2)>>2]=(r[n+(d<<2)>>2]|0)-u>>2;d=d+1|0}while((d|0)<(p|0));d=i+520|0;u=i+260|0;n=0;do{r[d+(r[u+(n<<2)>>2]<<2)>>2]=n;n=n+1|0}while((n|0)<(p|0));n=i+260|0;u=0;do{r[i+(u<<2)>>2]=r[a+(r[n+(u<<2)>>2]<<2)>>2];u=u+1|0}while((u|0)<(p|0));g=f}switch(r[t+832>>2]|0){case 1:{_=256;h=19;break}case 2:{_=128;h=19;break}case 3:{_=86;h=19;break}case 4:{_=64;h=19;break}default:{}}if((h|0)==19)r[i+1292>>2]=_;if((g|0)<=0){m=e;return i|0}_=i+1032|0;h=i+780|0;t=0;f=2;while(1){p=r[a+(t+2<<2)>>2]|0;u=1;n=r[o>>2]|0;d=0;s=0;c=0;while(1){l=r[a+(d<<2)>>2]|0;v=(l|0)>(c|0)&(l|0)<(p|0);s=v?d:s;y=(l|0)<(n|0)&(l|0)>(p|0);u=y?d:u;d=d+1|0;if((d|0)==(f|0))break;else{n=y?l:n;c=v?l:c}}r[_+(t<<2)>>2]=s;r[h+(t<<2)>>2]=u;t=t+1|0;if((t|0)==(g|0))break;else f=f+1|0}m=e;return i|0}function Le(e){e=e|0;if(!e)return;Xn(e);return}function Fe(e){e=e|0;if(!e)return;Xn(e);return}function Ue(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;n=r[t+1296>>2]|0;i=r[(r[(r[(r[e+64>>2]|0)+4>>2]|0)+28>>2]|0)+2848>>2]|0;a=e+4|0;if((Pe(a,1)|0)!=1){o=0;return o|0}s=t+1284|0;l=He(e,r[s>>2]<<2)|0;e=t+1292|0;c=(r[e>>2]|0)+-1|0;if(!c)d=0;else{u=0;p=c;while(1){c=u+1|0;p=p>>>1;if(!p){d=c;break}else u=c}}r[l>>2]=Pe(a,d)|0;d=(r[e>>2]|0)+-1|0;if(!d)f=0;else{u=0;p=d;while(1){d=u+1|0;p=p>>>1;if(!p){f=d;break}else u=d}}r[l+4>>2]=Pe(a,f)|0;e:do if((r[n>>2]|0)>0){f=0;u=2;t:while(1){p=r[n+4+(f<<2)>>2]|0;d=r[n+128+(p<<2)>>2]|0;c=r[n+192+(p<<2)>>2]|0;m=1<<c;if(c){h=je(i+((r[n+256+(p<<2)>>2]|0)*56|0)|0,a)|0;if((h|0)==-1){o=0;g=29;break}else _=h}else _=0;if((d|0)>0){h=m+-1|0;m=_;v=0;do{y=r[n+320+(p<<5)+((m&h)<<2)>>2]|0;m=m>>c;if((y|0)>-1){b=je(i+(y*56|0)|0,a)|0;r[l+(v+u<<2)>>2]=b;if((b|0)==-1){o=0;g=29;break t}}else r[l+(v+u<<2)>>2]=0;v=v+1|0}while((v|0)<(d|0))}f=f+1|0;if((f|0)>=(r[n>>2]|0))break e;else u=d+u|0;
}if((g|0)==29)return o|0}while(0);if((r[s>>2]|0)<=2){o=l;return o|0}g=t+1032|0;a=t+780|0;t=2;do{i=t+-2|0;_=g+(i<<2)|0;u=r[_>>2]|0;f=r[n+836+(u<<2)>>2]|0;v=a+(i<<2)|0;i=r[v>>2]|0;c=r[l+(u<<2)>>2]&32767;u=(r[l+(i<<2)>>2]&32767)-c|0;m=(W((u|0)>-1?u:0-u|0,(r[n+836+(t<<2)>>2]|0)-f|0)|0)/((r[n+836+(i<<2)>>2]|0)-f|0)|0;f=((u|0)<0?0-m|0:m)+c|0;c=(r[e>>2]|0)-f|0;m=l+(t<<2)|0;u=r[m>>2]|0;if(!u)r[m>>2]=f|32768;else{do if((u|0)<(((c|0)<(f|0)?c:f)<<1|0))if(!(u&1)){w=u>>1;break}else{w=0-(u+1>>1)|0;break}else if((c|0)>(f|0)){w=u-f|0;break}else{w=~(u-c);break}while(0);r[m>>2]=w+f&32767;c=l+(r[_>>2]<<2)|0;r[c>>2]=r[c>>2]&32767;c=l+(r[v>>2]<<2)|0;r[c>>2]=r[c>>2]&32767}t=t+1|0}while((t|0)<(r[s>>2]|0));o=l;return o|0}function Be(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0;a=r[t+1296>>2]|0;o=(r[(r[(r[(r[e+64>>2]|0)+4>>2]|0)+28>>2]|0)+(r[e+28>>2]<<2)>>2]|0)/2|0;if(!n){ai(i|0,0,o<<2|0)|0;s=0;return s|0}e=r[a+832>>2]|0;l=W(e,r[n>>2]|0)|0;d=(l|0)<0?0:(l|0)<255?l:255;l=r[t+1284>>2]|0;if((l|0)>1){u=t+260|0;t=0;p=1;f=0;m=d;while(1){h=r[u+(p<<2)>>2]|0;g=r[n+(h<<2)>>2]|0;e:do if((g&32767|0)==(g|0)){_=r[a+836+(h<<2)>>2]|0;v=W(e,g)|0;y=(v|0)<0?0:(v|0)<255?v:255;v=y-m|0;b=_-f|0;w=(v|0)/(b|0)|0;k=v>>31|1;M=W(w,b)|0;S=((v|0)>-1?v:0-v|0)-((M|0)>-1?M:0-M|0)|0;M=(o|0)>(_|0)?_:o;if((M|0)>(f|0)){A=0;C=f;T=m;E=8}else{$=0;I=f;x=m}while(1){if((E|0)==8){E=0;v=i+(C<<2)|0;c[v>>2]=+c[v>>2]*+c[476+(T<<2)>>2];$=A;I=C;x=T}v=I+1|0;if((v|0)>=(M|0)){P=_;D=_;R=y;break e}O=$+S|0;N=(O|0)<(b|0);A=O-(N?0:b)|0;C=v;T=x+w+(N?0:k)|0;E=8}}else{P=t;D=f;R=m}while(0);p=p+1|0;if((p|0)>=(l|0)){L=P;F=R;break}else{t=P;f=D;m=R}}}else{L=0;F=d}if((L|0)>=(o|0)){s=1;return s|0}U=+c[476+(F<<2)>>2];F=L;do{L=i+(F<<2)|0;c[L>>2]=+c[L>>2]*U;F=F+1|0}while((F|0)!=(o|0));s=1;return s|0}function He(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;n=t+7&-8;t=e+72|0;i=r[t>>2]|0;a=e+76|0;o=e+68|0;s=r[o>>2]|0;if((i+n|0)<=(r[a>>2]|0)){l=s;c=i;d=l+c|0;u=c+n|0;r[t>>2]=u;return d|0}if(s|0){p=Yn(8)|0;f=e+80|0;r[f>>2]=(r[f>>2]|0)+i;i=e+84|0;r[p+4>>2]=r[i>>2];r[p>>2]=s;r[i>>2]=p}r[a>>2]=n;a=Yn(n)|0;r[o>>2]=a;r[t>>2]=0;l=a;c=0;d=l+c|0;u=c+n|0;r[t>>2]=u;return d|0}function je(e,t){e=e|0;t=t|0;var n=0,i=0;if((r[e+8>>2]|0)<=0){n=-1;return n|0}i=Ve(e,t)|0;if((i|0)<=-1){n=-1;return n|0}n=r[(r[e+24>>2]|0)+(i<<2)>>2]|0;return n|0}function Ve(e,t){e=e|0;t=t|0;var n=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0;n=r[e+40>>2]|0;a=Ie(t,r[e+36>>2]|0)|0;do if((a|0)>-1){o=r[(r[e+32>>2]|0)+(a<<2)>>2]|0;if((o|0)<0){s=(r[e+8>>2]|0)-(o&32767)|0;l=o>>>15&32767;break}c=o+-1|0;xe(t,i[(r[e+28>>2]|0)+c>>0]|0);d=c;return d|0}else{s=r[e+8>>2]|0;l=0}while(0);a=n;while(1){u=Ie(t,a)|0;p=(u|0)<0;if((a|0)>1&p)a=a+-1|0;else break}if(p){d=-1;return d|0}p=oi(u|0)|0;u=p>>>4&252645135|p<<4&-252645136;p=u>>>2&858993459|u<<2&-858993460;u=p>>>1&1431655765|p<<1&-1431655766;p=s-l|0;if((p|0)>1){n=r[e+20>>2]|0;c=s;s=l;o=p;while(1){p=o>>>1;f=(r[n+(p+s<<2)>>2]|0)>>>0>u>>>0;m=(f?0:p)+s|0;c=c-(f?p:0)|0;o=c-m|0;if((o|0)<=1){h=m;break}else s=m}}else h=l;l=i[(r[e+28>>2]|0)+h>>0]|0;if((l|0)>(a|0)){xe(t,a);d=-1;return d|0}else{xe(t,l);d=h;return d|0}return 0}function qe(e,t){e=e|0;t=t|0;return(r[r[e>>2]>>2]|0)-(r[r[t>>2]>>2]|0)|0}function ze(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0;n=r[e+28>>2]|0;e=Yn(96)|0;i=Pe(t,8)|0;r[e>>2]=i;a=Pe(t,16)|0;r[e+4>>2]=a;o=Pe(t,16)|0;r[e+8>>2]=o;r[e+12>>2]=Pe(t,6)|0;r[e+16>>2]=Pe(t,8)|0;s=Pe(t,4)|0;l=e+20|0;r[l>>2]=s+1;e:do if((i|0)<1){if(!e){c=0;return c|0}}else if((a|0)>=1?!((s|0)<0|(o|0)<1):0){if((s|0)<=-1){c=e;return c|0}d=e+24|0;u=n+24|0;p=0;while(1){f=Pe(t,8)|0;r[d+(p<<2)>>2]=f;if((f|0)<0)break e;if((f|0)>=(r[u>>2]|0))break e;m=r[n+1824+(f<<2)>>2]|0;if(!(r[m+12>>2]|0))break e;p=p+1|0;if((r[m>>2]|0)<1)break e;if((p|0)>=(r[l>>2]|0)){c=e;break}}return c|0}while(0);Xn(e);c=0;return c|0}function We(e,t){e=e|0;t=t|0;e=Jn(1,32)|0;r[e+4>>2]=r[t>>2];r[e>>2]=r[t+8>>2];r[e+20>>2]=t;r[e+8>>2]=Jn(2,4)|0;return e|0}function Ge(e){e=e|0;if(!e)return;Xn(e);return}function Ke(e){e=e|0;var t=0,n=0,i=0,a=0,o=0;if(!e)return;t=e+8|0;n=r[t>>2]|0;if(n|0){i=r[n>>2]|0;if(!i)a=n;else{Xn(i);a=r[t>>2]|0}i=r[a+4>>2]|0;if(!i)o=a;else{Xn(i);o=r[t>>2]|0}Xn(o)}Xn(e);return}function Ye(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0;n=r[t+20>>2]|0;i=e+4|0;a=n+12|0;o=Pe(i,r[a>>2]|0)|0;if((o|0)<=0){s=0;return s|0}l=+(o|0)/+((1<<r[a>>2])+-1|0)*+(r[n+16>>2]|0);a=n+20|0;o=Pe(i,Ze(r[a>>2]|0)|0)|0;if((o|0)==-1){s=0;return s|0}if((o|0)>=(r[a>>2]|0)){s=0;return s|0}a=(r[(r[(r[(r[e+64>>2]|0)+4>>2]|0)+28>>2]|0)+2848>>2]|0)+((r[n+24+(o<<2)>>2]|0)*56|0)|0;o=t+4|0;t=He(e,((r[a>>2]|0)+(r[o>>2]|0)<<2)+4|0)|0;if((Qe(a,t,i,r[o>>2]|0)|0)==-1){s=0;return s|0}i=r[o>>2]|0;if((i|0)>0){o=0;d=0;while(1){e:do if((o|0)<(i|0)){e=r[a>>2]|0;n=o;u=0;while(1){if((u|0)>=(e|0)){p=n;break e}f=t+(n<<2)|0;c[f>>2]=+c[f>>2]+d;f=n+1|0;if((f|0)<(i|0)){n=f;u=u+1|0}else{p=f;break}}}else p=o;while(0);if((p|0)<(i|0)){o=p;d=+c[t+(p+-1<<2)>>2]}else break}}c[t+(i<<2)>>2]=l;s=t;return s|0}function Xe(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;a=r[t+20>>2]|0;o=t+8|0;s=r[e+28>>2]|0;l=(r[o>>2]|0)+(s<<2)|0;if(!(r[l>>2]|0)){d=r[(r[(r[(r[e+64>>2]|0)+4>>2]|0)+28>>2]|0)+(s<<2)>>2]|0;e=(d|0)/2|0;u=r[t>>2]|0;p=+(r[a+4>>2]|0);r[l>>2]=Yn((e<<2)+4|0)|0;l=r[(r[o>>2]|0)+(s<<2)>>2]|0;e:do if((d|0)>1){f=p*.5/+(e|0);m=+(u|0)/(+H(+(p*p*4.624999938585006e-9))*2.240000009536743+p*4999999873689376e-20+ +H(+(p*.0003699999942909926))*13.100000381469727);h=u;g=0;while(1){_=+(g|0)*f;v=~~+P(+((+H(+(_*_*1.8499999754340024e-8))*2.240000009536743+ +H(+(_*.0007399999885819852))*13.100000381469727+_*9999999747378752e-20)*m));r[l+(g<<2)>>2]=(v|0)<(h|0)?v:h+-1|0;v=g+1|0;if((v|0)>=(e|0)){y=v;break e}h=r[t>>2]|0;g=v}}else y=0;while(0);r[l+(y<<2)>>2]=-1;r[t+12+(s<<2)>>2]=e;b=e}else b=r[t+12+(s<<2)>>2]|0;if(!n){ai(i|0,0,b<<2|0)|0;w=0;return w|0}else{e=r[t+4>>2]|0;Je(i,r[(r[o>>2]|0)+(s<<2)>>2]|0,b,r[t>>2]|0,n,e,+c[n+(e<<2)>>2],+(r[a+16>>2]|0));w=1;return w|0}return 0}function Je(e,t,n,i,a,o,s,l){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=+s;l=+l;var d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;d=3.141592653589793/+(i|0);if((o|0)>0){i=0;do{u=a+(i<<2)|0;c[u>>2]=+N(+ +c[u>>2])*2;i=i+1|0}while((i|0)!=(o|0))}if((n|0)<=0)return;p=s;s=l;if((o|0)<=1){i=(o|0)==1;u=r[t>>2]|0;f=0;while(1){l=+N(+(+(u|0)*d))*2;if(i){m=(l-+c[a>>2])*.5;h=4-l*l;g=m*m}else{h=2-l;g=(l+2)*.25}l=+V(+((p/+R(+(g+h*.25))-s)*.1151292473077774));_=f;do{v=e+(_<<2)|0;c[v>>2]=+c[v>>2]*l;_=_+1|0;y=r[t+(_<<2)>>2]|0}while((y|0)==(u|0));if((_|0)<(n|0)){u=y;f=_}else break}return}f=o+-2|0;y=((f&-2)+3|0)==(o|0);u=a+((f|1)+1<<2)|0;f=r[t>>2]|0;i=0;while(1){h=+N(+(+(f|0)*d))*2;v=1;g=.5;l=.5;do{l=(h-+c[a+(v+-1<<2)>>2])*l;g=(h-+c[a+(v<<2)>>2])*g;v=v+2|0}while((v|0)<(o|0));if(y){m=(h-+c[u>>2])*l;b=g*g*(4-h*h);w=m*m}else{b=g*g*(2-h);w=l*l*(h+2)}m=+V(+((p/+R(+(w+b))-s)*.1151292473077774));v=i;do{_=e+(v<<2)|0;c[_>>2]=+c[_>>2]*m;v=v+1|0;k=r[t+(v<<2)>>2]|0}while((k|0)==(f|0));if((v|0)<(n|0)){f=k;i=v}else break}return}function Ze(e){e=e|0;var t=0,n=0,i=0;if(!e){t=0;return t|0}else{n=0;i=e}while(1){e=n+1|0;i=i>>>1;if(!i){t=e;break}else n=e}return t|0}function Qe(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0;a=(i|0)>0;if((r[e+8>>2]|0)<=0){if(!a){o=0;return o|0}ai(t|0,0,i<<2|0)|0;o=0;return o|0}if(!a){o=0;return o|0}a=e+16|0;s=0;while(1){l=Ve(e,n)|0;if((l|0)==-1){o=-1;c=10;break}d=r[e>>2]|0;u=(r[a>>2]|0)+((W(d,l)|0)<<2)|0;if((d|0)>0&(s|0)<(i|0)){l=s;p=0;while(1){f=l+1|0;r[t+(l<<2)>>2]=r[u+(p<<2)>>2];p=p+1|0;if(!((p|0)<(d|0)&(f|0)<(i|0))){m=f;break}else l=f}}else m=s;if((m|0)<(i|0))s=m;else{o=0;c=10;break}}if((c|0)==10)return o|0;return 0}function et(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0;n=Jn(1,2840)|0;i=r[e+28>>2]|0;r[n>>2]=Pe(t,24)|0;r[n+4>>2]=Pe(t,24)|0;r[n+8>>2]=(Pe(t,24)|0)+1;e=Pe(t,6)|0;a=n+12|0;r[a>>2]=e+1;o=Pe(t,8)|0;s=n+20|0;r[s>>2]=o;e:do if((o|0)>=0){if((e|0)>-1){l=n+24|0;c=0;d=0;do{u=Pe(t,3)|0;p=Pe(t,1)|0;if((p|0)<0){f=25;break e}if(p){p=Pe(t,5)|0;if(!(p>>31&2))m=((p|0)<0?0:p<<3)|u;else{f=25;break e}}else m=u;r[l+(d<<2)>>2]=m;if(!m)h=0;else{u=0;p=m;while(1){g=(p&1)+u|0;p=p>>>1;if(!p){h=g;break}else u=g}}c=h+c|0;d=d+1|0}while((d|0)<(r[a>>2]|0));d=(c|0)>0;if(d){l=n+280|0;u=0;while(1){p=Pe(t,8)|0;if((p|0)<0)break e;r[l+(u<<2)>>2]=p;u=u+1|0;if((u|0)>=(c|0)){_=c;v=d;break}}}else{_=c;v=0}}else{_=0;v=0}d=r[s>>2]|0;u=r[i+24>>2]|0;if((d|0)<(u|0)){if(v){l=n+280|0;p=0;do{g=r[l+(p<<2)>>2]|0;if((g|0)>=(u|0))break e;p=p+1|0;if(!(r[(r[i+1824+(g<<2)>>2]|0)+12>>2]|0))break e}while((p|0)<(_|0))}p=r[i+1824+(d<<2)>>2]|0;u=r[p+4>>2]|0;l=r[p>>2]|0;if((l|0)>=1){p=r[a>>2]|0;c=l;l=1;while(1){l=W(p,l)|0;if((l|0)>(u|0))break e;if((c|0)<=1)break;else c=c+-1|0}r[n+16>>2]=l;y=n;return y|0}}}else f=25;while(0);if((f|0)==25?(n|0)==0:0){y=0;return y|0}Xn(n);y=0;return y|0}function tt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0;n=Jn(1,44)|0;i=r[(r[e+4>>2]|0)+28>>2]|0;r[n>>2]=t;e=r[t+12>>2]|0;r[n+4>>2]=e;a=i+2848|0;i=r[a>>2]|0;r[n+12>>2]=i;o=i+((r[t+20>>2]|0)*56|0)|0;r[n+16>>2]=o;i=r[o>>2]|0;o=Jn(e,4)|0;r[n+20>>2]=o;if((e|0)>0){s=t+24|0;l=t+280|0;t=0;c=0;d=0;while(1){u=r[s+(c<<2)>>2]|0;if(u){p=0;f=u;while(1){m=p+1|0;f=f>>>1;if(!f)break;else p=m}f=(m|0)>(d|0)?m:d;r[o+(c<<2)>>2]=Jn(m,4)|0;if((p|0)<0){h=t;g=f}else{_=o+(c<<2)|0;v=t;y=0;while(1){if(!(u&1<<y))b=v;else{r[(r[_>>2]|0)+(y<<2)>>2]=(r[a>>2]|0)+((r[l+(v<<2)>>2]|0)*56|0);b=v+1|0}y=y+1|0;if((y|0)==(m|0)){h=b;g=f;break}else v=b}}}else{h=t;g=d}c=c+1|0;if((c|0)>=(e|0)){w=g;break}else{t=h;d=g}}}else w=0;g=n+24|0;r[g>>2]=1;d=(i|0)>0;if(d){h=1;t=0;do{h=W(h,e)|0;t=t+1|0}while((t|0)!=(i|0));r[g>>2]=h;k=h<<2;M=h}else{k=4;M=1}r[n+8>>2]=w;w=Yn(k)|0;r[n+28>>2]=w;if((M|0)<=0)return n|0;k=i<<2;if(d)S=0;else{d=0;do{r[w+(d<<2)>>2]=Yn(k)|0;d=d+1|0}while((d|0)<(M|0));return n|0}do{d=Yn(k)|0;r[w+(S<<2)>>2]=d;h=M;g=0;t=S;do{h=(h|0)/(e|0)|0;c=(t|0)/(h|0)|0;t=t-(W(c,h)|0)|0;r[d+(g<<2)>>2]=c;g=g+1|0}while((g|0)!=(i|0));S=S+1|0}while((S|0)<(M|0));return n|0}function nt(e){e=e|0;if(!e)return;Xn(e);return}function it(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;if(!e)return;t=e+4|0;n=r[t>>2]|0;i=e+20|0;a=r[i>>2]|0;if((n|0)>0){o=n;n=a;s=0;while(1){l=r[n+(s<<2)>>2]|0;if(!l){c=n;d=o}else{Xn(l);c=r[i>>2]|0;d=r[t>>2]|0}s=s+1|0;if((s|0)>=(d|0)){u=c;break}else{o=d;n=c}}}else u=a;Xn(u);u=e+24|0;a=e+28|0;c=r[a>>2]|0;if((r[u>>2]|0)>0){n=c;d=0;while(1){Xn(r[n+(d<<2)>>2]|0);d=d+1|0;o=r[a>>2]|0;if((d|0)>=(r[u>>2]|0)){p=o;break}else n=o}}else p=c;Xn(p);Xn(e);return}function at(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0;if((a|0)>0){o=0;s=0}else return 0;while(1){if(!(r[i+(o<<2)>>2]|0))l=s;else{r[n+(s<<2)>>2]=r[n+(o<<2)>>2];l=s+1|0}o=o+1|0;if((o|0)==(a|0))break;else s=l}if(!l)return 0;ot(e,t,n,l,3);return 0}function rt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;a=m;if((r[e+8>>2]|0)<=0){o=0;m=a;return o|0}s=r[e>>2]|0;l=(i|0)/(s|0)|0;i=m;m=m+((1*(l<<2)|0)+15&-16)|0;d=(l|0)>0;e:do if(d){u=e+16|0;p=0;while(1){f=Ve(e,n)|0;if((f|0)==-1){o=-1;break}h=r[e>>2]|0;r[i+(p<<2)>>2]=(r[u>>2]|0)+((W(h,f)|0)<<2);p=p+1|0;if((p|0)>=(l|0)){g=h;break e}}m=a;return o|0}else g=s;while(0);if((g|0)<1|d^1){o=0;m=a;return o|0}else{_=0;v=0}while(1){d=0;do{s=t+(d+v<<2)|0;c[s>>2]=+c[s>>2]+ +c[(r[i+(d<<2)>>2]|0)+(_<<2)>>2];d=d+1|0}while((d|0)!=(l|0));_=_+1|0;if((_|0)>=(g|0)){o=0;break}else v=v+l|0}m=a;return o|0}function ot(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0;o=m;s=r[t>>2]|0;l=r[s+8>>2]|0;c=t+16|0;d=r[r[c>>2]>>2]|0;u=r[e+36>>2]>>1;p=r[s+4>>2]|0;f=((p|0)<(u|0)?p:u)-(r[s>>2]|0)|0;if((f|0)<=0){m=o;return}u=(f|0)/(l|0)|0;f=m;m=m+((1*(i<<2)|0)+15&-16)|0;p=(i|0)>0;if(p){h=((d+-1+u|0)/(d|0)|0)<<2;g=0;do{r[f+(g<<2)>>2]=He(e,h)|0;g=g+1|0}while((g|0)!=(i|0))}g=t+8|0;h=r[g>>2]|0;if((h|0)<=0){m=o;return}_=(u|0)>0;v=e+4|0;e=s+16|0;y=t+28|0;b=(d|0)>0;w=t+20|0;t=0-d|0;k=(i|0)<1;M=h;h=0;e:while(1){if(_){S=1<<h;A=(h|0)!=0|k;C=0;T=0;while(1){if(!A){E=0;do{$=je(r[c>>2]|0,v)|0;if(($|0)==-1){I=26;break e}if(($|0)>=(r[e>>2]|0)){I=26;break e}x=r[(r[y>>2]|0)+($<<2)>>2]|0;r[(r[f+(E<<2)>>2]|0)+(T<<2)>>2]=x;E=E+1|0;if(!x){I=26;break e}}while((E|0)<(i|0))}do if(b&(C|0)<(u|0)){if(p){P=C;D=0}else{E=C-u|0;R=C-(E>>>0<t>>>0?t:E)|0;break}while(1){E=W(P,l)|0;x=0;do{$=(r[s>>2]|0)+E|0;O=r[(r[(r[f+(x<<2)>>2]|0)+(T<<2)>>2]|0)+(D<<2)>>2]|0;if((r[s+24+(O<<2)>>2]&S|0?(N=r[(r[(r[w>>2]|0)+(O<<2)>>2]|0)+(h<<2)>>2]|0,N|0):0)?(Ai[a&7](N,(r[n+(x<<2)>>2]|0)+($<<2)|0,v,l)|0)==-1:0){I=26;break e}x=x+1|0}while((x|0)<(i|0));D=D+1|0;x=P+1|0;if(!((D|0)<(d|0)&(x|0)<(u|0))){R=x;break}else P=x}}else R=C;while(0);if((R|0)<(u|0)){C=R;T=T+1|0}else break}L=r[g>>2]|0}else L=M;h=h+1|0;if((h|0)>=(L|0)){I=26;break}else M=L}if((I|0)==26){m=o;return}}function st(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0;Te(t,r[e>>2]|0,24);Te(t,r[e+4>>2]|0,24);Te(t,(r[e+8>>2]|0)+-1|0,24);n=e+12|0;Te(t,(r[n>>2]|0)+-1|0,6);Te(t,r[e+20>>2]|0,8);if((r[n>>2]|0)<=0)return;i=e+24|0;a=0;o=0;do{s=i+(o<<2)|0;l=r[s>>2]|0;if(l){c=0;d=l;while(1){d=d>>>1;if(!d)break;else c=c+1|0}if((c|0)>2){Te(t,l,3);Te(t,1,1);Te(t,r[s>>2]>>3,5)}else u=9}else u=9;if((u|0)==9){u=0;Te(t,l,4)}d=r[s>>2]|0;if(!d)p=0;else{f=0;m=d;while(1){d=(m&1)+f|0;m=m>>>1;if(!m){p=d;break}else f=d}}a=p+a|0;o=o+1|0}while((o|0)<(r[n>>2]|0));if((a|0)<=0)return;n=e+280|0;e=0;do{Te(t,r[n+(e<<2)>>2]|0,8);e=e+1|0}while((e|0)!=(a|0));return}function lt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0;if((a|0)>0){o=0;s=0}else{l=0;return l|0}while(1){if(!(r[i+(o<<2)>>2]|0))c=s;else{r[n+(s<<2)>>2]=r[n+(o<<2)>>2];c=s+1|0}o=o+1|0;if((o|0)==(a|0))break;else s=c}if(!c){l=0;return l|0}s=r[t>>2]|0;a=r[s+8>>2]|0;o=r[s+12>>2]|0;i=((r[s+4>>2]|0)-(r[s>>2]|0)|0)/(a|0)|0;d=He(e,c<<2)|0;u=100/+(a|0);p=(c|0)>0;if(p){f=i<<2;m=0;do{h=He(e,f)|0;r[d+(m<<2)>>2]=h;ai(h|0,0,f|0)|0;m=m+1|0}while((m|0)!=(c|0))}if((i|0)>0){m=(a|0)>0;f=o+-1|0;e=(o|0)>1;o=0;do{h=W(o,a)|0;g=(r[s>>2]|0)+h|0;e:do if(p){if(!m){if(e)_=0;else{h=0;while(1){r[(r[d+(h<<2)>>2]|0)+(o<<2)>>2]=0;h=h+1|0;if((h|0)==(c|0))break e}}while(1){h=0;while(1){if((r[s+2328+(h<<2)>>2]|0)>=0?r[s+2584+(h<<2)>>2]|0:0){v=h;break}y=h+1|0;if((y|0)<(f|0))h=y;else{v=y;break}}r[(r[d+(_<<2)>>2]|0)+(o<<2)>>2]=v;_=_+1|0;if((_|0)==(c|0))break e}}if(e)b=0;else{h=0;while(1){r[(r[d+(h<<2)>>2]|0)+(o<<2)>>2]=0;h=h+1|0;if((h|0)==(c|0))break e}}do{h=r[n+(b<<2)>>2]|0;y=0;w=0;k=0;do{M=r[h+(g+w<<2)>>2]|0;S=(M|0)>-1?M:0-M|0;k=(S|0)>(k|0)?S:k;y=S+y|0;w=w+1|0}while((w|0)!=(a|0));w=~~(+(y|0)*u);h=0;while(1){if((k|0)<=(r[s+2328+(h<<2)>>2]|0)?(S=r[s+2584+(h<<2)>>2]|0,(S|0)<0|(w|0)<(S|0)):0){A=h;break}S=h+1|0;if((S|0)<(f|0))h=S;else{A=S;break}}r[(r[d+(b<<2)>>2]|0)+(o<<2)>>2]=A;b=b+1|0}while((b|0)!=(c|0))}while(0);o=o+1|0}while((o|0)!=(i|0))}i=t+40|0;r[i>>2]=(r[i>>2]|0)+1;l=d;return l|0}function ct(e,t,n,i,a,o,s,l){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;l=l|0;var c=0,d=0,u=0;if((o|0)>0){c=0;d=0}else return 0;while(1){if(!(r[a+(c<<2)>>2]|0))u=d;else{r[i+(d<<2)>>2]=r[i+(c<<2)>>2];u=d+1|0}c=c+1|0;if((c|0)==(o|0))break;else d=u}if(!u)return 0;pt(e,n,i,u,s);return 0}function dt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0;if((a|0)>0){o=0;s=0}else return 0;while(1){if(!(r[i+(o<<2)>>2]|0))l=s;else{r[n+(s<<2)>>2]=r[n+(o<<2)>>2];l=s+1|0}o=o+1|0;if((o|0)==(a|0))break;else s=l}if(!l)return 0;ot(e,t,n,l,4);return 0}function ut(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0;if((r[e+8>>2]|0)<=0){a=0;return a|0}if((r[e>>2]|0)>8){if((i|0)<=0){a=0;return a|0}o=e+16|0;s=0;while(1){l=Ve(e,n)|0;if((l|0)==-1){a=-1;d=29;break}u=r[e>>2]|0;p=(r[o>>2]|0)+((W(u,l)|0)<<2)|0;if((u|0)>0){l=s;f=0;while(1){m=t+(l<<2)|0;c[m>>2]=+c[m>>2]+ +c[p+(f<<2)>>2];f=f+1|0;if((f|0)==(u|0))break;else l=l+1|0}h=s+u|0}else h=s;if((h|0)<(i|0))s=h;else{a=0;d=29;break}}if((d|0)==29)return a|0}h=e+16|0;if((i|0)>0)g=0;else{a=0;return a|0}e:while(1){t:while(1){_=Ve(e,n)|0;if((_|0)==-1){a=-1;d=29;break e}v=r[h>>2]|0;switch(r[e>>2]|0){case 8:{d=21;break t;break}case 7:{d=22;break t;break}case 6:{d=23;break t;break}case 5:{d=24;break t;break}case 4:{d=25;break t;break}case 3:{d=26;break t;break}case 2:{d=27;break t;break}case 1:{d=28;break t;break}default:{}}}if((d|0)==21){d=0;u=v+(_<<3<<2)|0;s=t+(g<<2)|0;c[s>>2]=+c[s>>2]+ +c[u>>2];y=u;b=g+1|0;w=1;d=11}else if((d|0)==22){d=0;y=v+(_*7<<2)|0;b=g;w=0;d=11}else if((d|0)==23){d=0;k=v+(_*6<<2)|0;M=g;S=0;d=12}else if((d|0)==24){d=0;A=v+(_*5<<2)|0;C=g;T=0;d=13}else if((d|0)==25){d=0;E=v+(_<<2<<2)|0;$=g;I=0;d=14}else if((d|0)==26){d=0;x=v+(_*3<<2)|0;P=g;D=0;d=15}else if((d|0)==27){d=0;R=v+(_<<1<<2)|0;O=g;N=0;d=16}else if((d|0)==28){d=0;L=v+(_<<2)|0;F=g;U=0}if((d|0)==11){d=0;u=t+(b<<2)|0;c[u>>2]=+c[u>>2]+ +c[y+(w<<2)>>2];k=y;M=b+1|0;S=w+1|0;d=12}if((d|0)==12){d=0;u=t+(M<<2)|0;c[u>>2]=+c[u>>2]+ +c[k+(S<<2)>>2];A=k;C=M+1|0;T=S+1|0;d=13}if((d|0)==13){d=0;u=t+(C<<2)|0;c[u>>2]=+c[u>>2]+ +c[A+(T<<2)>>2];E=A;$=C+1|0;I=T+1|0;d=14}if((d|0)==14){d=0;u=t+($<<2)|0;c[u>>2]=+c[u>>2]+ +c[E+(I<<2)>>2];x=E;P=$+1|0;D=I+1|0;d=15}if((d|0)==15){d=0;u=t+(P<<2)|0;c[u>>2]=+c[u>>2]+ +c[x+(D<<2)>>2];R=x;O=P+1|0;N=D+1|0;d=16}if((d|0)==16){d=0;u=t+(O<<2)|0;c[u>>2]=+c[u>>2]+ +c[R+(N<<2)>>2];L=R;F=O+1|0;U=N+1|0}g=F+1|0;u=t+(F<<2)|0;c[u>>2]=+c[u>>2]+ +c[L+(U<<2)>>2];if((g|0)>=(i|0)){a=0;d=29;break}}if((d|0)==29)return a|0;return 0}function pt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ce=0,Te=0,Ee=0,$e=0,Ie=0,xe=0,Pe=0,De=0,Re=0,Oe=0,Ne=0;o=m;m=m+1088|0;s=o+1056|0;l=o+1024|0;c=o+512|0;d=o;u=r[t>>2]|0;p=r[u+8>>2]|0;f=r[u+12>>2]|0;h=t+16|0;g=r[r[h>>2]>>2]|0;_=((r[u+4>>2]|0)-(r[u>>2]|0)|0)/(p|0)|0;ai(c|0,0,512)|0;ai(d|0,0,512)|0;v=t+8|0;y=r[v>>2]|0;if((y|0)<=0){m=o;return}b=(_|0)>0;w=(g|0)>1;k=t+36|0;M=(g|0)>0;S=(i|0)>0;A=t+20|0;C=t+32|0;t=(i|0)<1;T=y;y=0;while(1){if(b){E=(y|0)==0;$=1<<y;I=t|E^1;x=0;while(1){e:do if(!I){if(w)P=0;else{D=0;while(1){R=r[(r[a+(D<<2)>>2]|0)+(x<<2)>>2]|0;O=r[h>>2]|0;if((R|0)<(r[O+4>>2]|0)){N=ft(O,R,e)|0;r[k>>2]=(r[k>>2]|0)+N}D=D+1|0;if((D|0)==(i|0))break e}}do{D=r[a+(P<<2)>>2]|0;N=1;R=r[D+(x<<2)>>2]|0;while(1){O=W(R,f)|0;L=N+x|0;if((L|0)<(_|0))F=(r[D+(L<<2)>>2]|0)+O|0;else F=O;N=N+1|0;if((N|0)==(g|0))break;else R=F}R=r[h>>2]|0;if((F|0)<(r[R+4>>2]|0)){N=ft(R,F,e)|0;r[k>>2]=(r[k>>2]|0)+N}P=P+1|0}while((P|0)!=(i|0))}while(0);if(M&(x|0)<(_|0)){N=x;R=0;while(1){D=W(N,p)|0;O=(r[u>>2]|0)+D|0;if(S){D=0;do{L=a+(D<<2)|0;U=r[L>>2]|0;B=r[U+(N<<2)>>2]|0;H=d+(B<<2)|0;if(E)r[H>>2]=(r[H>>2]|0)+p;if(r[u+24+(B<<2)>>2]&$|0?(H=r[(r[(r[A>>2]|0)+(B<<2)>>2]|0)+(y<<2)>>2]|0,H|0):0){B=(r[n+(D<<2)>>2]|0)+(O<<2)|0;j=r[H>>2]|0;V=(p|0)/(j|0)|0;if((V|0)>0){q=H+48|0;z=H+52|0;G=H+44|0;K=H+12|0;Y=H+4|0;X=j;J=0;Z=0;while(1){Q=B+((W(Z,j)|0)<<2)|0;ee=r[q>>2]|0;te=r[z>>2]|0;ne=r[G>>2]|0;ie=ne>>1;r[s>>2]=0;r[s+4>>2]=0;r[s+8>>2]=0;r[s+12>>2]=0;r[s+16>>2]=0;r[s+20>>2]=0;r[s+24>>2]=0;r[s+28>>2]=0;ae=(X|0)>0;do if((te|0)==1){if(!ae){re=0;break}oe=ne+-1|0;li(s|0,Q|0,X<<2|0)|0;se=0;le=0;ce=X;while(1){ce=ce+-1|0;de=(r[Q+(ce<<2)>>2]|0)-ee|0;if((de|0)<(ie|0))ue=(ie-de<<1)+-1|0;else ue=de-ie<<1;de=W(le,ne)|0;pe=((ue|0)<0?0:(ue|0)>=(ne|0)?oe:ue)+de|0;se=se+1|0;if((se|0)==(X|0)){re=pe;break}else le=pe}}else{if(!ae){re=0;break}le=(te>>1)-ee|0;se=ne+-1|0;oe=0;ce=0;pe=X;while(1){pe=pe+-1|0;de=(le+(r[Q+(pe<<2)>>2]|0)|0)/(te|0)|0;if((de|0)<(ie|0))fe=(ie-de<<1)+-1|0;else fe=de-ie<<1;me=W(ce,ne)|0;he=((fe|0)<0?0:(fe|0)>=(ne|0)?se:fe)+me|0;r[s+(pe<<2)>>2]=(W(de,te)|0)+ee;oe=oe+1|0;if((oe|0)==(X|0)){re=he;break}else ce=he}}while(0);ie=r[(r[K>>2]|0)+8>>2]|0;if((r[ie+(re<<2)>>2]|0)<1){r[l>>2]=0;r[l+4>>2]=0;r[l+8>>2]=0;r[l+12>>2]=0;r[l+16>>2]=0;r[l+20>>2]=0;r[l+24>>2]=0;r[l+28>>2]=0;ce=(W(ne+-1|0,te)|0)+ee|0;oe=r[Y>>2]|0;e:do if((oe|0)>0){if(ae){ge=-1;_e=0;ve=re}else{pe=-1;se=0;le=re;while(1){do if((r[ie+(se<<2)>>2]|0)>0){if(!((pe|0)==-1|(pe|0)>0)){ye=pe;be=le;break}r[s>>2]=r[l>>2];r[s+4>>2]=r[l+4>>2];r[s+8>>2]=r[l+8>>2];r[s+12>>2]=r[l+12>>2];r[s+16>>2]=r[l+16>>2];r[s+20>>2]=r[l+20>>2];r[s+24>>2]=r[l+24>>2];r[s+28>>2]=r[l+28>>2];ye=0;be=se}else{ye=pe;be=le}while(0);he=r[l>>2]|0;if((he|0)<(ce|0)){we=he;ke=l}else{he=l;de=0;while(1){de=de+1|0;r[he>>2]=0;me=l+(de<<2)|0;Me=r[me>>2]|0;if((Me|0)<(ce|0)){we=Me;ke=me;break}else he=me}}he=we+te|0;if((we|0)>-1){r[ke>>2]=he;Se=he}else Se=we;r[ke>>2]=0-Se;se=se+1|0;if((se|0)==(oe|0)){Ae=be;break e}else{pe=ye;le=be}}}while(1){do if((r[ie+(_e<<2)>>2]|0)>0){le=0;pe=0;do{se=(r[l+(le<<2)>>2]|0)-(r[Q+(le<<2)>>2]|0)|0;pe=(W(se,se)|0)+pe|0;le=le+1|0}while((le|0)!=(X|0));if(!((ge|0)==-1|(pe|0)<(ge|0))){Ce=ge;Te=ve;break}r[s>>2]=r[l>>2];r[s+4>>2]=r[l+4>>2];r[s+8>>2]=r[l+8>>2];r[s+12>>2]=r[l+12>>2];r[s+16>>2]=r[l+16>>2];r[s+20>>2]=r[l+20>>2];r[s+24>>2]=r[l+24>>2];r[s+28>>2]=r[l+28>>2];Ce=pe;Te=_e}else{Ce=ge;Te=ve}while(0);le=r[l>>2]|0;if((le|0)<(ce|0)){Ee=le;$e=l}else{le=l;se=0;while(1){se=se+1|0;r[le>>2]=0;he=l+(se<<2)|0;de=r[he>>2]|0;if((de|0)<(ce|0)){Ee=de;$e=he;break}else le=he}}le=Ee+te|0;if((Ee|0)>-1){r[$e>>2]=le;Ie=le}else Ie=Ee;r[$e>>2]=0-Ie;_e=_e+1|0;if((_e|0)==(oe|0)){Ae=Te;break}else{ge=Ce;ve=Te}}}else Ae=re;while(0);xe=Ae}else xe=re;if(ae&(xe|0)>-1){oe=Q;te=0;while(1){r[oe>>2]=(r[oe>>2]|0)-(r[s+(te<<2)>>2]|0);te=te+1|0;if((te|0)==(X|0))break;else oe=oe+4|0}}Pe=(ft(H,xe,e)|0)+J|0;oe=Z+1|0;if((oe|0)==(V|0))break;X=r[H>>2]|0;J=Pe;Z=oe}De=r[L>>2]|0;Re=Pe}else{De=U;Re=0}r[C>>2]=(r[C>>2]|0)+Re;Z=c+(r[De+(N<<2)>>2]<<2)|0;r[Z>>2]=(r[Z>>2]|0)+Re}D=D+1|0}while((D|0)!=(i|0))}R=R+1|0;D=N+1|0;if(!((R|0)<(g|0)&(D|0)<(_|0))){Oe=D;break}else N=D}}else Oe=x;if((Oe|0)<(_|0))x=Oe;else break}Ne=r[v>>2]|0}else Ne=T;y=y+1|0;if((y|0)>=(Ne|0))break;else T=Ne}m=o;return}function ft(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0;if((t|0)<0){i=0;return i|0}a=e+12|0;o=r[a>>2]|0;if((r[o+4>>2]|0)<=(t|0)){i=0;return i|0}Te(n,r[(r[e+20>>2]|0)+(t<<2)>>2]|0,r[(r[o+8>>2]|0)+(t<<2)>>2]|0);i=r[(r[(r[a>>2]|0)+8>>2]|0)+(t<<2)>>2]|0;return i|0}function mt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0;if((a|0)>0){o=0;s=0}else{l=0;return l|0}do{s=((r[i+(o<<2)>>2]|0)!=0&1)+s|0;o=o+1|0}while((o|0)!=(a|0));if(!s){l=0;return l|0}s=r[t>>2]|0;o=r[s+8>>2]|0;i=r[s+12>>2]|0;c=((r[s+4>>2]|0)-(r[s>>2]|0)|0)/(o|0)|0;d=He(e,4)|0;u=c<<2;p=He(e,u)|0;r[d>>2]=p;ai(p|0,0,u|0)|0;e:do if((c|0)>0){p=i+-1|0;e=(i|0)>1;f=r[d>>2]|0;if((o|0)<=0){if(e)m=0;else{ai(f|0,0,u|0)|0;break}while(1){h=0;while(1){if((r[s+2328+(h<<2)>>2]|0)>=0?(r[s+2584+(h<<2)>>2]|0)>=0:0){g=h;break}_=h+1|0;if((_|0)<(p|0))h=_;else{g=_;break}}r[f+(m<<2)>>2]=g;m=m+1|0;if((m|0)==(c|0))break e}}h=(r[s>>2]|0)/(a|0)|0;_=r[n>>2]|0;if((a|0)>1){v=0;y=h}else{b=0;w=h;while(1){h=0;k=w;M=0;do{S=r[_+(k<<2)>>2]|0;A=(S|0)>-1?S:0-S|0;M=(A|0)>(M|0)?A:M;k=k+1|0;h=h+a|0}while((h|0)<(o|0));t:do if(e){h=0;while(1){if((M|0)<=(r[s+2328+(h<<2)>>2]|0)?(r[s+2584+(h<<2)>>2]|0)>=0:0){C=h;break t}A=h+1|0;if((A|0)<(p|0))h=A;else{C=A;break}}}else C=0;while(0);r[f+(b<<2)>>2]=C;b=b+1|0;if((b|0)==(c|0))break e;else w=k}}while(1){w=0;b=0;M=y;h=0;while(1){A=r[_+(M<<2)>>2]|0;S=(A|0)>-1?A:0-A|0;T=w;A=1;do{E=r[(r[n+(A<<2)>>2]|0)+(M<<2)>>2]|0;$=(E|0)>-1?E:0-E|0;T=($|0)>(T|0)?$:T;A=A+1|0}while((A|0)!=(a|0));h=(S|0)>(h|0)?S:h;M=M+1|0;b=b+a|0;if((b|0)>=(o|0))break;else w=T}t:do if(e){w=0;while(1){if((h|0)<=(r[s+2328+(w<<2)>>2]|0)?(T|0)<=(r[s+2584+(w<<2)>>2]|0):0){I=w;break t}b=w+1|0;if((b|0)<(p|0))w=b;else{I=b;break}}}else I=0;while(0);r[f+(v<<2)>>2]=I;v=v+1|0;if((v|0)==(c|0))break;else y=M}}while(0);y=t+40|0;r[y>>2]=(r[y>>2]|0)+1;l=d;return l|0}function ht(e,t,n,i,a,o,s,l){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;l=l|0;var c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0;l=m;m=m+16|0;c=l;d=r[t+36>>2]|0;u=(d|0)/2|0;p=He(t,W(o<<2,u)|0)|0;r[c>>2]=p;if((o|0)<=0){m=l;return 0}if((d|0)>1){d=0;t=0;while(1){f=r[i+(d<<2)>>2]|0;h=(r[a+(d<<2)>>2]|0)!=0&1;g=0;_=d;while(1){r[p+(_<<2)>>2]=r[f+(g<<2)>>2];g=g+1|0;if((g|0)>=(u|0))break;else _=_+o|0}_=h+t|0;d=d+1|0;if((d|0)==(o|0)){v=_;break}else t=_}}else{t=0;d=0;while(1){u=((r[a+(t<<2)>>2]|0)!=0&1)+d|0;t=t+1|0;if((t|0)==(o|0)){v=u;break}else d=u}}if(!v){m=l;return 0}pt(e,n,c,1,s);m=l;return 0}function gt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0;o=r[t>>2]|0;s=r[o+8>>2]|0;l=t+16|0;c=r[r[l>>2]>>2]|0;d=(W(r[e+36>>2]|0,a)|0)>>1;u=r[o+4>>2]|0;p=((u|0)<(d|0)?u:d)-(r[o>>2]|0)|0;if((p|0)<=0)return 0;d=(p|0)/(s|0)|0;p=He(e,((c+-1+d|0)/(c|0)|0)<<2)|0;e:do if((a|0)>0){u=0;while(1){if(r[i+(u<<2)>>2]|0){f=u;break e}m=u+1|0;if((m|0)<(a|0))u=m;else{f=m;break}}}else f=0;while(0);if((f|0)==(a|0))return 0;f=t+8|0;if((r[f>>2]|0)<=0)return 0;i=(d|0)>0;u=e+4|0;e=o+16|0;m=t+28|0;h=(c|0)>0;g=t+20|0;t=0;e:while(1){t:do if(i){_=1<<t;if(!t){v=0;y=0}else{b=0;w=0;while(1){if(h&(b|0)<(d|0)){k=p+(w<<2)|0;M=b;S=0;while(1){A=r[(r[k>>2]|0)+(S<<2)>>2]|0;if((r[o+24+(A<<2)>>2]&_|0?(C=r[(r[(r[g>>2]|0)+(A<<2)>>2]|0)+(t<<2)>>2]|0,C|0):0)?(A=W(M,s)|0,(_t(C,n,(r[o>>2]|0)+A|0,a,u,s)|0)==-1):0){T=28;break e}S=S+1|0;A=M+1|0;if(!((S|0)<(c|0)&(A|0)<(d|0))){E=A;break}else M=A}}else E=b;if((E|0)<(d|0)){b=E;w=w+1|0}else break t}}while(1){w=je(r[l>>2]|0,u)|0;if((w|0)==-1){T=28;break e}if((w|0)>=(r[e>>2]|0)){T=28;break e}b=r[(r[m>>2]|0)+(w<<2)>>2]|0;w=p+(y<<2)|0;r[w>>2]=b;if(!b){T=28;break e}n:do if(h&(v|0)<(d|0)){M=b;S=v;k=0;while(1){A=r[M+(k<<2)>>2]|0;if((r[o+24+(A<<2)>>2]&_|0?(C=r[r[(r[g>>2]|0)+(A<<2)>>2]>>2]|0,C|0):0)?(A=W(S,s)|0,(_t(C,n,(r[o>>2]|0)+A|0,a,u,s)|0)==-1):0){T=28;break e}A=k+1|0;C=S+1|0;if(!((A|0)<(c|0)&(C|0)<(d|0))){$=C;break n}M=r[w>>2]|0;S=C;k=A}}else $=v;while(0);if(($|0)<(d|0)){v=$;y=y+1|0}else break}}while(0);t=t+1|0;if((t|0)>=(r[f>>2]|0)){T=28;break}}if((T|0)==28)return 0;return 0}function _t(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0;if((r[e+8>>2]|0)<=0){s=0;return s|0}l=(n|0)/(i|0)|0;d=(o+n|0)/(i|0)|0;if((l|0)>=(d|0)){s=0;return s|0}n=e+16|0;o=0;u=l;while(1){l=Ve(e,a)|0;if((l|0)==-1){s=-1;p=8;break}f=r[e>>2]|0;m=(r[n>>2]|0)+((W(f,l)|0)<<2)|0;if((f|0)>0){l=o;h=u;g=0;while(1){_=l+1|0;v=(r[t+(l<<2)>>2]|0)+(h<<2)|0;c[v>>2]=+c[v>>2]+ +c[m+(g<<2)>>2];v=(_|0)==(i|0);y=(v&1)+h|0;b=v?0:_;g=g+1|0;if((g|0)==(f|0)){w=b;k=y;break}else{l=b;h=y}}}else{w=o;k=u}if((k|0)<(d|0)){o=w;u=k}else{s=0;p=8;break}}if((p|0)==8)return s|0;return 0}function vt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0;if((r[t>>2]|0)>1){Te(n,1,1);Te(n,(r[t>>2]|0)+-1|0,4)}else Te(n,0,1);i=t+1156|0;if((r[i>>2]|0)>0){Te(n,1,1);Te(n,(r[i>>2]|0)+-1|0,8);if((r[i>>2]|0)>0){a=t+1160|0;o=e+4|0;s=t+2184|0;l=0;do{c=r[a+(l<<2)>>2]|0;d=r[o>>2]|0;u=d+-1|0;if((d|0)==0|(u|0)==0)p=0;else{d=0;f=u;while(1){u=d+1|0;f=f>>>1;if(!f){p=u;break}else d=u}}Te(n,c,p);d=r[s+(l<<2)>>2]|0;f=r[o>>2]|0;u=f+-1|0;if((f|0)==0|(u|0)==0)m=0;else{f=0;h=u;while(1){u=f+1|0;h=h>>>1;if(!h){m=u;break}else f=u}}Te(n,d,m);l=l+1|0}while((l|0)<(r[i>>2]|0))}}else Te(n,0,1);Te(n,0,2);i=r[t>>2]|0;if((i|0)>1){l=e+4|0;if((r[l>>2]|0)>0){e=t+4|0;m=0;do{Te(n,r[e+(m<<2)>>2]|0,4);m=m+1|0}while((m|0)<(r[l>>2]|0));g=r[t>>2]|0;_=17}}else{g=i;_=17}if((_|0)==17?(g|0)<=0:0)return;g=t+1028|0;_=t+1092|0;i=0;do{Te(n,0,8);Te(n,r[g+(i<<2)>>2]|0,8);Te(n,r[_+(i<<2)>>2]|0,8);i=i+1|0}while((i|0)<(r[t>>2]|0));return}function yt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0;n=Jn(1,3208)|0;i=r[e+28>>2]|0;ai(n|0,0,3208)|0;a=Pe(t,1)|0;e:do if((a|0)<0){if(!n){o=0;return o|0}}else{if(a){s=Pe(t,4)|0;r[n>>2]=s+1;if((s|0)<0)break}else r[n>>2]=1;s=Pe(t,1)|0;if((s|0)>=0){if(s|0){s=Pe(t,8)|0;l=n+1156|0;r[l>>2]=s+1;if((s|0)<0)break;s=e+4|0;c=n+1160|0;d=n+2184|0;u=r[s>>2]|0;p=0;do{f=u+-1|0;if((u|0)==0|(f|0)==0)m=0;else{h=0;g=f;while(1){f=h+1|0;g=g>>>1;if(!g){m=f;break}else h=f}}h=Pe(t,m)|0;r[c+(p<<2)>>2]=h;g=r[s>>2]|0;f=g+-1|0;if((g|0)==0|(f|0)==0)_=0;else{g=0;v=f;while(1){f=g+1|0;v=v>>>1;if(!v){_=f;break}else g=f}}g=Pe(t,_)|0;r[d+(p<<2)>>2]=g;if((h|0)==(g|0)|(g|h|0)<0)break e;u=r[s>>2]|0;p=p+1|0;if(!((h|0)<(u|0)&(g|0)<(u|0)))break e}while((p|0)<(r[l>>2]|0))}if(!(Pe(t,2)|0)){l=r[n>>2]|0;if((l|0)>1){p=e+4|0;if((r[p>>2]|0)>0){u=n+4|0;s=0;while(1){d=Pe(t,4)|0;r[u+(s<<2)>>2]=d;c=r[n>>2]|0;s=s+1|0;if((d|0)<0|(d|0)>=(c|0))break e;if((s|0)>=(r[p>>2]|0)){y=c;b=20;break}}}}else{y=l;b=20}if((b|0)==20?(y|0)<=0:0){o=n;return o|0}p=n+1028|0;s=i+16|0;u=n+1092|0;c=i+20|0;d=0;while(1){Pe(t,8)|0;g=Pe(t,8)|0;r[p+(d<<2)>>2]=g;if((g|0)<0?1:(g|0)>=(r[s>>2]|0))break e;g=Pe(t,8)|0;r[u+(d<<2)>>2]=g;d=d+1|0;if((g|0)<0?1:(g|0)>=(r[c>>2]|0))break e;if((d|0)>=(r[n>>2]|0)){o=n;break}}return o|0}}}while(0);Xn(n);o=0;return o|0}function bt(e){e=e|0;if(!e)return;Xn(e);return}function wt(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,d=0,u=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0;t=m;n=r[e+64>>2]|0;i=r[n+4>>2]|0;a=r[i+28>>2]|0;o=r[n+104>>2]|0;n=r[e+104>>2]|0;s=r[e+36>>2]|0;l=i+4|0;i=r[l>>2]<<2;d=m;m=m+((1*i|0)+15&-16)|0;u=He(e,i)|0;i=He(e,r[l>>2]<<2)|0;f=He(e,r[l>>2]<<2)|0;h=n+4|0;g=+c[h>>2];_=r[l>>2]|0;v=m;m=m+((1*(_<<2)|0)+15&-16)|0;y=e+28|0;b=r[y>>2]|0;w=r[a+544+(b<<2)>>2]|0;k=(r[o+56>>2]|0)+((r[n+8>>2]|0)*52|0)+((b|0?2:0)*52|0)|0;M=e+40|0;r[M>>2]=b;e:do if((_|0)>0){S=(s|0)/2|0;A=S<<2;C=+(((c[p>>2]=4/+(s|0),r[p>>2]|0)&2147483647)>>>0)*7.177114298428933e-7+-764.6162109375+.345;T=o+4|0;E=e+24|0;$=e+32|0;I=C+-764.6162109375;x=s+-1|0;P=C+-382.30810546875;if((x|0)>1){D=g;R=0}else{C=g;O=0;while(1){N=r[(r[e>>2]|0)+(O<<2)>>2]|0;r[i+(O<<2)>>2]=He(e,A)|0;L=u+(O<<2)|0;r[L>>2]=He(e,A)|0;At(N,T,a,r[E>>2]|0,r[y>>2]|0,r[$>>2]|0);Ct(r[r[o+12+(r[y>>2]<<2)>>2]>>2]|0,N,r[L>>2]|0);Tt(o+20+((r[y>>2]|0)*12|0)|0,N);F=I+ +((r[N>>2]&2147483647)>>>0)*7.177114298428933e-7+.345;c[N>>2]=F;U=F>0?0:F;c[v+(O<<2)>>2]=U;F=U>C?U:C;O=O+1|0;if((O|0)>=(r[l>>2]|0)){B=S;H=F;j=A;break e}else C=F}}while(1){O=r[(r[e>>2]|0)+(R<<2)>>2]|0;r[i+(R<<2)>>2]=He(e,A)|0;N=u+(R<<2)|0;r[N>>2]=He(e,A)|0;At(O,T,a,r[E>>2]|0,r[y>>2]|0,r[$>>2]|0);Ct(r[r[o+12+(r[y>>2]<<2)>>2]>>2]|0,O,r[N>>2]|0);Tt(o+20+((r[y>>2]|0)*12|0)|0,O);C=I+ +((r[O>>2]&2147483647)>>>0)*7.177114298428933e-7+.345;c[O>>2]=C;N=v+(R<<2)|0;c[N>>2]=C;F=C;L=1;do{C=+c[O+(L<<2)>>2];V=L+1|0;U=+c[O+(V<<2)>>2];q=P+ +(((c[p>>2]=U*U+C*C,r[p>>2]|0)&2147483647)>>>0)*3.5885571492144663e-7+.345;c[O+(V>>1<<2)>>2]=q;F=q>F?q:F;L=L+2|0}while((L|0)<(x|0));q=F>0?0:F;c[N>>2]=q;C=q>D?q:D;R=R+1|0;if((R|0)>=(r[l>>2]|0)){B=S;H=C;j=A;break}else D=C}}else{A=(s|0)/2|0;B=A;H=g;j=A<<2}while(0);R=He(e,j)|0;_=He(e,j)|0;j=r[l>>2]|0;e:do if((j|0)>0){A=(s|0)>1;S=o+48|0;x=0;while(1){$=r[w+4+(x<<2)>>2]|0;E=r[u+(x<<2)>>2]|0;T=r[(r[e>>2]|0)+(x<<2)>>2]|0;L=T+(B<<2)|0;r[M>>2]=b;O=He(e,60)|0;V=f+(x<<2)|0;r[V>>2]=O;z=O;O=z+60|0;do{r[z>>2]=0;z=z+4|0}while((z|0)<(O|0));if(A){z=0;do{c[L+(z<<2)>>2]=+((r[E+(z<<2)>>2]&2147483647)>>>0)*7.177114298428933e-7+-764.6162109375+.345;z=z+1|0}while((z|0)<(B|0))}Et(k,L,R);$t(k,T,_,H,+c[v+(x<<2)>>2]);It(k,R,_,1,T,E,L);z=w+1028+($<<2)|0;O=r[z>>2]|0;if((r[a+800+(O<<2)>>2]|0)!=1){W=-1;break}N=xt(e,r[(r[S>>2]|0)+(O<<2)>>2]|0,L,T)|0;r[(r[V>>2]|0)+28>>2]=N;if(Pt(e)|0?r[(r[V>>2]|0)+28>>2]|0:0){It(k,R,_,2,T,E,L);N=xt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,L,T)|0;r[(r[V>>2]|0)+56>>2]=N;It(k,R,_,0,T,E,L);N=xt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,L,T)|0;r[r[V>>2]>>2]=N;N=r[V>>2]|0;O=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[N>>2]|0,r[N+28>>2]|0,9362)|0;r[(r[V>>2]|0)+4>>2]=O;O=r[V>>2]|0;N=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[O>>2]|0,r[O+28>>2]|0,18724)|0;
r[(r[V>>2]|0)+8>>2]=N;N=r[V>>2]|0;O=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[N>>2]|0,r[N+28>>2]|0,28086)|0;r[(r[V>>2]|0)+12>>2]=O;O=r[V>>2]|0;N=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[O>>2]|0,r[O+28>>2]|0,37449)|0;r[(r[V>>2]|0)+16>>2]=N;N=r[V>>2]|0;O=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[N>>2]|0,r[N+28>>2]|0,46811)|0;r[(r[V>>2]|0)+20>>2]=O;O=r[V>>2]|0;N=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[O>>2]|0,r[O+28>>2]|0,56173)|0;r[(r[V>>2]|0)+24>>2]=N;N=r[V>>2]|0;O=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[N+28>>2]|0,r[N+56>>2]|0,9362)|0;r[(r[V>>2]|0)+32>>2]=O;O=r[V>>2]|0;N=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[O+28>>2]|0,r[O+56>>2]|0,18724)|0;r[(r[V>>2]|0)+36>>2]=N;N=r[V>>2]|0;O=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[N+28>>2]|0,r[N+56>>2]|0,28086)|0;r[(r[V>>2]|0)+40>>2]=O;O=r[V>>2]|0;N=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[O+28>>2]|0,r[O+56>>2]|0,37449)|0;r[(r[V>>2]|0)+44>>2]=N;N=r[V>>2]|0;O=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[N+28>>2]|0,r[N+56>>2]|0,46811)|0;r[(r[V>>2]|0)+48>>2]=O;O=r[V>>2]|0;N=Dt(e,r[(r[S>>2]|0)+(r[z>>2]<<2)>>2]|0,r[O+28>>2]|0,r[O+56>>2]|0,56173)|0;r[(r[V>>2]|0)+52>>2]=N}x=x+1|0;N=r[l>>2]|0;if((x|0)>=(N|0)){G=N;K=S;break e}}m=t;return W|0}else{G=j;K=o+48|0}while(0);c[h>>2]=H;h=G<<2;G=m;m=m+((1*h|0)+15&-16)|0;j=m;m=m+((1*h|0)+15&-16)|0;h=(Pt(e)|0)!=0;_=o+44|0;R=e+24|0;v=e+32|0;B=a+2868|0;M=o+52|0;o=h?0:7;while(1){h=r[n+12+(o<<2)>>2]|0;Te(h,0,1);Te(h,b,r[_>>2]|0);if(r[y>>2]|0){Te(h,r[R>>2]|0,1);Te(h,r[v>>2]|0,1)}s=r[l>>2]|0;if((s|0)>0){S=0;do{r[d+(S<<2)>>2]=Rt(h,e,r[(r[K>>2]|0)+(r[w+1028+(r[w+4+(S<<2)>>2]<<2)>>2]<<2)>>2]|0,r[(r[f+(S<<2)>>2]|0)+(o<<2)>>2]|0,r[i+(S<<2)>>2]|0)|0;S=S+1|0;x=r[l>>2]|0}while((S|0)<(x|0));Y=x}else Y=s;Ot(o,B,k,w,u,i,d,r[a+3240+((r[y>>2]|0)*60|0)+(o<<2)>>2]|0,Y);if((r[w>>2]|0)>0){S=0;do{x=r[w+1092+(S<<2)>>2]|0;A=r[l>>2]|0;if((A|0)>0){N=A;A=0;O=0;while(1){if((r[w+4+(O<<2)>>2]|0)==(S|0)){r[j+(A<<2)>>2]=(r[d+(O<<2)>>2]|0)!=0&1;r[G+(A<<2)>>2]=r[i+(O<<2)>>2];X=r[l>>2]|0;J=A+1|0}else{X=N;J=A}O=O+1|0;if((O|0)>=(X|0)){Z=J;break}else{N=X;A=J}}}else Z=0;A=a+1312+(x<<2)|0;N=Pi[r[(r[464+(r[A>>2]<<2)>>2]|0)+20>>2]&7](e,r[(r[M>>2]|0)+(x<<2)>>2]|0,G,j,Z)|0;O=r[l>>2]|0;if((O|0)>0){V=0;T=0;while(1){if((r[w+4+(T<<2)>>2]|0)==(S|0)){r[G+(V<<2)>>2]=r[i+(T<<2)>>2];Q=V+1|0}else Q=V;T=T+1|0;if((T|0)>=(O|0)){ee=Q;break}else V=Q}}else ee=0;Ii[r[(r[464+(r[A>>2]<<2)>>2]|0)+24>>2]&3](h,e,r[(r[M>>2]|0)+(x<<2)>>2]|0,G,j,ee,N,S)|0;S=S+1|0}while((S|0)<(r[w>>2]|0))}S=(Pt(e)|0)!=0;if((o|0)<((S?14:7)|0))o=o+1|0;else{W=0;break}}m=t;return W|0}function kt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0;n=m;i=r[e+64>>2]|0;a=r[i+4>>2]|0;o=r[a+28>>2]|0;s=r[i+104>>2]|0;i=e+28|0;l=r[o+(r[i>>2]<<2)>>2]|0;r[e+36>>2]=l;d=a+4|0;a=r[d>>2]|0;u=a<<2;p=m;m=m+((1*u|0)+15&-16)|0;f=m;m=m+((1*u|0)+15&-16)|0;h=m;m=m+((1*u|0)+15&-16)|0;g=m;m=m+((1*u|0)+15&-16)|0;if((a|0)>0){u=t+4|0;_=t+1028|0;v=s+48|0;y=l<<1&2147483646;b=0;do{w=r[_+(r[u+(b<<2)>>2]<<2)>>2]|0;k=xi[r[(r[456+(r[o+800+(w<<2)>>2]<<2)>>2]|0)+20>>2]&15](e,r[(r[v>>2]|0)+(w<<2)>>2]|0)|0;r[g+(b<<2)>>2]=k;r[h+(b<<2)>>2]=(k|0)!=0&1;ai(r[(r[e>>2]|0)+(b<<2)>>2]|0,0,y|0)|0;b=b+1|0;k=r[d>>2]|0}while((b|0)<(k|0));M=k}else M=a;a=t+1156|0;b=r[a>>2]|0;if((b|0)>0){y=t+1160|0;v=t+2184|0;u=0;do{_=h+(r[y+(u<<2)>>2]<<2)|0;k=h+(r[v+(u<<2)>>2]<<2)|0;if(!((r[_>>2]|0)==0?!(r[k>>2]|0):0)){r[_>>2]=1;r[k>>2]=1}u=u+1|0}while((u|0)<(b|0))}if((r[t>>2]|0)>0){u=t+1092|0;v=s+52|0;y=t+4|0;k=M;M=0;while(1){if((k|0)>0){_=k;w=0;S=0;while(1){if((r[y+(S<<2)>>2]|0)==(M|0)){r[f+(w<<2)>>2]=(r[h+(S<<2)>>2]|0)!=0&1;r[p+(w<<2)>>2]=r[(r[e>>2]|0)+(S<<2)>>2];A=r[d>>2]|0;C=w+1|0}else{A=_;C=w}S=S+1|0;if((S|0)>=(A|0)){T=C;break}else{_=A;w=C}}}else T=0;w=r[u+(M<<2)>>2]|0;Pi[r[(r[464+(r[o+1312+(w<<2)>>2]<<2)>>2]|0)+28>>2]&7](e,r[(r[v>>2]|0)+(w<<2)>>2]|0,p,f,T)|0;w=M+1|0;if((w|0)>=(r[t>>2]|0))break;k=r[d>>2]|0;M=w}E=r[a>>2]|0}else E=b;if((E|0)>0?(b=r[e>>2]|0,a=t+1160|0,M=t+2184|0,k=(l|0)/2|0,(l|0)>1):0){l=E;do{E=l;l=l+-1|0;T=r[b+(r[a+(l<<2)>>2]<<2)>>2]|0;f=r[b+(r[M+(l<<2)>>2]<<2)>>2]|0;p=0;do{v=T+(p<<2)|0;$=+c[v>>2];u=f+(p<<2)|0;I=+c[u>>2];C=I>0;if($>0){if(C){x=$-I;P=u}else{c[u>>2]=$;x=I+$;P=v}c[P>>2]=x}else{if(C){D=u;R=I+$}else{c[u>>2]=$;D=v;R=$-I}c[D>>2]=R}p=p+1|0}while((p|0)<(k|0))}while((E|0)>1)}if((r[d>>2]|0)<=0){m=n;return 0}k=t+4|0;D=t+1028|0;t=s+48|0;P=0;do{l=r[D+(r[k+(P<<2)>>2]<<2)>>2]|0;Ai[r[(r[456+(r[o+800+(l<<2)>>2]<<2)>>2]|0)+24>>2]&7](e,r[(r[t>>2]|0)+(l<<2)>>2]|0,r[g+(P<<2)>>2]|0,r[(r[e>>2]|0)+(P<<2)>>2]|0)|0;P=P+1|0;O=r[d>>2]|0}while((P|0)<(O|0));if((O|0)<=0){m=n;return 0}O=0;do{P=r[(r[e>>2]|0)+(O<<2)>>2]|0;Mt(r[r[s+12+(r[i>>2]<<2)>>2]>>2]|0,P,P);O=O+1|0}while((O|0)<(r[d>>2]|0));m=n;return 0}function Mt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0;i=r[e>>2]|0;a=i>>1;o=i>>2;i=t+(a<<2)|0;s=n+(a<<2)|0;l=s+(o<<2)|0;d=e+8|0;u=r[d>>2]|0;p=u+(o<<2)|0;f=p;m=i+-28|0;h=l;while(1){g=h;h=h+-16|0;_=m+8|0;v=f+12|0;y=f+8|0;c[h>>2]=-(+c[_>>2]*+c[v>>2])-+c[y>>2]*+c[m>>2];c[g+-12>>2]=+c[v>>2]*+c[m>>2]-+c[y>>2]*+c[_>>2];_=m+24|0;y=f+4|0;v=m+16|0;c[g+-8>>2]=-(+c[_>>2]*+c[y>>2])-+c[f>>2]*+c[v>>2];c[g+-4>>2]=+c[y>>2]*+c[v>>2]-+c[f>>2]*+c[_>>2];m=m+-32|0;if(m>>>0<t>>>0)break;else f=f+16|0}f=p;p=i+-32|0;i=l;while(1){m=p+16|0;h=f+-4|0;_=p+24|0;v=f+-8|0;c[i>>2]=+c[v>>2]*+c[_>>2]+ +c[h>>2]*+c[m>>2];c[i+4>>2]=+c[v>>2]*+c[m>>2]-+c[h>>2]*+c[_>>2];_=f+-12|0;f=f+-16|0;h=p+8|0;c[i+8>>2]=+c[f>>2]*+c[h>>2]+ +c[_>>2]*+c[p>>2];c[i+12>>2]=+c[f>>2]*+c[p>>2]-+c[_>>2]*+c[h>>2];p=p+-32|0;if(p>>>0<t>>>0)break;else i=i+16|0}St(r[e+4>>2]|0,u,s,a);u=r[e>>2]|0;i=r[d>>2]|0;d=n+(u>>1<<2)|0;t=i+(u<<2)|0;u=r[e+12>>2]|0;e=n;p=d;while(1){f=d+(r[u>>2]<<2)|0;h=d+(r[u+4>>2]<<2)|0;b=+c[f+4>>2];w=+c[h+4>>2];k=b-w;M=+c[f>>2];S=+c[h>>2];A=S+M;C=+c[t>>2];T=+c[t+4>>2];E=T*k+A*C;$=T*A-C*k;h=p;p=p+-16|0;k=(w+b)*.5;b=(M-S)*.5;c[e>>2]=E+k;c[h+-8>>2]=k-E;c[e+4>>2]=$+b;c[h+-4>>2]=$-b;f=d+(r[u+8>>2]<<2)|0;_=d+(r[u+12>>2]<<2)|0;b=+c[f+4>>2];$=+c[_+4>>2];E=b-$;k=+c[f>>2];S=+c[_>>2];M=S+k;w=+c[t+8>>2];C=+c[t+12>>2];A=C*E+M*w;T=C*M-w*E;E=($+b)*.5;b=(k-S)*.5;c[e+8>>2]=A+E;c[p>>2]=E-A;c[e+12>>2]=T+b;c[h+-12>>2]=T-b;e=e+16|0;if(e>>>0>=p>>>0)break;else{t=t+16|0;u=u+16|0}}u=i+(a<<2)|0;a=n;i=l;t=l;while(1){p=u+4|0;e=a+4|0;c[i+-4>>2]=+c[p>>2]*+c[a>>2]-+c[u>>2]*+c[e>>2];c[t>>2]=-(+c[u>>2]*+c[a>>2]+ +c[p>>2]*+c[e>>2]);e=a+8|0;p=u+12|0;d=a+12|0;h=u+8|0;c[i+-8>>2]=+c[p>>2]*+c[e>>2]-+c[h>>2]*+c[d>>2];c[t+4>>2]=-(+c[h>>2]*+c[e>>2]+ +c[p>>2]*+c[d>>2]);d=a+16|0;p=u+20|0;e=a+20|0;h=u+16|0;c[i+-12>>2]=+c[p>>2]*+c[d>>2]-+c[h>>2]*+c[e>>2];i=i+-16|0;c[t+8>>2]=-(+c[h>>2]*+c[d>>2]+ +c[p>>2]*+c[e>>2]);e=a+24|0;p=u+28|0;d=a+28|0;h=u+24|0;c[i>>2]=+c[p>>2]*+c[e>>2]-+c[h>>2]*+c[d>>2];c[t+12>>2]=-(+c[h>>2]*+c[e>>2]+ +c[p>>2]*+c[d>>2]);a=a+32|0;if(a>>>0>=i>>>0)break;else{u=u+32|0;t=t+16|0}}t=n+(o<<2)|0;o=l;n=t;u=t;do{t=n;n=n+-16|0;b=+c[o+-4>>2];c[t+-4>>2]=b;c[u>>2]=-b;b=+c[o+-8>>2];c[t+-8>>2]=b;c[u+4>>2]=-b;b=+c[o+-12>>2];o=o+-16|0;c[t+-12>>2]=b;c[u+8>>2]=-b;b=+c[o>>2];c[n>>2]=b;c[u+12>>2]=-b;u=u+16|0}while(u>>>0<o>>>0);I=l;x=l;while(1){l=x;x=x+-16|0;r[x>>2]=r[I+12>>2];r[l+-12>>2]=r[I+8>>2];r[l+-8>>2]=r[I+4>>2];r[l+-4>>2]=r[I>>2];if(x>>>0<=s>>>0)break;else I=I+16|0}return}function St(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,r=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0;a=e+-6|0;if((e|0)>6){e=t;r=n+(i<<2)|0;o=n+(i>>1<<2)+-32|0;while(1){s=r;r=r+-32|0;l=s+-8|0;d=+c[l>>2];u=o+24|0;p=+c[u>>2];f=d-p;m=s+-4|0;h=+c[m>>2];g=o+28|0;_=h-+c[g>>2];c[l>>2]=p+d;c[m>>2]=+c[g>>2]+h;m=e+4|0;c[u>>2]=+c[e>>2]*f+ +c[m>>2]*_;c[g>>2]=+c[e>>2]*_-+c[m>>2]*f;m=s+-16|0;f=+c[m>>2];g=o+16|0;_=+c[g>>2];h=f-_;u=s+-12|0;d=+c[u>>2];l=o+20|0;p=d-+c[l>>2];c[m>>2]=_+f;c[u>>2]=+c[l>>2]+d;u=e+20|0;m=e+16|0;c[g>>2]=+c[m>>2]*h+ +c[u>>2]*p;c[l>>2]=+c[m>>2]*p-+c[u>>2]*h;u=s+-24|0;h=+c[u>>2];m=o+8|0;p=+c[m>>2];d=h-p;l=s+-20|0;f=+c[l>>2];g=o+12|0;_=f-+c[g>>2];c[u>>2]=p+h;c[l>>2]=+c[g>>2]+f;l=e+36|0;u=e+32|0;c[m>>2]=+c[u>>2]*d+ +c[l>>2]*_;c[g>>2]=+c[u>>2]*_-+c[l>>2]*d;d=+c[r>>2];_=+c[o>>2];f=d-_;l=s+-28|0;h=+c[l>>2];s=o+4|0;p=h-+c[s>>2];c[r>>2]=_+d;c[l>>2]=+c[s>>2]+h;l=e+52|0;u=e+48|0;c[o>>2]=+c[u>>2]*f+ +c[l>>2]*p;c[s>>2]=+c[u>>2]*p-+c[l>>2]*f;o=o+-32|0;if(o>>>0<n>>>0)break;else e=e+64|0}}if((a|0)>1){e=1;do{o=1<<e;if((e|0)!=31){r=i>>e;l=4<<e;u=r>>1;s=0;do{g=n+((W(s,r)|0)<<2)|0;m=t;v=g+(r<<2)|0;y=g+(u<<2)+-32|0;while(1){b=v;v=v+-32|0;w=b+-8|0;f=+c[w>>2];k=y+24|0;p=+c[k>>2];h=f-p;M=b+-4|0;d=+c[M>>2];S=y+28|0;_=d-+c[S>>2];c[w>>2]=p+f;c[M>>2]=+c[S>>2]+d;M=m+4|0;c[k>>2]=+c[m>>2]*h+ +c[M>>2]*_;c[S>>2]=+c[m>>2]*_-+c[M>>2]*h;M=m+(l<<2)|0;S=b+-16|0;h=+c[S>>2];k=y+16|0;_=+c[k>>2];d=h-_;w=b+-12|0;f=+c[w>>2];A=y+20|0;p=f-+c[A>>2];c[S>>2]=_+h;c[w>>2]=+c[A>>2]+f;w=M+4|0;c[k>>2]=+c[M>>2]*d+ +c[w>>2]*p;c[A>>2]=+c[M>>2]*p-+c[w>>2]*d;w=M+(l<<2)|0;M=b+-24|0;d=+c[M>>2];A=y+8|0;p=+c[A>>2];f=d-p;k=b+-20|0;h=+c[k>>2];S=y+12|0;_=h-+c[S>>2];c[M>>2]=p+d;c[k>>2]=+c[S>>2]+h;k=w+4|0;c[A>>2]=+c[w>>2]*f+ +c[k>>2]*_;c[S>>2]=+c[w>>2]*_-+c[k>>2]*f;k=w+(l<<2)|0;f=+c[v>>2];_=+c[y>>2];h=f-_;w=b+-28|0;d=+c[w>>2];b=y+4|0;p=d-+c[b>>2];c[v>>2]=_+f;c[w>>2]=+c[b>>2]+d;w=k+4|0;c[y>>2]=+c[k>>2]*h+ +c[w>>2]*p;c[b>>2]=+c[k>>2]*p-+c[w>>2]*h;y=y+-32|0;if(y>>>0<g>>>0)break;else m=k+(l<<2)|0}s=s+1|0}while((s|0)<(o|0))}e=e+1|0}while((e|0)!=(a|0))}if((i|0)>0)C=0;else return;do{a=n+(C<<2)|0;e=a+120|0;h=+c[e>>2];t=a+56|0;p=+c[t>>2];o=a+124|0;d=+c[o>>2];s=a+60|0;f=+c[s>>2];c[e>>2]=p+h;c[o>>2]=f+d;c[t>>2]=h-p;c[s>>2]=d-f;l=a+112|0;f=+c[l>>2];u=a+48|0;d=+c[u>>2];p=f-d;r=a+116|0;h=+c[r>>2];m=a+52|0;_=+c[m>>2];T=h-_;c[l>>2]=d+f;c[r>>2]=_+h;c[u>>2]=p*.9238795042037964-T*.3826834261417389;c[m>>2]=T*.9238795042037964+p*.3826834261417389;g=a+104|0;p=+c[g>>2];y=a+40|0;T=+c[y>>2];h=p-T;v=a+108|0;_=+c[v>>2];k=a+44|0;f=+c[k>>2];d=_-f;c[g>>2]=T+p;c[v>>2]=f+_;c[y>>2]=(h-d)*.7071067690849304;c[k>>2]=(d+h)*.7071067690849304;w=a+96|0;h=+c[w>>2];b=a+32|0;d=+c[b>>2];_=h-d;S=a+100|0;f=+c[S>>2];A=a+36|0;p=+c[A>>2];T=f-p;c[w>>2]=d+h;c[S>>2]=p+f;f=_*.3826834261417389-T*.9238795042037964;c[b>>2]=f;p=T*.3826834261417389+_*.9238795042037964;c[A>>2]=p;M=a+88|0;_=+c[M>>2];E=a+24|0;T=+c[E>>2];h=_-T;$=a+28|0;d=+c[$>>2];I=a+92|0;x=+c[I>>2];P=d-x;c[M>>2]=T+_;c[I>>2]=x+d;c[$>>2]=h;D=a+16|0;d=+c[D>>2];R=a+80|0;x=+c[R>>2];_=d-x;O=a+20|0;T=+c[O>>2];N=a+84|0;L=+c[N>>2];F=T-L;c[R>>2]=x+d;c[N>>2]=L+T;T=F*.9238795042037964+_*.3826834261417389;L=F*.3826834261417389-_*.9238795042037964;U=a+8|0;_=+c[U>>2];B=a+72|0;F=+c[B>>2];d=_-F;H=a+12|0;x=+c[H>>2];j=a+76|0;V=+c[j>>2];q=x-V;c[B>>2]=F+_;c[j>>2]=V+x;x=(q+d)*.7071067690849304;V=(q-d)*.7071067690849304;d=+c[a>>2];z=a+64|0;q=+c[z>>2];_=d-q;G=a+4|0;F=+c[G>>2];K=a+68|0;Y=+c[K>>2];X=F-Y;J=q+d;c[z>>2]=J;d=Y+F;c[K>>2]=d;F=X*.3826834261417389+_*.9238795042037964;Y=X*.9238795042037964-_*.3826834261417389;_=Y-p;X=F-f;q=F+f;f=Y+p;p=X+_;Y=_-X;X=+c[k>>2];_=V-X;F=+c[y>>2];Z=F-x;Q=F+x;x=X+V;V=+c[u>>2];X=V-T;F=+c[m>>2];ee=F-L;te=V+T;T=F+L;L=X-ee;F=ee+X;X=+c[t>>2];ee=X-P;V=+c[s>>2];ne=V-h;ie=X+P;P=V+h;h=ee+_;V=ee-_;_=(L+p)*.7071067690849304;ee=(L-p)*.7071067690849304;c[E>>2]=_+h;c[D>>2]=h-_;_=(F-Y)*.7071067690849304;h=ne-Z;c[a>>2]=_+V;c[U>>2]=V-_;_=(F+Y)*.7071067690849304;Y=ne+Z;c[H>>2]=h+ee;c[G>>2]=h-ee;c[$>>2]=Y+_;c[O>>2]=Y-_;_=ie+Q;Y=ie-Q;Q=te+q;ie=te-q;c[t>>2]=_+Q;c[u>>2]=_-Q;Q=T-f;_=P-x;c[b>>2]=Y+Q;c[y>>2]=Y-Q;Q=T+f;f=P+x;c[k>>2]=_+ie;c[A>>2]=_-ie;c[s>>2]=f+Q;c[m>>2]=f-Q;Q=+c[S>>2];f=d-Q;ie=+c[w>>2];_=J-ie;x=ie+J;J=Q+d;d=_+f;Q=f-_;_=+c[j>>2];f=+c[v>>2];ie=_-f;P=+c[g>>2];T=+c[B>>2];Y=P-T;q=T+P;P=f+_;_=+c[l>>2];f=+c[R>>2];T=_-f;te=+c[r>>2];ee=+c[N>>2];h=te-ee;Z=f+_;_=ee+te;te=T-h;ee=h+T;T=+c[e>>2];h=+c[M>>2];f=T-h;ne=+c[o>>2];F=+c[I>>2];V=ne-F;p=h+T;T=F+ne;ne=f+ie;F=f-ie;ie=(te+d)*.7071067690849304;f=(te-d)*.7071067690849304;c[M>>2]=ie+ne;c[R>>2]=ne-ie;ie=(ee-Q)*.7071067690849304;ne=V-Y;c[z>>2]=ie+F;c[B>>2]=F-ie;ie=(ee+Q)*.7071067690849304;Q=V+Y;c[j>>2]=ne+f;c[K>>2]=ne-f;c[I>>2]=Q+ie;c[N>>2]=Q-ie;ie=p+q;Q=p-q;q=Z+x;p=Z-x;c[e>>2]=ie+q;c[l>>2]=ie-q;q=_-J;ie=T-P;c[w>>2]=Q+q;c[g>>2]=Q-q;q=_+J;J=T+P;c[v>>2]=ie+p;c[S>>2]=ie-p;c[o>>2]=J+q;c[r>>2]=J-q;C=C+32|0}while((C|0)<(i|0));return}function At(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0;s=(a|0)!=0;l=s?i:0;i=s?o:0;o=r[1500+(r[t+(l<<2)>>2]<<2)>>2]|0;s=r[1500+(r[t+(i<<2)>>2]<<2)>>2]|0;t=r[n+(a<<2)>>2]|0;a=r[n+(l<<2)>>2]|0;l=r[n+(i<<2)>>2]|0;i=(t|0)/4|0;n=(a|0)/4|0;d=i-n|0;u=(a|0)/2|0;a=((t|0)/2|0)+i+((l|0)/-4|0)|0;p=(l|0)/2|0;f=a+p|0;if((d|0)>0){ai(e|0,0,i-n<<2|0)|0;m=d}else m=0;if((m|0)<(d+u|0)){d=u+i-m-n|0;n=m;m=0;while(1){i=e+(n<<2)|0;c[i>>2]=+c[i>>2]*+c[o+(m<<2)>>2];m=m+1|0;if((m|0)==(d|0))break;else n=n+1|0}}if((l|0)>1){l=a;n=p;while(1){n=n+-1|0;p=e+(l<<2)|0;c[p>>2]=+c[p>>2]*+c[s+(n<<2)>>2];p=l+1|0;if((p|0)>=(f|0)){h=p;break}else l=p}}else h=a;if((t|0)<=(h|0))return;ai(e+(h<<2)|0,0,t-h<<2|0)|0;return}function Ct(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0;i=m;a=r[e>>2]|0;o=a>>1;s=a>>2;l=a>>3;d=m;m=m+((1*(a<<2)|0)+15&-16)|0;u=d+(o<<2)|0;p=t+(o<<2)+(s<<2)|0;f=e+8|0;h=r[f>>2]|0;g=h+(o<<2)|0;if((l|0)>0){_=(l+-1|0)>>>1;v=s+o+-4-(_<<2)|0;y=_<<1;_=h+(o+-2-y<<2)|0;b=g;w=0;k=p;M=p+4|0;while(1){S=k;k=k+-16|0;A=b;b=b+-8|0;C=+c[M>>2]+ +c[S+-8>>2];T=+c[M+8>>2]+ +c[k>>2];S=A+-4|0;c[u+(w<<2)>>2]=+c[b>>2]*C+T*+c[S>>2];c[u+((w|1)<<2)>>2]=+c[b>>2]*T-+c[S>>2]*C;w=w+2|0;if((w|0)>=(l|0))break;else M=M+16|0}E=_;$=y+2|0;I=t+(v<<2)|0}else{E=g;$=0;I=p}p=t+4|0;g=o-l|0;if(($|0)<(g|0)){v=(o+-1-$-l|0)>>>1;l=v<<1;y=-2-l|0;_=(v<<2)+5|0;v=$+l|0;l=E;M=$;w=I;I=p;while(1){b=l;l=l+-8|0;C=+c[w+-8>>2]-+c[I>>2];w=w+-16|0;T=+c[w>>2]-+c[I+8>>2];k=b+-4|0;c[u+(M<<2)>>2]=+c[l>>2]*C+T*+c[k>>2];c[u+((M|1)<<2)>>2]=+c[l>>2]*T-+c[k>>2]*C;M=M+2|0;if((M|0)>=(g|0))break;else I=I+16|0}x=E+(y<<2)|0;P=v+2|0;D=t+(_<<2)|0}else{x=E;P=$;D=p}if((P|0)<(o|0)){p=x;x=P;P=t+(a<<2)|0;a=D;while(1){D=p;p=p+-8|0;C=-+c[P+-8>>2]-+c[a>>2];P=P+-16|0;T=-+c[P>>2]-+c[a+8>>2];t=D+-4|0;c[u+(x<<2)>>2]=+c[p>>2]*C+T*+c[t>>2];c[u+((x|1)<<2)>>2]=+c[p>>2]*T-+c[t>>2]*C;x=x+2|0;if((x|0)>=(o|0))break;else a=a+16|0}}St(r[e+4>>2]|0,h,u,o);u=r[e>>2]|0;h=r[f>>2]|0;f=d+(u>>1<<2)|0;a=h+(u<<2)|0;u=r[e+12>>2]|0;x=d;p=f;while(1){P=f+(r[u>>2]<<2)|0;t=f+(r[u+4>>2]<<2)|0;C=+c[P+4>>2];T=+c[t+4>>2];R=C-T;O=+c[P>>2];N=+c[t>>2];L=N+O;F=+c[a>>2];U=+c[a+4>>2];B=U*R+L*F;H=U*L-F*R;t=p;p=p+-16|0;R=(T+C)*.5;C=(O-N)*.5;c[x>>2]=B+R;c[t+-8>>2]=R-B;c[x+4>>2]=H+C;c[t+-4>>2]=H-C;P=f+(r[u+8>>2]<<2)|0;D=f+(r[u+12>>2]<<2)|0;C=+c[P+4>>2];H=+c[D+4>>2];B=C-H;R=+c[P>>2];N=+c[D>>2];O=N+R;T=+c[a+8>>2];F=+c[a+12>>2];L=F*B+O*T;U=F*O-T*B;B=(H+C)*.5;C=(R-N)*.5;c[x+8>>2]=L+B;c[p>>2]=B-L;c[x+12>>2]=U+C;c[t+-12>>2]=U-C;x=x+16|0;if(x>>>0>=p>>>0)break;else{a=a+16|0;u=u+16|0}}if((s|0)<=0){m=i;return}u=e+16|0;e=h+(o<<2)|0;h=0;a=d;d=n+(o<<2)|0;while(1){d=d+-4|0;o=a+4|0;p=e+4|0;c[n+(h<<2)>>2]=(+c[p>>2]*+c[o>>2]+ +c[e>>2]*+c[a>>2])*+c[u>>2];c[d>>2]=(+c[p>>2]*+c[a>>2]-+c[e>>2]*+c[o>>2])*+c[u>>2];h=h+1|0;if((h|0)==(s|0))break;else{e=e+8|0;a=a+8|0}}m=i;return}function Tt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;n=r[e>>2]|0;if((n|0)==1)return;i=r[e+4>>2]|0;a=i+(n<<2)|0;o=r[e+8>>2]|0;e=r[o+4>>2]|0;if((e|0)<=0)return;s=e+1|0;l=n;c=0;d=n;u=1;while(1){p=r[o+(s-c<<2)>>2]|0;f=(n|0)/(d|0)|0;d=(d|0)/(p|0)|0;m=W(f,d)|0;l=l-(W(f,p+-1|0)|0)|0;h=1-u|0;e:do switch(p|0){case 4:{g=l+f|0;_=a+(l<<2)+-4|0;v=a+(g<<2)+-4|0;y=a+(g+f<<2)+-4|0;if(!h){Ht(f,d,t,i,_,v,y);b=0;break e}else{Ht(f,d,i,t,_,v,y);b=h;break e}break}case 2:{y=a+(l<<2)+-4|0;if(!h){jt(f,d,t,i,y);b=0;break e}else{jt(f,d,i,t,y);b=h;break e}break}default:{y=a+(l<<2)+-4|0;if(!(((f|0)==1?u:h)|0)){Vt(f,p,d,m,t,t,t,i,i,y);b=1;break e}else{Vt(f,p,d,m,i,i,i,t,t,y);b=0;break e}}}while(0);c=c+1|0;if((c|0)==(e|0))break;else u=b}if((n|0)>0&(b|0)!=1)w=0;else return;do{r[t+(w<<2)>>2]=r[i+(w<<2)>>2];w=w+1|0}while((w|0)!=(n|0));return}function Et(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0;i=m;a=r[e>>2]|0;o=m;m=m+((1*(a<<2)|0)+15&-16)|0;s=e+24|0;Bt(a,r[s>>2]|0,t,n,140,-1);l=(a|0)>0;if(l){d=0;do{c[o+(d<<2)>>2]=+c[t+(d<<2)>>2]-+c[n+(d<<2)>>2];d=d+1|0}while((d|0)!=(a|0))}d=e+4|0;Bt(a,r[s>>2]|0,o,n,0,r[(r[d>>2]|0)+128>>2]|0);if(l)u=0;else{m=i;return}do{s=o+(u<<2)|0;c[s>>2]=+c[t+(u<<2)>>2]-+c[s>>2];u=u+1|0}while((u|0)!=(a|0));if(!l){m=i;return}l=r[d>>2]|0;d=0;do{u=n+(d<<2)|0;t=~~(+c[u>>2]+.5);c[u>>2]=+c[l+336+(((t|0)>0?(t|0)<39?t:39:0)<<2)>>2]+ +c[o+(d<<2)>>2];d=d+1|0}while((d|0)!=(a|0));m=i;return}function $t(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=+i;a=+a;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0;o=m;s=r[e>>2]|0;l=e+40|0;d=r[l>>2]|0;u=m;m=m+((1*(d<<2)|0)+15&-16)|0;p=e+4|0;f=r[p>>2]|0;h=+c[f+4>>2]+a;if((d|0)>0){g=0;do{c[u+(g<<2)>>2]=-9999;g=g+1|0}while((g|0)!=(d|0))}a=+c[f+8>>2];_=h<a?a:h;g=(s|0)>0;if(g){v=r[e+16>>2]|0;y=0;do{c[n+(y<<2)>>2]=+c[v+(y<<2)>>2]+_;y=y+1|0}while((y|0)!=(s|0));y=r[e+8>>2]|0;_=+c[f+496>>2]-i;if(g){g=r[e+20>>2]|0;f=e+32|0;v=e+36|0;b=e+28|0;w=0;while(1){k=r[g+(w<<2)>>2]|0;M=w;i=+c[t+(w<<2)>>2];e:while(1){S=M;while(1){A=S+1|0;if((A|0)>=(s|0)){C=0;break e}if((r[g+(A<<2)>>2]|0)!=(k|0)){C=1;break e}h=+c[t+(A<<2)>>2];if(h>i){M=A;i=h;continue e}else S=A}}if(i+6>+c[n+(S<<2)>>2]?(M=k>>r[f>>2],T=r[v>>2]|0,E=~~((_+i+-30)*.10000000149011612),$=(E|0)>0?E:0,E=r[(r[y+(((M|0)>0?(M|0)<16?M:16:0)<<2)>>2]|0)+((($|0)<7?$:7)<<2)>>2]|0,$=E+8|0,M=~~+c[E+4>>2],h=+c[E>>2],E=~~h,(E|0)<(M|0)):0){I=E;E=~~((h+-16)*+(T|0)-+(T>>1|0)+ +((r[g+(S<<2)>>2]|0)-(r[b>>2]|0)|0));do{if((E|0)>0?(h=+c[$+(I<<2)>>2]+i,x=u+(E<<2)|0,+c[x>>2]<h):0)c[x>>2]=h;E=E+T|0;I=I+1|0}while((I|0)<(M|0)&(E|0)<(d|0))}if(C)w=A;else{P=v;break}}}else D=7}else D=7;if((D|0)==7)P=e+36|0;D=r[P>>2]|0;Ut(u,D,d);d=r[e>>2]|0;e:do if((d|0)>1){P=r[e+20>>2]|0;v=r[P>>2]|0;A=r[e+28>>2]|0;w=(r[p>>2]|0)+32|0;C=v;b=1;S=0;g=v-(D>>1)-A|0;while(1){_=+c[u+(g<<2)>>2];v=((r[P+(b<<2)>>2]|0)+C>>1)-A|0;i=+c[w>>2];h=_>i?i:_;t:do if((g|0)<(v|0)){y=g;_=h;while(1){f=y+1|0;n:do if(_==-9999){R=+c[u+(f<<2)>>2];O=f}else{t=f;while(1){i=+c[u+(t<<2)>>2];if(i>-9999&i<_){R=i;O=t;break n}if((t|0)<(v|0))t=t+1|0;else{N=_;L=t;break t}}}while(0);if((O|0)<(v|0)){y=O;_=R}else{N=R;L=O;break}}}else{N=h;L=g}while(0);v=L+A|0;t:do if((S|0)>=(d|0)|(C|0)>(v|0))F=S;else{y=S;while(1){f=n+(y<<2)|0;if(+c[f>>2]<N)c[f>>2]=N;f=y+1|0;if((f|0)>=(d|0)){F=f;break t}if((r[P+(f<<2)>>2]|0)>(v|0)){F=f;break}else y=f}}while(0);v=F+1|0;if((v|0)>=(d|0)){U=F;break e}C=r[P+(F<<2)>>2]|0;b=v;S=F;g=L}}else U=0;while(0);N=+c[u+((r[l>>2]|0)+-1<<2)>>2];if((U|0)<(d|0))B=U;else{m=o;return}do{U=n+(B<<2)|0;if(+c[U>>2]<N)c[U>>2]=N;B=B+1|0}while((B|0)!=(d|0));m=o;return}function It(e,t,n,i,a,o,s){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;var l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0;l=r[e>>2]|0;d=r[e+4>>2]|0;u=+c[d+12+(i<<2)>>2];if((l|0)<=0)return;p=r[(r[e+12>>2]|0)+(i<<2)>>2]|0;f=d+108|0;m=+c[e+48>>2];h=m*.005;g=m*3e-4;if((i|0)==1)_=0;else{i=0;do{m=+c[p+(i<<2)>>2]+ +c[t+(i<<2)>>2];v=+c[f>>2];y=m>v?v:m;m=+c[n+(i<<2)>>2]+u;c[a+(i<<2)>>2]=y<m?m:y;i=i+1|0}while((i|0)!=(l|0));return}do{y=+c[p+(_<<2)>>2]+ +c[t+(_<<2)>>2];m=+c[f>>2];v=y>m?m:y;y=+c[n+(_<<2)>>2]+u;c[a+(_<<2)>>2]=v<y?y:v;y=v-+c[s+(_<<2)>>2];v=y+17.200000762939453;if(y>-17.200000762939453){y=1-h*v;if(y<0)b=9999999747378752e-20;else b=y}else b=1-g*v;i=o+(_<<2)|0;c[i>>2]=+c[i>>2]*b;_=_+1|0}while((_|0)!=(l|0));return}function xt(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ce=0,Te=0,Ee=0,$e=0,Ie=0,xe=0,Pe=0,De=0,Re=0,Oe=0,Ne=0,Le=0,Fe=0,Ue=0,Be=0,je=0,Ve=0,qe=0,ze=0,We=0,Ge=0,Ke=0,Ye=0,Xe=0,Je=0,Ze=0,Qe=0,et=0,tt=0,nt=0,it=0,at=0,rt=0,ot=0,st=0,lt=0,ct=0,dt=0;a=m;m=m+4912|0;o=a+1328|0;s=a+1064|0;l=a+804|0;d=a+544|0;u=a+284|0;p=a+24|0;f=a+20|0;h=a+16|0;g=a+12|0;_=a+8|0;v=a+4|0;y=a;b=r[t+1296>>2]|0;w=r[t+1288>>2]|0;k=r[t+1284>>2]|0;M=(k|0)>0;if(M){S=0;do{r[s+(S<<2)>>2]=-200;S=S+1|0}while((S|0)!=(k|0));if(M){S=0;do{r[l+(S<<2)>>2]=-200;S=S+1|0}while((S|0)!=(k|0));if(M){ai(d|0,0,k<<2|0)|0;S=0;do{r[u+(S<<2)>>2]=1;S=S+1|0}while((S|0)!=(k|0));if(M){ai(p|0,-1,k<<2|0)|0;M=k+-1|0;if((k|0)==1){A=0;m=a;return A|0}S=w+-1|0;C=b+1112|0;T=r[t>>2]|0;E=0;$=0;while(1){I=E;E=E+1|0;x=T;T=r[t+(E<<2)>>2]|0;P=o+(I*56|0)+8|0;D=P;R=D+48|0;do{r[D>>2]=0;D=D+4|0}while((D|0)<(R|0));r[o+(I*56|0)>>2]=x;r[o+(I*56|0)+4>>2]=T;O=(T|0)<(w|0)?T:S;if((O|0)<(x|0)){N=0;L=0;F=0;U=0;B=0;H=0;j=0;V=0;q=0;z=0;G=0;K=0}else{Y=x;X=0;J=0;Z=0;Q=0;ee=0;te=0;ne=0;ie=0;ae=0;re=0;oe=0;se=0;while(1){le=+c[i+(Y<<2)>>2];ce=~~(le*7.314285755157471+1023.5);de=(ce|0)>1023;ue=(ce|0)>0;pe=de?1023:ue?ce:0;do if(pe){fe=W(Y,Y)|0;me=W(ce,ce)|0;he=de?1046529:ue?me:0;me=W(pe,Y)|0;if(!(+c[C>>2]+ +c[n+(Y<<2)>>2]>=le)){_e=X;ve=J+1|0;ye=Z;be=fe+Q|0;we=ee;ke=Y+te|0;Me=ne;Se=me+ie|0;Ae=ae;Ce=he+re|0;Te=oe;Ee=pe+se|0;break}else{_e=X+1|0;ve=J;ye=fe+Z|0;be=Q;we=Y+ee|0;ke=te;Me=me+ne|0;Se=ie;Ae=he+ae|0;Ce=re;Te=pe+oe|0;Ee=se;break}}else{_e=X;ve=J;ye=Z;be=Q;we=ee;ke=te;Me=ne;Se=ie;Ae=ae;Ce=re;Te=oe;Ee=se}while(0);if((Y|0)<(O|0)){Y=Y+1|0;X=_e;J=ve;Z=ye;Q=be;ee=we;te=ke;ne=Me;ie=Se;ae=Ae;re=Ce;oe=Te;se=Ee}else{N=_e;L=ve;F=ye;U=be;B=we;H=ke;j=Me;V=Se;q=Ae;z=Ce;G=Te;K=Ee;break}}}r[P>>2]=B;r[o+(I*56|0)+12>>2]=G;r[o+(I*56|0)+16>>2]=F;r[o+(I*56|0)+20>>2]=q;r[o+(I*56|0)+24>>2]=j;r[o+(I*56|0)+28>>2]=N;r[o+(I*56|0)+32>>2]=H;r[o+(I*56|0)+36>>2]=K;r[o+(I*56|0)+40>>2]=U;r[o+(I*56|0)+44>>2]=z;r[o+(I*56|0)+48>>2]=V;r[o+(I*56|0)+52>>2]=L;se=N+$|0;if((E|0)==(M|0)){$e=se;break}else $=se}}else Ie=9}else Ie=9}else Ie=9}else Ie=9;if((Ie|0)==9){if(k|0){A=0;m=a;return A|0}$=o+8|0;D=$;R=D+48|0;do{r[D>>2]=0;D=D+4|0}while((D|0)<(R|0));r[o>>2]=0;r[o+4>>2]=w;if((w|0)<1){xe=0;Pe=0;De=0;Re=0;Oe=0;Ne=0;Le=0;Fe=0;Ue=0;Be=0;je=0;Ve=0}else{D=b+1112|0;R=0;M=0;E=0;N=0;L=0;V=0;z=0;U=0;K=0;H=0;j=0;q=0;F=0;while(1){le=+c[i+(R<<2)>>2];G=~~(le*7.314285755157471+1023.5);B=(G|0)>1023;Ee=(G|0)>0;Te=B?1023:Ee?G:0;do if(Te){Ce=W(R,R)|0;Ae=W(G,G)|0;Se=B?1046529:Ee?Ae:0;Ae=W(Te,R)|0;if(!(+c[D>>2]+ +c[n+(R<<2)>>2]>=le)){qe=M;ze=E+1|0;We=N;Ge=Ce+L|0;Ke=V;Ye=R+z|0;Xe=U;Je=Ae+K|0;Ze=H;Qe=Se+j|0;et=q;tt=Te+F|0;break}else{qe=M+1|0;ze=E;We=Ce+N|0;Ge=L;Ke=R+V|0;Ye=z;Xe=Ae+U|0;Je=K;Ze=Se+H|0;Qe=j;et=Te+q|0;tt=F;break}}else{qe=M;ze=E;We=N;Ge=L;Ke=V;Ye=z;Xe=U;Je=K;Ze=H;Qe=j;et=q;tt=F}while(0);R=R+1|0;if((R|0)==(w|0)){xe=qe;Pe=ze;De=We;Re=Ge;Oe=Ke;Ne=Ye;Le=Xe;Fe=Je;Ue=Ze;Be=Qe;je=et;Ve=tt;break}else{M=qe;E=ze;N=We;L=Ge;V=Ke;z=Ye;U=Xe;K=Je;H=Ze;j=Qe;q=et;F=tt}}}r[$>>2]=Oe;r[o+12>>2]=je;r[o+16>>2]=De;r[o+20>>2]=Ue;r[o+24>>2]=Le;r[o+28>>2]=xe;r[o+32>>2]=Ne;r[o+36>>2]=Ve;r[o+40>>2]=Re;r[o+44>>2]=Be;r[o+48>>2]=Fe;r[o+52>>2]=Pe;$e=xe}if(!$e){A=0;m=a;return A|0}r[f>>2]=-200;r[h>>2]=-200;Ft(o,k+-1|0,f,h,b)|0;$e=r[f>>2]|0;r[s>>2]=$e;r[l>>2]=$e;f=r[h>>2]|0;h=l+4|0;r[h>>2]=f;xe=s+4|0;r[xe>>2]=f;Pe=(k|0)>2;do if(Pe){Fe=b+1112|0;Be=b+1096|0;Re=b+1100|0;Ve=b+1104|0;Ne=2;e:while(1){Le=r[t+520+(Ne<<2)>>2]|0;Ue=r[d+(Le<<2)>>2]|0;De=r[u+(Le<<2)>>2]|0;je=p+(Ue<<2)|0;t:do if((r[je>>2]|0)!=(De|0)){Oe=r[t+520+(Ue<<2)>>2]|0;$=r[t+520+(De<<2)>>2]|0;r[je>>2]=De;tt=r[b+836+(Ue<<2)>>2]|0;F=r[b+836+(De<<2)>>2]|0;et=r[s+(Ue<<2)>>2]|0;q=l+(Ue<<2)|0;Qe=r[q>>2]|0;j=(et|0)<0?Qe:(Qe|0)<0?et:Qe+et>>1;et=s+(De<<2)|0;Qe=r[et>>2]|0;Ze=r[l+(De<<2)>>2]|0;H=(Qe|0)<0?Ze:(Ze|0)<0?Qe:Ze+Qe>>1;if((j|0)==-1|(H|0)==-1){Ie=32;break e}Qe=H-j|0;Ze=F-tt|0;Je=(Qe|0)/(Ze|0)|0;K=Qe>>31|1;le=+c[i+(tt<<2)>>2];Xe=~~(le*7.314285755157471+1023.5);U=(Xe|0)>1023?1023:(Xe|0)>0?Xe:0;Xe=W(Je,Ze)|0;Ye=((Qe|0)>-1?Qe:0-Qe|0)-((Xe|0)>-1?Xe:0-Xe|0)|0;Xe=j-U|0;Qe=W(Xe,Xe)|0;nt=+c[Fe>>2];if(nt+ +c[n+(tt<<2)>>2]>=le){le=+(j|0);it=+(U|0);if(!(+c[Be>>2]+le<it)?!(le-+c[Re>>2]>it):0)Ie=36}else Ie=36;n:do if((Ie|0)==36){Ie=0;U=tt+1|0;if((U|0)<(F|0)){Xe=0;z=U;U=Qe;Ke=1;V=j;while(1){Ge=Xe+Ye|0;L=(Ge|0)<(Ze|0);Xe=Ge-(L?0:Ze)|0;V=V+Je+(L?0:K)|0;it=+c[i+(z<<2)>>2];L=~~(it*7.314285755157471+1023.5);Ge=(L|0)>1023?1023:(L|0)>0?L:0;L=V-Ge|0;We=(W(L,L)|0)+U|0;L=Ke+1|0;if(Ge|0?+c[n+(z<<2)>>2]+nt>=it:0){it=+(V|0);le=+(Ge|0);if(+c[Be>>2]+it<le)break n;if(it-+c[Re>>2]>le)break n}z=z+1|0;if((z|0)>=(F|0)){at=We;rt=L;break}else{U=We;Ke=L}}}else{at=Qe;rt=1}le=+c[Be>>2];it=+(rt|0);ot=+c[Ve>>2];if((!(le*le/it>ot)?(le=+c[Re>>2],!(le*le/it>ot)):0)?+((at|0)/(rt|0)|0|0)>ot:0)break;r[s+(Ne<<2)>>2]=-200;r[l+(Ne<<2)>>2]=-200;break t}while(0);r[g>>2]=-200;r[_>>2]=-200;r[v>>2]=-200;r[y>>2]=-200;Qe=Ft(o+(Oe*56|0)|0,Le-Oe|0,g,_,b)|0;F=Ft(o+(Le*56|0)|0,$-Le|0,v,y,b)|0;K=(Qe|0)!=0;if(K){r[g>>2]=j;r[_>>2]=r[v>>2]}if((F|0)!=0?(r[v>>2]=r[_>>2],r[y>>2]=H,K):0){r[s+(Ne<<2)>>2]=-200;r[l+(Ne<<2)>>2]=-200}else Ie=49;n:do if((Ie|0)==49){Ie=0;K=r[g>>2]|0;r[q>>2]=K;if(!Ue)r[s>>2]=K;K=r[_>>2]|0;r[s+(Ne<<2)>>2]=K;F=r[v>>2]|0;r[l+(Ne<<2)>>2]=F;Qe=r[y>>2]|0;r[et>>2]=Qe;if((De|0)==1)r[h>>2]=Qe;if((F&K|0)>-1){i:do if((Le|0)>0){K=Le;do{F=K;K=K+-1|0;Qe=u+(K<<2)|0;if((r[Qe>>2]|0)!=(De|0))break i;r[Qe>>2]=Ne}while((F|0)>1)}while(0);K=Le+1|0;if((K|0)<(k|0)){F=K;do{K=d+(F<<2)|0;if((r[K>>2]|0)!=(Ue|0))break n;r[K>>2]=Ne;F=F+1|0}while((F|0)<(k|0))}}}while(0)}while(0);Ne=Ne+1|0;if((Ne|0)>=(k|0)){Ie=63;break}}if((Ie|0)==32)ge(1);else if((Ie|0)==63){st=r[s>>2]|0;lt=r[l>>2]|0;ct=r[xe>>2]|0;dt=r[h>>2]|0;break}}else{st=$e;lt=$e;ct=f;dt=f}while(0);f=He(e,k<<2)|0;r[f>>2]=(st|0)<0?lt:(lt|0)<0?st:lt+st>>1;r[f+4>>2]=(ct|0)<0?dt:(dt|0)<0?ct:dt+ct>>1;if(Pe){Pe=2;do{ct=Pe+-2|0;dt=r[t+1032+(ct<<2)>>2]|0;st=r[t+780+(ct<<2)>>2]|0;ct=r[b+836+(dt<<2)>>2]|0;lt=r[f+(dt<<2)>>2]&32767;dt=(r[f+(st<<2)>>2]&32767)-lt|0;e=(W((dt|0)>-1?dt:0-dt|0,(r[b+836+(Pe<<2)>>2]|0)-ct|0)|0)/((r[b+836+(st<<2)>>2]|0)-ct|0)|0;ct=((dt|0)<0?0-e|0:e)+lt|0;lt=r[s+(Pe<<2)>>2]|0;e=r[l+(Pe<<2)>>2]|0;dt=(lt|0)<0?e:(e|0)<0?lt:e+lt>>1;r[f+(Pe<<2)>>2]=(dt|0)<0|(ct|0)==(dt|0)?ct|32768:dt;Pe=Pe+1|0}while((Pe|0)!=(k|0))}A=f;m=a;return A|0}function Pt(e){e=e|0;return(r[(r[(r[e+64>>2]|0)+104>>2]|0)+80>>2]|0)!=0|0}function Dt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0;o=r[t+1284>>2]|0;if(!((n|0)!=0&(i|0)!=0)){s=0;return s|0}t=He(e,o<<2)|0;if((o|0)<=0){s=t;return s|0}e=65536-a|0;l=0;do{c=n+(l<<2)|0;d=W(r[c>>2]&32767,e)|0;u=i+(l<<2)|0;p=d+32768+(W(r[u>>2]&32767,a)|0)>>16;d=t+(l<<2)|0;r[d>>2]=p;if(r[c>>2]&32768|0?r[u>>2]&32768|0:0)r[d>>2]=p|32768;l=l+1|0}while((l|0)!=(o|0));s=t;return s|0}function Rt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0;o=m;m=m+336|0;s=o+64|0;l=o+32|0;c=o;d=r[n+1296>>2]|0;u=n+1284|0;p=r[u>>2]|0;f=r[(r[(r[t+64>>2]|0)+4>>2]|0)+28>>2]|0;h=r[f+2848>>2]|0;if(!i){Te(e,0,1);ai(a|0,0,((r[t+36>>2]|0)/2|0)<<2|0)|0;g=0;m=o;return g|0}e:do if((p|0)>0){_=d+832|0;v=0;while(1){y=i+(v<<2)|0;b=r[y>>2]|0;w=b&32767;switch(r[_>>2]|0){case 1:{k=w>>>2;break}case 2:{k=w>>>3;break}case 3:{k=(w>>>0)/12|0;break}case 4:{k=w>>>4;break}default:k=w}r[y>>2]=b&32768|k;v=v+1|0;if((v|0)==(p|0))break e}}while(0);r[s>>2]=r[i>>2];k=s+4|0;r[k>>2]=r[i+4>>2];v=n+1292|0;if((p|0)>2){_=2;do{b=_+-2|0;y=r[n+1032+(b<<2)>>2]|0;w=r[n+780+(b<<2)>>2]|0;b=r[d+836+(y<<2)>>2]|0;M=i+(y<<2)|0;y=i+(w<<2)|0;S=r[M>>2]&32767;A=(r[y>>2]&32767)-S|0;C=(W((A|0)>-1?A:0-A|0,(r[d+836+(_<<2)>>2]|0)-b|0)|0)/((r[d+836+(w<<2)>>2]|0)-b|0)|0;b=((A|0)<0?0-C|0:C)+S|0;C=i+(_<<2)|0;A=r[C>>2]|0;if((A&32768|0)!=0|(A|0)==(b|0)){r[C>>2]=b|32768;r[s+(_<<2)>>2]=0}else{C=(r[v>>2]|0)-b|0;w=(C|0)<(b|0)?C:b;C=A-b|0;do if((C|0)<0)if((C|0)<(0-w|0)){T=w+~C|0;break}else{T=~(C<<1);break}else if((w|0)>(C|0)){T=C<<1;break}else{T=w+C|0;break}while(0);r[s+(_<<2)>>2]=T;r[M>>2]=S;r[y>>2]=r[y>>2]&32767}_=_+1|0}while((_|0)!=(p|0))}Te(e,1,1);p=n+1308|0;r[p>>2]=(r[p>>2]|0)+1;p=(r[v>>2]|0)+-1|0;_=(p|0)==0;if(!_){T=0;C=p;do{T=T+1|0;C=C>>>1}while((C|0)!=0);C=n+1304|0;r[C>>2]=(r[C>>2]|0)+(T<<1);T=r[s>>2]|0;if(_){E=T;$=C;I=0}else{_=0;w=p;while(1){p=_+1|0;w=w>>>1;if(!w){E=T;$=C;I=p;break}else _=p}}}else{E=r[s>>2]|0;$=n+1304|0;I=0}Te(e,E,I);I=r[k>>2]|0;k=(r[v>>2]|0)+-1|0;if(!k)x=0;else{v=0;E=k;while(1){k=v+1|0;E=E>>>1;if(!E){x=k;break}else v=k}}Te(e,I,x);if((r[d>>2]|0)>0){x=n+1300|0;I=0;v=2;while(1){E=r[d+4+(I<<2)>>2]|0;k=r[d+128+(E<<2)>>2]|0;_=r[d+192+(E<<2)>>2]|0;C=1<<_;r[l>>2]=0;r[l+4>>2]=0;r[l+8>>2]=0;r[l+12>>2]=0;r[l+16>>2]=0;r[l+20>>2]=0;r[l+24>>2]=0;r[l+28>>2]=0;if(_|0){T=(_|0)==31;if(!T){w=0;do{p=r[d+320+(E<<5)+(w<<2)>>2]|0;if((p|0)<0)P=1;else P=r[(r[f+1824+(p<<2)>>2]|0)+4>>2]|0;r[c+(w<<2)>>2]=P;w=w+1|0}while((w|0)<(C|0))}e:do if((k|0)>0){if(T){w=0;y=0;S=0;while(1){M=r[l+(S<<2)>>2]<<w|y;S=S+1|0;if((S|0)==(k|0)){D=M;break e}else{w=w+31|0;y=M}}}else{R=0;O=0;N=0}while(1){y=r[s+(N+v<<2)>>2]|0;w=0;while(1){if((y|0)<(r[c+(w<<2)>>2]|0)){L=38;break}S=w+1|0;if((S|0)<(C|0))w=S;else{L=39;break}}if((L|0)==38){L=0;r[l+(N<<2)>>2]=w;F=w}else if((L|0)==39){L=0;F=r[l+(N<<2)>>2]|0}y=F<<R|O;N=N+1|0;if((N|0)==(k|0)){D=y;break}else{R=R+_|0;O=y}}}else D=0;while(0);_=ft(h+((r[d+256+(E<<2)>>2]|0)*56|0)|0,D,e)|0;r[x>>2]=(r[x>>2]|0)+_}if((k|0)>0){_=0;do{C=r[d+320+(E<<5)+(r[l+(_<<2)>>2]<<2)>>2]|0;if((C|0)>-1?(T=r[s+(_+v<<2)>>2]|0,(T|0)<(r[h+(C*56|0)+4>>2]|0)):0){y=ft(h+(C*56|0)|0,T,e)|0;r[$>>2]=(r[$>>2]|0)+y}_=_+1|0}while((_|0)!=(k|0))}I=I+1|0;if((I|0)>=(r[d>>2]|0))break;else v=k+v|0}}v=d+832|0;I=W(r[v>>2]|0,r[i>>2]|0)|0;$=(r[f+(r[t+28>>2]<<2)>>2]|0)/2|0;f=r[u>>2]|0;if((f|0)>1){e=f;f=0;h=1;s=0;l=I;while(1){x=r[n+260+(h<<2)>>2]|0;D=r[i+(x<<2)>>2]|0;if((D&32767|0)==(D|0)){O=W(r[v>>2]|0,D)|0;D=r[d+836+(x<<2)>>2]|0;x=O-l|0;R=D-s|0;N=(x|0)/(R|0)|0;F=x>>31|1;c=W(N,R)|0;P=((x|0)>-1?x:0-x|0)-((c|0)>-1?c:0-c|0)|0;c=($|0)>(D|0)?D:$;if((c|0)>(s|0)){U=0;B=s;H=l;L=56}else{j=0;V=s;q=l}while(1){if((L|0)==56){L=0;r[a+(B<<2)>>2]=H;j=U;V=B;q=H}x=V+1|0;if((x|0)>=(c|0))break;_=j+P|0;E=(_|0)<(R|0);U=_-(E?0:R)|0;B=x;H=q+N+(E?0:F)|0;L=56}z=r[u>>2]|0;G=D;K=D;Y=O}else{z=e;G=f;K=s;Y=l}h=h+1|0;if((h|0)>=(z|0)){X=G;J=Y;break}else{e=z;f=G;s=K;l=Y}}}else{X=0;J=I}I=t+36|0;if((X|0)<((r[I>>2]|0)/2|0|0))Z=X;else{g=1;m=o;return g|0}do{r[a+(Z<<2)>>2]=J;Z=Z+1|0}while((Z|0)<((r[I>>2]|0)/2|0|0));g=1;m=o;return g|0}function Ot(e,t,n,i,a,o,s,l,u){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;l=l|0;u=u|0;var p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,pe=0,fe=0,me=0,he=0,ge=0,_e=0;p=m;f=r[n>>2]|0;h=n+4|0;n=r[h>>2]|0;if(!(r[n+500>>2]|0))g=16;else g=r[n+508>>2]|0;_=r[t+132+((r[n>>2]|0)*60|0)+(e<<2)>>2]|0;v=+d[8+(r[t+252+(e<<2)>>2]<<3)>>3];n=u<<2;y=m;m=m+((1*n|0)+15&-16)|0;b=m;m=m+((1*n|0)+15&-16)|0;w=m;m=m+((1*n|0)+15&-16)|0;k=m;m=m+((1*n|0)+15&-16)|0;M=m;m=m+((1*n|0)+15&-16)|0;S=i+1156|0;A=+d[((f|0)>1e3?80:8)+(r[t+312+(e<<2)>>2]<<3)>>3];e=W(n,g)|0;t=m;m=m+((1*e|0)+15&-16)|0;r[y>>2]=t;C=m;m=m+((1*e|0)+15&-16)|0;r[b>>2]=C;T=m;m=m+((1*e|0)+15&-16)|0;r[w>>2]=T;E=m;m=m+((1*e|0)+15&-16)|0;r[k>>2]=E;if((u|0)>1?(r[y+4>>2]=t+(g<<2),r[b+4>>2]=C+(g<<2),r[w+4>>2]=T+(g<<2),r[k+4>>2]=E+(g<<2),(u|0)!=2):0){E=2;do{T=r[b>>2]|0;C=r[w>>2]|0;t=r[k>>2]|0;$=W(E,g)|0;r[y+(E<<2)>>2]=(r[y>>2]|0)+($<<2);r[b+(E<<2)>>2]=T+($<<2);r[w+(E<<2)>>2]=C+($<<2);r[k+(E<<2)>>2]=t+($<<2);E=E+1|0}while((E|0)!=(u|0))}E=r[S>>2]|0;if((f|0)>0){$=(u|0)>0;t=r[k>>2]|0;C=0;do{T=f-C|0;I=(g|0)>(T|0)?T:g;li(M|0,s|0,n|0)|0;ai(t|0,0,e|0)|0;if($){T=(I|0)>0;x=_-C|0;P=0;do{R=(r[o+(P<<2)>>2]|0)+(C<<2)|0;if(!(r[M+(P<<2)>>2]|0)){if(T){O=r[w+(P<<2)>>2]|0;N=r[y+(P<<2)>>2]|0;L=r[b+(P<<2)>>2]|0;F=r[k+(P<<2)>>2]|0;U=0;do{c[O+(U<<2)>>2]=1.000000013351432e-10;c[N+(U<<2)>>2]=0;c[L+(U<<2)>>2]=0;r[F+(U<<2)>>2]=0;r[R+(U<<2)>>2]=0;U=U+1|0}while((U|0)<(I|0))}}else{U=r[w+(P<<2)>>2]|0;if(T){F=0;do{r[U+(F<<2)>>2]=r[476+(r[R+(F<<2)>>2]<<2)>>2];F=F+1|0}while((F|0)<(I|0));F=r[a+(P<<2)>>2]|0;L=F+(C<<2)|0;N=r[k+(P<<2)>>2]|0;if(T){O=0;do{B=+D(+ +c[L+(O<<2)>>2]);r[N+(O<<2)>>2]=!(B/+c[U+(O<<2)>>2]<((O|0)>=(x|0)?A:v))&1;O=O+1|0}while((O|0)!=(I|0));
O=r[y+(P<<2)>>2]|0;N=r[b+(P<<2)>>2]|0;if(T){L=0;do{H=F+(L+C<<2)|0;B=+c[H>>2];j=B*B;V=O+(L<<2)|0;c[V>>2]=j;c[N+(L<<2)>>2]=j;if(+c[H>>2]<0)c[V>>2]=-+c[V>>2];V=U+(L<<2)|0;j=+c[V>>2];c[V>>2]=j*j;L=L+1|0}while((L|0)<(I|0));q=O;z=N}else{q=O;z=N}}else G=20}else G=20;if((G|0)==20){G=0;q=r[y+(P<<2)>>2]|0;z=r[b+(P<<2)>>2]|0}+Nt(r[h>>2]|0,_,q,z,U,0,C,I,R)}P=P+1|0}while((P|0)!=(u|0))}P=r[S>>2]|0;if((P|0)>0){T=(I|0)>0;x=l-C|0;L=_-C|0;F=P;V=0;while(1){H=r[i+1160+(V<<2)>>2]|0;K=r[i+2184+(V<<2)>>2]|0;Y=(r[o+(H<<2)>>2]|0)+(C<<2)|0;X=(r[o+(K<<2)>>2]|0)+(C<<2)|0;J=r[y+(H<<2)>>2]|0;Z=r[y+(K<<2)>>2]|0;Q=r[b+(H<<2)>>2]|0;ee=r[b+(K<<2)>>2]|0;te=r[w+(H<<2)>>2]|0;ne=r[w+(K<<2)>>2]|0;ie=r[k+(H<<2)>>2]|0;ae=r[k+(K<<2)>>2]|0;re=M+(H<<2)|0;H=M+(K<<2)|0;if((r[re>>2]|0)==0?(r[H>>2]|0)==0:0)oe=F;else{r[H>>2]=1;r[re>>2]=1;if(T){re=0;do{do if((re|0)<(x|0)){H=ie+(re<<2)|0;K=Z+(re<<2)|0;j=+c[K>>2];se=J+(re<<2)|0;B=+c[se>>2];le=ae+(re<<2)|0;if((r[H>>2]|0)==0?(r[le>>2]|0)==0:0){ce=B+j;if((re|0)<(L|0)){c[se>>2]=ce;c[Q+(re<<2)>>2]=+D(+ce)}else{de=+D(+j)+ +D(+B);c[Q+(re<<2)>>2]=de;c[se>>2]=ce<0?-de:de}c[ee+(re<<2)>>2]=0;c[K>>2]=0;r[le>>2]=1;r[X+(re<<2)>>2]=0;break}c[se>>2]=+D(+j)+ +D(+B);se=Q+(re<<2)|0;c[se>>2]=+c[ee+(re<<2)>>2]+ +c[se>>2];r[le>>2]=1;r[H>>2]=1;H=Y+(re<<2)|0;le=r[H>>2]|0;se=X+(re<<2)|0;K=r[se>>2]|0;if((((le|0)>-1?le:0-le|0)|0)>(((K|0)>-1?K:0-K|0)|0)){ue=(le|0)>0?le-K|0:K-le|0;pe=se}else{r[se>>2]=(K|0)>0?le-K|0:K-le|0;ue=K;pe=H}r[pe>>2]=ue;K=r[se>>2]|0;le=r[H>>2]|0;if((K|0)>=(((le|0)>-1?le:0-le|0)<<1|0)){r[se>>2]=0-K;r[H>>2]=0-(r[H>>2]|0)}}while(0);H=te+(re<<2)|0;K=ne+(re<<2)|0;B=+c[K>>2]+ +c[H>>2];c[K>>2]=B;c[H>>2]=B;re=re+1|0}while((re|0)<(I|0))}+Nt(r[h>>2]|0,_,J,Q,te,ie,C,I,Y);oe=r[S>>2]|0}V=V+1|0;if((V|0)>=(oe|0)){fe=oe;break}else F=oe}}else fe=P;C=C+g|0}while((f|0)>(C|0));me=fe}else me=E;if((me|0)>0){he=me;ge=0}else{m=p;return}while(1){me=s+(r[i+1160+(ge<<2)>>2]<<2)|0;E=i+2184+(ge<<2)|0;if((r[me>>2]|0)==0?(r[s+(r[E>>2]<<2)>>2]|0)==0:0)_e=he;else{r[me>>2]=1;r[s+(r[E>>2]<<2)>>2]=1;_e=r[S>>2]|0}ge=ge+1|0;if((ge|0)>=(_e|0))break;else he=_e}m=p;return}function Nt(e,t,n,i,a,o,s,l,u){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;l=l|0;u=u|0;var f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,O=0;f=m;h=m;m=m+((1*(l<<2)|0)+15&-16)|0;if(!(r[e+500>>2]|0))g=l;else g=(r[e+504>>2]|0)-s|0;_=(g|0)>(l|0)?l:g;e:do if((_|0)>0){if(!o){g=0;while(1){v=+c[n+(g<<2)>>2]<0;y=+Gn(+R(+(+c[i+(g<<2)>>2]/+c[a+(g<<2)>>2])));r[u+(g<<2)>>2]=~~(v?-y:y);g=g+1|0;if((g|0)>=(_|0)){b=_;break e}}}else w=0;do{if(!(r[o+(w<<2)>>2]|0)){g=+c[n+(w<<2)>>2]<0;y=+Gn(+R(+(+c[i+(w<<2)>>2]/+c[a+(w<<2)>>2])));r[u+(w<<2)>>2]=~~(g?-y:y)}w=w+1|0}while((w|0)<(_|0));b=_}else b=0;while(0);if((b|0)>=(l|0)){k=0;m=f;return+k}_=t-s|0;if(!o){y=0;s=0;t=b;while(1){w=i+(t<<2)|0;M=+c[a+(t<<2)>>2];S=+c[w>>2]/M;if(S<.25){r[h+(s<<2)>>2]=w;A=S+y;C=s+1|0}else{g=+c[n+(t<<2)>>2]<0;T=+Gn(+R(+S));v=~~(g?-T:T);r[u+(t<<2)>>2]=v;c[w>>2]=+(W(v,v)|0)*M;A=y;C=s}t=t+1|0;if((t|0)==(l|0)){E=A;$=C;break}else{y=A;s=C}}}else{A=0;C=0;s=b;while(1){do if(!(r[o+(s<<2)>>2]|0)){b=i+(s<<2)|0;y=+c[a+(s<<2)>>2];M=+c[b>>2]/y;if(!(M<.25)|(s|0)<(_|0)){t=+c[n+(s<<2)>>2]<0;T=+Gn(+R(+M));v=~~(t?-T:T);r[u+(s<<2)>>2]=v;c[b>>2]=+(W(v,v)|0)*y;I=A;x=C;break}else{r[h+(C<<2)>>2]=b;I=M+A;x=C+1|0;break}}else{I=A;x=C}while(0);s=s+1|0;if((s|0)==(l|0)){E=I;$=x;break}else{A=I;C=x}}}if(!$){k=E;m=f;return+k}Ln(h,$,4,12);if(($|0)<=0){k=E;m=f;return+k}x=i;I=+d[e+512>>3];A=E;e=0;while(1){i=r[h+(e<<2)>>2]|0;C=i-x>>2;if(!(A>=I)){P=0;D=A;O=0}else{P=+c[a+(C<<2)>>2];D=A+-1;O=~~(r[p>>2]=r[n+(C<<2)>>2]&-2147483648|1065353216,+c[p>>2])}r[u+(C<<2)>>2]=O;c[i>>2]=P;e=e+1|0;if((e|0)==($|0)){k=D;break}else A=D}m=f;return+k}function Lt(e,t){e=e|0;t=t|0;var n=0,i=0;n=+c[r[e>>2]>>2];i=+c[r[t>>2]>>2];return(n<i&1)-(n>i&1)|0}function Ft(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0;o=r[e>>2]|0;s=r[e+((t+-1|0)*56|0)+4>>2]|0;if((t|0)>0){l=+c[a+1108>>2];d=0;a=0;u=0;p=0;f=0;m=0;while(1){h=r[e+(a*56|0)+52>>2]|0;g=r[e+(a*56|0)+28>>2]|0;_=+(g+h|0)*l/+(g+1|0)+1;v=+(r[e+(a*56|0)+32>>2]|0)+p+_*+(r[e+(a*56|0)+8>>2]|0);y=+(r[e+(a*56|0)+36>>2]|0)+m+ +(r[e+(a*56|0)+12>>2]|0)*_;b=+(r[e+(a*56|0)+40>>2]|0)+u+ +(r[e+(a*56|0)+16>>2]|0)*_;w=+(r[e+(a*56|0)+48>>2]|0)+f+ +(r[e+(a*56|0)+24>>2]|0)*_;k=+(h|0)+d+_*+(g|0);a=a+1|0;if((a|0)==(t|0)){M=k;S=b;A=v;C=w;T=y;break}else{d=k;u=b;p=v;f=w;m=y}}}else{M=0;S=0;A=0;C=0;T=0}t=r[n>>2]|0;if((t|0)>-1){E=M+1;$=S+ +(W(o,o)|0);I=A+ +(o|0);x=+(W(t,o)|0)+C;P=+(t|0)+T}else{E=M;$=S;I=A;x=C;P=T}t=r[i>>2]|0;if((t|0)>-1){D=E+1;R=$+ +(W(s,s)|0);O=I+ +(s|0);N=+(W(t,s)|0)+x;L=+(t|0)+P}else{D=E;R=$;O=I;N=x;L=P}P=R*D-O*O;if(P>0){x=(L*R-O*N)/P;R=(N*D-O*L)/P;r[n>>2]=~~+Gn(R*+(o|0)+x);o=~~+Gn(R*+(s|0)+x);r[i>>2]=o;s=r[n>>2]|0;if((s|0)>1023){r[n>>2]=1023;F=r[i>>2]|0;U=1023}else{F=o;U=s}if((F|0)>1023){r[i>>2]=1023;B=r[n>>2]|0;H=1023}else{B=U;H=F}if((B|0)<0){r[n>>2]=0;j=r[i>>2]|0}else j=H;if((j|0)<0)V=0;else{q=0;return q|0}}else{r[n>>2]=0;V=1}r[i>>2]=0;q=V;return q|0}function Ut(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;i=m;a=n<<2;o=m;m=m+((1*a|0)+15&-16)|0;s=m;m=m+((1*a|0)+15&-16)|0;if((n|0)>0){l=0;d=0}else{m=i;return}do{if((d|0)<2){r[o+(d<<2)>>2]=l;r[s+(d<<2)>>2]=r[e+(l<<2)>>2];u=d}else{p=+c[e+(l<<2)>>2];a=d;while(1){f=a+-1|0;h=+c[s+(f<<2)>>2];if(p<h)break;if(!((a|0)>1?(l|0)<((r[o+(f<<2)>>2]|0)+t|0):0))break;g=a+-2|0;if(!(h<=+c[s+(g<<2)>>2]))break;if((l|0)<((r[o+(g<<2)>>2]|0)+t|0))a=f;else break}r[o+(a<<2)>>2]=l;c[s+(a<<2)>>2]=p;u=a}d=u+1|0;l=l+1|0}while((l|0)!=(n|0));if((u|0)<=-1){m=i;return}l=t+1|0;t=0;f=0;while(1){if((t|0)<(u|0)?(g=t+1|0,+c[s+(g<<2)>>2]>+c[s+(t<<2)>>2]):0)_=r[o+(g<<2)>>2]|0;else _=l+(r[o+(t<<2)>>2]|0)|0;g=(_|0)>(n|0)?n:_;if((f|0)<(g|0)){v=r[s+(t<<2)>>2]|0;y=f;do{r[e+(y<<2)>>2]=v;y=y+1|0}while((y|0)<(g|0));b=g}else b=f;t=t+1|0;if((t|0)==(d|0))break;else f=b}m=i;return}function Bt(e,t,n,i,a,o){e=e|0;t=t|0;n=n|0;i=i|0;a=+a;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,G=0,K=0,Y=0,X=0;s=m;l=e<<2;d=m;m=m+((1*l|0)+15&-16)|0;u=m;m=m+((1*l|0)+15&-16)|0;p=m;m=m+((1*l|0)+15&-16)|0;f=m;m=m+((1*l|0)+15&-16)|0;h=m;m=m+((1*l|0)+15&-16)|0;g=+c[n>>2]+a;_=g<1?1:g;g=_*_*.5;v=g*_;c[d>>2]=g;c[u>>2]=g;c[p>>2]=0;c[f>>2]=v;c[h>>2]=0;if((e|0)>1){l=1;_=g;y=g;g=0;b=0;w=v;v=1;while(1){k=+c[n+(l<<2)>>2]+a;M=k<1?1:k;k=M*M;_=k+_;S=k*v;y=S+y;g=S*v+g;w=k*M+w;b=S*M+b;c[d+(l<<2)>>2]=_;c[u+(l<<2)>>2]=y;c[p+(l<<2)>>2]=g;c[f+(l<<2)>>2]=w;c[h+(l<<2)>>2]=b;l=l+1|0;if((l|0)==(e|0))break;else v=v+1}}l=r[t>>2]|0;n=l>>16;if((n|0)>-1){A=l;C=0;T=0;E=1;$=0;I=0}else{x=l;l=0;P=n;v=0;while(1){n=x&65535;D=0-P|0;b=+c[d+(D<<2)>>2]+ +c[d+(n<<2)>>2];w=+c[u+(n<<2)>>2]-+c[u+(D<<2)>>2];g=+c[p+(D<<2)>>2]+ +c[p+(n<<2)>>2];y=+c[f+(D<<2)>>2]+ +c[f+(n<<2)>>2];_=+c[h+(n<<2)>>2]-+c[h+(D<<2)>>2];M=y*g-_*w;S=_*b-y*w;y=g*b-w*w;w=(S*v+M)/y;c[i+(l<<2)>>2]=(w<0?0:w)-a;D=l+1|0;w=v+1;n=r[t+(D<<2)>>2]|0;P=n>>16;if((P|0)>-1){A=n;C=M;T=S;E=y;$=D;I=w;break}else{x=n;l=D;v=w}}}l=A&65535;if((l|0)<(e|0)){x=l;l=$;P=A;v=I;while(1){A=P>>16;w=+c[d+(x<<2)>>2]-+c[d+(A<<2)>>2];y=+c[u+(x<<2)>>2]-+c[u+(A<<2)>>2];S=+c[p+(x<<2)>>2]-+c[p+(A<<2)>>2];M=+c[f+(x<<2)>>2]-+c[f+(A<<2)>>2];b=+c[h+(x<<2)>>2]-+c[h+(A<<2)>>2];g=M*S-b*y;_=b*w-M*y;M=S*w-y*y;y=(_*v+g)/M;c[i+(l<<2)>>2]=(y<0?0:y)-a;A=l+1|0;y=v+1;P=r[t+(A<<2)>>2]|0;x=P&65535;if((x|0)>=(e|0)){R=g;O=_;N=M;L=A;F=y;break}else{l=A;v=y}}}else{R=C;O=T;N=E;L=$;F=I}if((L|0)<(e|0)){$=L;I=F;while(1){F=(I*O+R)/N;c[i+($<<2)>>2]=(F<0?0:F)-a;$=$+1|0;if(($|0)==(e|0))break;else I=I+1}}if((o|0)<1){m=s;return}$=o>>>1;L=$-o|0;if((L|0)>-1){U=R;B=O;H=N;j=0;V=0}else{l=o-$|0;x=$;P=0;t=L;N=0;while(1){L=0-t|0;O=+c[d+(L<<2)>>2]+ +c[d+(x<<2)>>2];R=+c[u+(x<<2)>>2]-+c[u+(L<<2)>>2];I=+c[p+(L<<2)>>2]+ +c[p+(x<<2)>>2];F=+c[f+(L<<2)>>2]+ +c[f+(x<<2)>>2];E=+c[h+(x<<2)>>2]-+c[h+(L<<2)>>2];T=F*I-E*R;C=E*O-F*R;F=I*O-R*R;R=(C*N+T)/F-a;L=i+(P<<2)|0;if(R<+c[L>>2])c[L>>2]=R;P=P+1|0;R=N+1;L=P+$|0;if((P|0)==(l|0)){U=T;B=C;H=F;j=l;V=R;break}else{x=L;t=L-o|0;N=R}}}t=j+$|0;if((t|0)<(e|0)){x=e-$|0;l=t;t=j;N=V;while(1){P=l-o|0;R=+c[d+(l<<2)>>2]-+c[d+(P<<2)>>2];F=+c[u+(l<<2)>>2]-+c[u+(P<<2)>>2];C=+c[p+(l<<2)>>2]-+c[p+(P<<2)>>2];T=+c[f+(l<<2)>>2]-+c[f+(P<<2)>>2];O=+c[h+(l<<2)>>2]-+c[h+(P<<2)>>2];I=T*C-O*F;E=O*R-T*F;T=C*R-F*F;F=(E*N+I)/T-a;P=i+(t<<2)|0;if(F<+c[P>>2])c[P>>2]=F;P=t+1|0;F=N+1;if((P|0)==(x|0)){q=I;z=E;W=T;G=x;K=F;break}else{l=P+$|0;t=P;N=F}}}else{q=U;z=B;W=H;G=j;K=V}if((G|0)<(e|0)){Y=G;X=K}else{m=s;return}while(1){K=(X*z+q)/W-a;G=i+(Y<<2)|0;if(K<+c[G>>2])c[G>>2]=K;Y=Y+1|0;if((Y|0)==(e|0))break;else X=X+1}m=s;return}function Ht(e,t,n,i,a,r,o){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;r=r|0;o=o|0;var s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0;s=W(t,e)|0;l=s<<1;d=(t|0)>0;if(d){u=(e<<2)+-1|0;p=e<<1;f=0;m=s;h=s*3|0;g=0;_=l;while(1){v=n+(m<<2)|0;y=n+(h<<2)|0;b=+c[y>>2]+ +c[v>>2];w=n+(g<<2)|0;k=n+(_<<2)|0;M=+c[k>>2]+ +c[w>>2];S=g<<2;c[i+(S<<2)>>2]=M+b;c[i+(u+S<<2)>>2]=M-b;A=S+p|0;c[i+(A+-1<<2)>>2]=+c[w>>2]-+c[k>>2];c[i+(A<<2)>>2]=+c[y>>2]-+c[v>>2];f=f+1|0;if((f|0)==(t|0))break;else{m=m+e|0;h=h+e|0;g=g+e|0;_=_+e|0}}}if((e|0)<2)return;if((e|0)!=2){if(d){_=e<<1;g=0;h=0;while(1){m=h<<2;f=2;p=h;u=m;v=m+_|0;do{m=p;p=p+2|0;y=u;u=u+2|0;A=v;v=v+-2|0;k=p+s|0;w=f+-2|0;b=+c[a+(w<<2)>>2];M=+c[n+(k+-1<<2)>>2];S=f+-1|0;C=+c[a+(S<<2)>>2];T=+c[n+(k<<2)>>2];E=T*C+M*b;$=T*b-C*M;I=k+s|0;M=+c[r+(w<<2)>>2];C=+c[n+(I+-1<<2)>>2];b=+c[r+(S<<2)>>2];T=+c[n+(I<<2)>>2];x=T*b+C*M;P=T*M-b*C;k=I+s|0;C=+c[o+(w<<2)>>2];b=+c[n+(k+-1<<2)>>2];M=+c[o+(S<<2)>>2];T=+c[n+(k<<2)>>2];D=T*M+b*C;R=T*C-M*b;b=D+E;M=D-E;E=R+$;D=$-R;R=+c[n+(p<<2)>>2];$=R+P;C=R-P;P=+c[n+(m+1<<2)>>2];R=P+x;T=P-x;c[i+((y|1)<<2)>>2]=b+R;c[i+(u<<2)>>2]=E+$;c[i+(A+-3<<2)>>2]=T-D;c[i+(v<<2)>>2]=M-C;A=u+_|0;c[i+(A+-1<<2)>>2]=D+T;c[i+(A<<2)>>2]=M+C;A=v+_|0;c[i+(A+-1<<2)>>2]=R-b;c[i+(A<<2)>>2]=E-$;f=f+2|0}while((f|0)<(e|0));g=g+1|0;if((g|0)==(t|0))break;else h=h+e|0}}if(e&1|0)return}h=e+-1+s|0;g=e<<2;_=e<<1;if(!d)return;d=0;o=h;r=h+l|0;l=e;h=e;while(1){$=+c[n+(o<<2)>>2];E=+c[n+(r<<2)>>2];b=(E+$)*-.7071067690849304;R=($-E)*.7071067690849304;a=n+(h+-1<<2)|0;c[i+(l+-1<<2)>>2]=R+ +c[a>>2];f=l+_|0;c[i+(f+-1<<2)>>2]=+c[a>>2]-R;a=n+(o+s<<2)|0;c[i+(l<<2)>>2]=b-+c[a>>2];c[i+(f<<2)>>2]=+c[a>>2]+b;d=d+1|0;if((d|0)==(t|0))break;else{o=o+e|0;r=r+e|0;l=l+g|0;h=h+e|0}}return}function jt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0;o=W(t,e)|0;s=e<<1;l=(t|0)>0;if(l){d=s+-1|0;u=0;p=0;f=o;while(1){m=n+(p<<2)|0;h=n+(f<<2)|0;g=p<<1;c[i+(g<<2)>>2]=+c[h>>2]+ +c[m>>2];c[i+(d+g<<2)>>2]=+c[m>>2]-+c[h>>2];u=u+1|0;if((u|0)==(t|0))break;else{p=p+e|0;f=f+e|0}}}if((e|0)<2)return;if((e|0)!=2){if(l){f=0;p=0;u=o;while(1){d=p<<1;h=2;m=u;g=d+s|0;_=p;v=d;do{d=m;m=m+2|0;y=g;g=g+-2|0;b=_;_=_+2|0;w=v;v=v+2|0;k=+c[a+(h+-2<<2)>>2];M=+c[n+(d+1<<2)>>2];S=+c[a+(h+-1<<2)>>2];A=+c[n+(m<<2)>>2];C=A*S+M*k;T=A*k-S*M;d=n+(_<<2)|0;c[i+(v<<2)>>2]=T+ +c[d>>2];c[i+(g<<2)>>2]=T-+c[d>>2];d=n+(b+1<<2)|0;c[i+((w|1)<<2)>>2]=+c[d>>2]+C;c[i+(y+-3<<2)>>2]=+c[d>>2]-C;h=h+2|0}while((h|0)<(e|0));f=f+1|0;if((f|0)==(t|0))break;else{p=p+e|0;u=u+e|0}}}if(((e|0)%2|0|0)==1)return}u=e+-1|0;if(!l)return;l=0;p=e;f=o+u|0;o=u;while(1){c[i+(p<<2)>>2]=-+c[n+(f<<2)>>2];r[i+(p+-1<<2)>>2]=r[n+(o<<2)>>2];l=l+1|0;if((l|0)==(t|0))break;else{p=p+s|0;f=f+e|0;o=o+e|0}}return}function Vt(e,t,n,i,a,o,s,l,d,u){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;l=l|0;d=d|0;u=u|0;var p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,F=0,U=0,B=0,H=0,j=0,V=0;p=6.2831854820251465/+(t|0);f=+N(+p);m=+L(+p);h=t+1>>1;g=e+-1>>1;_=W(n,e)|0;v=W(t,e)|0;y=(e|0)==1;do if(!y){if((i|0)>0){b=0;do{r[d+(b<<2)>>2]=r[s+(b<<2)>>2];b=b+1|0}while((b|0)!=(i|0))}b=(t|0)>1;if(b&(n|0)>0){w=1;k=0;do{k=k+_|0;M=0;S=k;while(1){r[l+(S<<2)>>2]=r[o+(S<<2)>>2];M=M+1|0;if((M|0)==(n|0))break;else S=S+e|0}w=w+1|0}while((w|0)!=(t|0))}w=0-e|0;if((g|0)>(n|0)){if(b){k=(n|0)>0;S=(e|0)>2;M=w;A=1;C=0;do{C=C+_|0;M=M+e|0;if(k?(T=M+-1|0,S):0){E=0;$=C-e|0;do{$=$+e|0;I=2;x=T;P=$;do{D=x;x=x+2|0;R=u+(D+1<<2)|0;D=P+1|0;P=P+2|0;O=o+(D<<2)|0;F=u+(x<<2)|0;U=o+(P<<2)|0;c[l+(D<<2)>>2]=+c[U>>2]*+c[F>>2]+ +c[O>>2]*+c[R>>2];c[l+(P<<2)>>2]=+c[U>>2]*+c[R>>2]-+c[O>>2]*+c[F>>2];I=I+2|0}while((I|0)<(e|0));E=E+1|0}while((E|0)!=(n|0))}A=A+1|0}while((A|0)!=(t|0))}}else if(b){A=(e|0)<3|(n|0)<1;C=w;S=1;M=0;do{C=C+e|0;M=M+_|0;if(!A){k=2;E=C+-1|0;$=M;do{T=E;E=E+2|0;$=$+2|0;I=u+(T+1<<2)|0;T=u+(E<<2)|0;P=0;x=$;while(1){F=x+-1|0;O=o+(F<<2)|0;R=o+(x<<2)|0;c[l+(F<<2)>>2]=+c[R>>2]*+c[T>>2]+ +c[O>>2]*+c[I>>2];c[l+(x<<2)>>2]=+c[R>>2]*+c[I>>2]-+c[O>>2]*+c[T>>2];P=P+1|0;if((P|0)==(n|0))break;else x=x+e|0}k=k+2|0}while((k|0)<(e|0))}S=S+1|0}while((S|0)!=(t|0))}S=W(_,t)|0;M=(h|0)>1;if((g|0)<(n|0)){if(!M)break;C=(e|0)<3|(n|0)<1;A=1;w=0;b=S;do{w=w+_|0;b=b-_|0;if(!C){k=2;$=w;E=b;do{$=$+2|0;E=E+2|0;x=0;P=$-e|0;T=E-e|0;do{P=P+e|0;T=T+e|0;I=P+-1|0;O=l+(I<<2)|0;R=T+-1|0;F=l+(R<<2)|0;c[o+(I<<2)>>2]=+c[F>>2]+ +c[O>>2];I=l+(P<<2)|0;U=l+(T<<2)|0;c[o+(R<<2)>>2]=+c[I>>2]-+c[U>>2];c[o+(P<<2)>>2]=+c[U>>2]+ +c[I>>2];c[o+(T<<2)>>2]=+c[F>>2]-+c[O>>2];x=x+1|0}while((x|0)!=(n|0));k=k+2|0}while((k|0)<(e|0))}A=A+1|0}while((A|0)!=(h|0))}else{if(!M)break;A=(n|0)<1|(e|0)<3;b=1;w=0;C=S;do{w=w+_|0;C=C-_|0;if(!A){k=0;E=w;$=C;while(1){x=2;T=E;P=$;do{O=T;T=T+2|0;F=O+1|0;O=l+(F<<2)|0;I=P+1|0;P=P+2|0;U=l+(I<<2)|0;c[o+(F<<2)>>2]=+c[U>>2]+ +c[O>>2];F=l+(T<<2)|0;R=l+(P<<2)|0;c[o+(I<<2)>>2]=+c[F>>2]-+c[R>>2];c[o+(T<<2)>>2]=+c[R>>2]+ +c[F>>2];c[o+(P<<2)>>2]=+c[U>>2]-+c[O>>2];x=x+2|0}while((x|0)<(e|0));k=k+1|0;if((k|0)==(n|0))break;else{E=E+e|0;$=$+e|0}}}b=b+1|0}while((b|0)!=(h|0))}}while(0);u=(i|0)>0;if(u){b=0;do{r[s+(b<<2)>>2]=r[d+(b<<2)>>2];b=b+1|0}while((b|0)!=(i|0))}b=W(i,t)|0;C=(h|0)>1;do if(C){if((n|0)>0){w=1;A=0;S=b;do{A=A+_|0;S=S-_|0;M=0;$=A-e|0;E=S-e|0;do{$=$+e|0;E=E+e|0;k=l+($<<2)|0;x=l+(E<<2)|0;c[o+($<<2)>>2]=+c[x>>2]+ +c[k>>2];c[o+(E<<2)>>2]=+c[x>>2]-+c[k>>2];M=M+1|0}while((M|0)!=(n|0));w=w+1|0}while((w|0)!=(h|0));if(!C)break}w=W(t+-1|0,i)|0;S=(h|0)==2|u^1;p=0;B=1;A=1;M=0;E=b;do{M=M+i|0;E=E-i|0;H=B;B=B*f-p*m;p=H*m+p*f;if(u){$=0;k=M;x=E;P=w;T=i;while(1){c[d+(k<<2)>>2]=+c[s+(T<<2)>>2]*B+ +c[s+($<<2)>>2];c[d+(x<<2)>>2]=+c[s+(P<<2)>>2]*p;$=$+1|0;if(($|0)==(i|0))break;else{k=k+1|0;x=x+1|0;P=P+1|0;T=T+1|0}}}if(!S){H=p;j=B;T=2;P=i;x=w;do{P=P+i|0;x=x-i|0;V=j;j=j*B-H*p;H=V*p+H*B;k=0;$=M;O=E;U=P;F=x;while(1){R=d+($<<2)|0;c[R>>2]=+c[R>>2]+ +c[s+(U<<2)>>2]*j;R=d+(O<<2)|0;c[R>>2]=+c[R>>2]+ +c[s+(F<<2)>>2]*H;k=k+1|0;if((k|0)==(i|0))break;else{$=$+1|0;O=O+1|0;U=U+1|0;F=F+1|0}}T=T+1|0}while((T|0)<(h|0))}A=A+1|0}while((A|0)!=(h|0));if(C&u){A=1;E=0;do{E=E+i|0;M=0;w=E;while(1){S=d+(M<<2)|0;c[S>>2]=+c[S>>2]+ +c[s+(w<<2)>>2];M=M+1|0;if((M|0)==(i|0))break;else w=w+1|0}A=A+1|0}while((A|0)!=(h|0))}}while(0);if((e|0)<(n|0)){if((e|0)>0&(n|0)>0){i=0;do{s=0;d=i;u=i;while(1){r[a+(u<<2)>>2]=r[l+(d<<2)>>2];s=s+1|0;if((s|0)==(n|0))break;else{d=d+e|0;u=u+v|0}}i=i+1|0}while((i|0)!=(e|0))}}else if((n|0)>0&(e|0)>0){i=0;u=0;d=0;while(1){s=0;b=u;o=d;while(1){r[a+(o<<2)>>2]=r[l+(b<<2)>>2];s=s+1|0;if((s|0)==(e|0))break;else{b=b+1|0;o=o+1|0}}i=i+1|0;if((i|0)==(n|0))break;else{u=u+e|0;d=d+v|0}}}d=e<<1;u=W(_,t)|0;if(C&(n|0)>0){t=1;i=0;o=0;b=u;do{i=i+d|0;o=o+_|0;b=b-_|0;s=0;A=i;E=o;w=b;while(1){r[a+(A+-1<<2)>>2]=r[l+(E<<2)>>2];r[a+(A<<2)>>2]=r[l+(w<<2)>>2];s=s+1|0;if((s|0)==(n|0))break;else{A=A+v|0;E=E+e|0;w=w+e|0}}t=t+1|0}while((t|0)!=(h|0))}if(y)return;y=0-e|0;if((g|0)>=(n|0)){if(!C)return;g=(n|0)<1|(e|0)<3;t=1;b=y;o=0;i=0;w=u;do{b=b+d|0;o=o+d|0;i=i+_|0;w=w-_|0;if(!g){E=0;A=b;s=o;M=i;S=w;while(1){T=2;do{x=T+M|0;P=l+(x+-1<<2)|0;F=T+S|0;U=l+(F+-1<<2)|0;O=T+s|0;c[a+(O+-1<<2)>>2]=+c[U>>2]+ +c[P>>2];$=e-T+A|0;c[a+($+-1<<2)>>2]=+c[P>>2]-+c[U>>2];U=l+(x<<2)|0;x=l+(F<<2)|0;c[a+(O<<2)>>2]=+c[x>>2]+ +c[U>>2];c[a+($<<2)>>2]=+c[x>>2]-+c[U>>2];T=T+2|0}while((T|0)<(e|0));E=E+1|0;if((E|0)==(n|0))break;else{A=A+v|0;s=s+v|0;M=M+e|0;S=S+e|0}}}t=t+1|0}while((t|0)!=(h|0));return}if(!C)return;C=(e|0)>2;t=(n|0)>0;w=1;i=y;y=0;o=0;b=u;do{i=i+d|0;y=y+d|0;o=o+_|0;b=b-_|0;if(C?(u=i+e|0,t):0){g=2;do{S=0;M=u-g|0;s=g+y|0;A=g+o|0;E=g+b|0;while(1){T=l+(A+-1<<2)|0;U=l+(E+-1<<2)|0;c[a+(s+-1<<2)>>2]=+c[U>>2]+ +c[T>>2];c[a+(M+-1<<2)>>2]=+c[T>>2]-+c[U>>2];U=l+(A<<2)|0;T=l+(E<<2)|0;c[a+(s<<2)>>2]=+c[T>>2]+ +c[U>>2];c[a+(M<<2)>>2]=+c[T>>2]-+c[U>>2];S=S+1|0;if((S|0)==(n|0))break;else{M=M+v|0;s=s+v|0;A=A+e|0;E=E+e|0}}g=g+2|0}while((g|0)<(e|0))}w=w+1|0}while((w|0)!=(h|0));return}function qt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0;n=(t|0)/4|0;i=Yn(n<<2)|0;a=Yn(n+t<<2)|0;o=t>>1;s=+(t|0);l=~~+Gn(+q(+s)*1.4426950408889634);r[e+4>>2]=l;r[e>>2]=t;r[e+8>>2]=a;r[e+12>>2]=i;if((t|0)<=3){d=4/s;u=e+16|0;c[u>>2]=d;return}p=3.141592653589793/+(t|0);f=3.141592653589793/+(t<<1|0);m=0;do{h=+(m<<2|0)*p;g=m<<1;c[a+(g<<2)>>2]=+N(+h);_=g|1;c[a+(_<<2)>>2]=-+L(+h);h=+(_|0)*f;_=g+o|0;c[a+(_<<2)>>2]=+N(+h);c[a+(_+1<<2)>>2]=+L(+h);m=m+1|0}while((m|0)<(n|0));n=(t|0)/8|0;m=(t|0)>7;if(!m){d=4/s;u=e+16|0;c[u>>2]=d;return}f=3.141592653589793/+(t|0);o=0;do{p=+(o<<2|2|0)*f;_=(o<<1)+t|0;c[a+(_<<2)>>2]=+N(+p)*.5;c[a+(_+1<<2)>>2]=+L(+p)*-.5;o=o+1|0}while((o|0)<(n|0));o=(1<<l+-1)+-1|0;a=1<<l+-2;if(m)v=0;else{d=4/s;u=e+16|0;c[u>>2]=d;return}do{m=0;l=0;t=a;do{m=((t&v|0)==0?0:1<<l)|m;l=l+1|0;t=a>>l}while((t|0)!=0);t=v<<1;r[i+(t<<2)>>2]=(o&~m)+-1;r[i+((t|1)<<2)>>2]=m;v=v+1|0}while((v|0)<(n|0));d=4/s;u=e+16|0;c[u>>2]=d;return}function zt(e){e=e|0;var t=0;if(!e)return;t=r[e+8>>2]|0;if(t|0)Xn(t);t=r[e+12>>2]|0;if(t|0)Xn(t);r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;r[e+16>>2]=0;return}function Wt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0;r[e>>2]=t;n=Jn(t*3|0,4)|0;r[e+4>>2]=n;i=Jn(32,4)|0;r[e+8>>2]=i;if((t|0)==1)return;e=n+(t<<2)|0;n=i+8|0;a=-1;o=0;s=t;l=0;e:while(1){d=a+1|0;if((d|0)<4)u=r[34176+(d<<2)>>2]|0;else u=l+2|0;if((u|0)==2){p=o;f=s}else{m=o;h=s;while(1){g=h;h=(h|0)/(u|0)|0;if((g|0)!=(W(h,u)|0)){a=d;o=m;s=g;l=u;continue e}_=m+1|0;r[i+(m+2<<2)>>2]=u;if((h|0)==1){v=9;break e}else m=_}}while(1){h=p+1|0;g=f;f=(f|0)/2|0;if((g|0)!=(f<<1|0)){a=d;o=p;s=g;l=u;continue e}r[i+(p+2<<2)>>2]=2;y=(p|0)==0;if(!y){if((p|0)>=1){b=1;do{w=h-b|0;r[i+(w+2<<2)>>2]=r[i+(w+1<<2)>>2];b=b+1|0}while((b|0)!=(h|0))}r[n>>2]=2}if((g&-2|0)==2){k=y;M=h;S=p;break e}else p=h}}if((v|0)==9){k=(m|0)==0;M=_;S=m}r[i>>2]=t;r[i+4>>2]=M;A=6.2831854820251465/+(t|0);if((S|0)>0&(k^1)){C=0;T=0;E=1}else return;while(1){k=r[i+(T+2<<2)>>2]|0;M=E;E=W(k,E)|0;m=(t|0)/(E|0)|0;_=k+-1|0;do if((k|0)>1){v=W(m,_)|0;if((m|0)>2){$=C;I=0;x=0}else{P=v+C|0;break}while(1){x=x+M|0;D=+(x|0)*A;R=0;p=$;n=2;while(1){R=R+1;O=D*R;c[e+(p<<2)>>2]=+N(+O);c[e+(p+1<<2)>>2]=+L(+O);n=n+2|0;if((n|0)>=(m|0))break;else p=p+2|0}I=I+1|0;if((I|0)==(_|0))break;else $=$+m|0}P=v+C|0}else P=C;while(0);T=T+1|0;if((T|0)==(S|0))break;else C=P}return}function Gt(e){e=e|0;var t=0;if(!e)return;t=r[e+4>>2]|0;if(t|0)Xn(t);t=r[e+8>>2]|0;if(t|0)Xn(t);r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;return}function Kt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=t;i=n+112|0;do{r[n>>2]=0;n=n+4|0}while((n|0)<(i|0));r[t+64>>2]=e;r[t+76>>2]=0;r[t+68>>2]=0;if(!(r[e>>2]|0))return 0;e=Jn(1,72)|0;r[t+104>>2]=e;c[e+4>>2]=-9999;n=t+4|0;t=e+12|0;e=0;do{if((e|0)==7)a=n;else a=Jn(1,20)|0;r[t+(e<<2)>>2]=a;Ce(a);e=e+1|0}while((e|0)!=15);return 0}function Yt(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0;t=e+84|0;n=r[t>>2]|0;if(n|0){i=n;do{n=i;i=r[i+4>>2]|0;Xn(r[n>>2]|0);Xn(n)}while((i|0)!=0)}i=e+80|0;n=r[i>>2]|0;if(!n){a=e+72|0;r[a>>2]=0;r[t>>2]=0;return}o=e+68|0;s=e+76|0;r[o>>2]=Zn(r[o>>2]|0,(r[s>>2]|0)+n|0)|0;r[s>>2]=(r[s>>2]|0)+(r[i>>2]|0);r[i>>2]=0;a=e+72|0;r[a>>2]=0;r[t>>2]=0;return}function Xt(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;t=r[e+104>>2]|0;n=e+84|0;i=r[n>>2]|0;if(i|0){a=i;do{i=a;a=r[a+4>>2]|0;Xn(r[i>>2]|0);Xn(i)}while((a|0)!=0)}a=e+80|0;i=r[a>>2]|0;o=e+68|0;s=r[o>>2]|0;if(!i)l=s;else{c=e+76|0;d=Zn(s,(r[c>>2]|0)+i|0)|0;r[o>>2]=d;r[c>>2]=(r[c>>2]|0)+(r[a>>2]|0);r[a>>2]=0;l=d}r[e+72>>2]=0;r[n>>2]=0;if(l|0)Xn(l);if(!t){u=e;p=u+112|0;do{r[u>>2]=0;u=u+4|0}while((u|0)<(p|0));return 0}l=t+12|0;n=0;while(1){d=l+(n<<2)|0;Ee(r[d>>2]|0);if((n|0)==7){n=8;continue}Xn(r[d>>2]|0);n=n+1|0;if((n|0)==15)break}Xn(t);u=e;p=u+112|0;do{r[u>>2]=0;u=u+4|0}while((u|0)<(p|0));return 0}function Jt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0;i=r[t+28>>2]|0;if(!i){a=1;return a|0}o=r[i+3656>>2]|0;s=e;l=s+112|0;do{r[s>>2]=0;s=s+4|0}while((s|0)<(l|0));s=Jn(1,136)|0;r[e+104>>2]=s;r[e+4>>2]=t;l=r[i+8>>2]|0;c=l+-1|0;if((l|0)==0|(c|0)==0)d=0;else{l=0;u=c;while(1){c=l+1|0;u=u>>>1;if(!u){d=c;break}else l=c}}r[s+44>>2]=d;d=Jn(1,4)|0;l=s+12|0;r[l>>2]=d;u=Jn(1,4)|0;c=s+16|0;r[c>>2]=u;r[d>>2]=Jn(1,20)|0;r[u>>2]=Jn(1,20)|0;qt(r[r[l>>2]>>2]|0,r[i>>2]>>o);l=i+4|0;qt(r[r[c>>2]>>2]|0,r[l>>2]>>o);o=r[i>>2]|0;c=o+-1|0;if((o|0)==0|(c|0)==0)p=0;else{u=0;d=c;while(1){c=u+1|0;d=d>>>1;if(!d){p=c;break}else u=c}}r[s+4>>2]=p+-6;p=r[l>>2]|0;u=p+-1|0;if((p|0)==0|(u|0)==0)f=0;else{p=0;d=u;while(1){u=p+1|0;d=d>>>1;if(!d){f=u;break}else p=u}}r[s+8>>2]=f+-6;e:do if(!n){f=i+2848|0;if((r[f>>2]|0)==0?(p=i+24|0,r[f>>2]=Jn(r[p>>2]|0,56)|0,d=r[p>>2]|0,(d|0)>0):0){u=d;d=0;while(1){c=i+1824+(d<<2)|0;m=r[c>>2]|0;if(!m){h=u;break}if(en((r[f>>2]|0)+(d*56|0)|0,m)|0){g=23;break}tn(r[c>>2]|0);r[c>>2]=0;d=d+1|0;u=r[p>>2]|0;if((d|0)>=(u|0))break e}if((g|0)==23)h=r[p>>2]|0;if((h|0)>0){u=h;d=0;while(1){f=i+1824+(d<<2)|0;c=r[f>>2]|0;if(!c)_=u;else{tn(c);r[f>>2]=0;_=r[p>>2]|0}d=d+1|0;if((d|0)>=(_|0))break;else u=_}}nn(e);a=-1;return a|0}}else{Wt(s+20|0,o);Wt(s+32|0,r[l>>2]|0);u=i+2848|0;if(((r[u>>2]|0)==0?(d=i+24|0,p=Jn(r[d>>2]|0,56)|0,r[u>>2]=p,(r[d>>2]|0)>0):0)?(Zt(p,r[i+1824>>2]|0)|0,(r[d>>2]|0)>1):0){p=1;do{Zt((r[u>>2]|0)+(p*56|0)|0,r[i+1824+(p<<2)>>2]|0)|0;p=p+1|0}while((p|0)<(r[d>>2]|0))}d=i+28|0;p=Jn(r[d>>2]|0,52)|0;u=s+56|0;r[u>>2]=p;t:do if((r[d>>2]|0)>0){f=i+2868|0;c=t+8|0;m=p;v=0;while(1){y=r[i+2852+(v<<2)>>2]|0;Qt(m+(v*52|0)|0,y,f,(r[i+(r[y>>2]<<2)>>2]|0)/2|0,r[c>>2]|0);y=v+1|0;if((y|0)>=(r[d>>2]|0))break t;m=r[u>>2]|0;v=y}}while(0);r[e>>2]=1}while(0);o=r[l>>2]|0;r[e+16>>2]=o;_=r[t+4>>2]|0;t=_<<2;h=Yn(t)|0;g=e+8|0;r[g>>2]=h;r[e+12>>2]=Yn(t)|0;if((_|0)>0?(r[h>>2]=Jn(o,4)|0,(_|0)!=1):0){h=1;do{t=r[g>>2]|0;r[t+(h<<2)>>2]=Jn(o,4)|0;h=h+1|0}while((h|0)<(_|0))}r[e+36>>2]=0;r[e+40>>2]=0;_=(r[l>>2]|0)/2|0;r[e+48>>2]=_;r[e+20>>2]=_;_=i+16|0;l=s+48|0;r[l>>2]=Jn(r[_>>2]|0,4)|0;h=i+20|0;o=s+52|0;r[o>>2]=Jn(r[h>>2]|0,4)|0;if((r[_>>2]|0)>0){s=0;do{g=xi[r[(r[456+(r[i+800+(s<<2)>>2]<<2)>>2]|0)+8>>2]&15](e,r[i+1056+(s<<2)>>2]|0)|0;r[(r[l>>2]|0)+(s<<2)>>2]=g;s=s+1|0}while((s|0)<(r[_>>2]|0))}if((r[h>>2]|0)>0)b=0;else{a=0;return a|0}do{_=xi[r[(r[464+(r[i+1312+(b<<2)>>2]<<2)>>2]|0)+8>>2]&15](e,r[i+1568+(b<<2)>>2]|0)|0;r[(r[o>>2]|0)+(b<<2)>>2]=_;b=b+1|0}while((b|0)<(r[h>>2]|0));a=0;return a|0}function Zt(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0;n=e+16|0;i=n+40|0;do{r[n>>2]=0;n=n+4|0}while((n|0)<(i|0));r[e+12>>2]=t;n=t+4|0;i=r[n>>2]|0;r[e+4>>2]=i;r[e+8>>2]=i;r[e>>2]=r[t>>2];r[e+20>>2]=ln(r[t+8>>2]|0,i,0)|0;i=r[n>>2]|0;n=r[t>>2]|0;if((n|0)<=0)while(1){}a=~~+P(+ +O(+ +(i|0),+(1/+(n|0))));while(1){o=a+1|0;s=1;l=1;c=0;do{s=W(s,a)|0;l=W(l,o)|0;c=c+1|0}while((c|0)!=(n|0));if((l|0)>(i|0)&(s|0)<=(i|0))break;else a=((s|0)>(i|0)?-1:1)+a|0}r[e+44>>2]=a;a=r[t+16>>2]|0;d=+(a&2097151|0);r[e+48>>2]=~~+Kn(+Wn((a|0)<0?-d:d,(a>>>21&1023)+-788|0));a=r[t+20>>2]|0;d=+(a&2097151|0);r[e+52>>2]=~~+Kn(+Wn((a|0)<0?-d:d,(a>>>21&1023)+-788|0));return 0}function Qt(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0;o=e+8|0;r[o>>2]=0;r[o+4>>2]=0;o=r[n>>2]|0;r[e+36>>2]=o;n=~~(+Gn(+q(+(+(o|0)*8))*1.4426950408889634)+-1);s=e+32|0;r[s>>2]=n;l=+(a|0);d=+(i|0);u=+(1<<n+1|0);n=~~(u*(+q(+(l*.25*.5/d))*1.4426950216293335+-5.965784072875977)-+(o|0));r[e+28>>2]=n;r[e+40>>2]=1-n+~~(u*(+q(+((+(i|0)+.25)*l*.5/d))*1.4426950216293335+-5.965784072875977)+.5);n=i<<2;o=Yn(n)|0;r[e+16>>2]=o;p=Yn(n)|0;r[e+20>>2]=p;f=Yn(n)|0;r[e+24>>2]=f;m=e+4|0;r[m>>2]=t;r[e>>2]=i;r[e+44>>2]=a;h=e+48|0;c[h>>2]=1;if((a|0)>=26e3)if((a|0)>=38e3){if((a|0)>46e3){g=1.274999976158142;_=4}}else{g=.9399999976158142;_=4}else{g=0;_=4}if((_|0)==4)c[h>>2]=g;g=d*2;l=+(a|0);h=0;v=0;e:while(1){y=(v|0)<(i|0);b=h;while(1){w=b;while(1){if((w|0)>=87)break e;k=w+1|0;M=~~+Gn(g*+V(+(+(k|0)*.08664337545633316+2.7488713472395148))/l);if((M|0)>(v|0))break;else w=k}if(y)break;else b=k}u=+c[34192+(w<<2)>>2];S=(+c[34192+(k<<2)>>2]-u)/+(M-v|0);A=u;b=v;while(1){c[o+(b<<2)>>2]=A+100;y=b+1|0;if((y|0)<(M|0)&(y|0)<(i|0)){A=A+S;b=y}else{h=k;v=y;continue e}}}if((v|0)<(i|0)){k=r[o+((v<<2)+-4)>>2]|0;h=v;do{r[o+(h<<2)>>2]=k;h=h+1|0}while((h|0)!=(i|0))}h=(i|0)>0;if(h){k=(a|0)/(i<<1|0)|0;a=r[t+120>>2]|0;o=t+124|0;v=t+116|0;M=t+112|0;w=1;b=0;y=-99;while(1){C=W(k,b)|0;S=+(C|0);A=+H(+(+(W(C,C)|0)*1.8499999754340024e-8))*2.240000009536743+ +H(+(S*.0007399999885819852))*13.100000381469727+S*9999999747378752e-20;e:do if((a+y|0)<(b|0)){S=A-+c[M>>2];C=y;while(1){T=W(C,k)|0;u=+(T|0);if(!(+H(+(u*.0007399999885819852))*13.100000381469727+u*9999999747378752e-20+ +H(+(+(W(T,T)|0)*1.8499999754340024e-8))*2.240000009536743<S)){E=C;break e}T=C+1|0;if((a+T|0)<(b|0))C=T;else{E=T;break}}}else E=y;while(0);e:do if((w|0)>(i|0))$=w;else{C=(r[o>>2]|0)+b|0;T=w;while(1){if((T|0)>=(C|0)?(I=W(T,k)|0,S=+(I|0),u=+H(+(S*.0007399999885819852))*13.100000381469727+S*9999999747378752e-20+ +H(+(+(W(I,I)|0)*1.8499999754340024e-8))*2.240000009536743,!(u<+c[v>>2]+A)):0){$=T;break e}I=T+1|0;if((T|0)<(i|0))T=I;else{$=I;break}}}while(0);r[f+(b<<2)>>2]=(E<<16)+-65537+$;b=b+1|0;if((b|0)==(i|0))break;else{w=$;y=E}}if(h){A=l*.5;u=+(1<<(r[s>>2]|0)+1|0);s=0;do{r[p+(s<<2)>>2]=~~(u*(+q(+(A*(+(s|0)+.25)/d))*1.4426950216293335+-5.965784072875977)+.5);s=s+1|0}while((s|0)!=(i|0));x=A}else _=19}else _=19;if((_|0)==19)x=l*.5;r[e+8>>2]=un(t+36|0,x/d,i,+c[t+24>>2],+c[t+28>>2])|0;t=Yn(12)|0;_=e+12|0;r[_>>2]=t;r[t>>2]=Yn(n)|0;r[t+4>>2]=Yn(n)|0;t=Yn(n)|0;r[(r[_>>2]|0)+8>>2]=t;if(!h)return;h=r[m>>2]|0;m=r[_>>2]|0;_=r[m>>2]|0;t=r[m+4>>2]|0;n=r[m+8>>2]|0;m=0;do{d=+q(+((+(m|0)+.5)*l/g))*2.885390043258667+-11.931568145751953;x=d<0?0:d;d=x>=16?16:x;e=~~d;x=d-+(e|0);d=1-x;s=e+1|0;c[_+(m<<2)>>2]=+c[h+132+(s<<2)>>2]*x+ +c[h+132+(e<<2)>>2]*d;c[t+(m<<2)>>2]=+c[h+200+(s<<2)>>2]*x+ +c[h+200+(e<<2)>>2]*d;c[n+(m<<2)>>2]=+c[h+268+(s<<2)>>2]*x+ +c[h+268+(e<<2)>>2]*d;m=m+1|0}while((m|0)!=(i|0));return}function en(e,t){e=e|0;t=t|0;var n=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0;n=m;a=e;o=a+56|0;do{r[a>>2]=0;a=a+4|0}while((a|0)<(o|0));s=t+4|0;l=r[s>>2]|0;if((l|0)>0){c=r[t+8>>2]|0;d=0;u=0;while(1){p=((r[c+(d<<2)>>2]|0)>0&1)+u|0;d=d+1|0;if((d|0)>=(l|0)){f=p;break}else u=p}}else f=0;r[e+4>>2]=l;u=e+8|0;r[u>>2]=f;r[e>>2]=r[t>>2];if((f|0)<=0){h=0;m=n;return h|0}d=t+8|0;c=ln(r[d>>2]|0,l,f)|0;l=f<<2;p=m;m=m+((1*l|0)+15&-16)|0;if(!c){g=r[e+16>>2]|0;if(g|0)Xn(g);g=r[e+20>>2]|0;if(g|0)Xn(g);g=r[e+24>>2]|0;if(g|0)Xn(g);g=r[e+28>>2]|0;if(g|0)Xn(g);g=r[e+32>>2]|0;if(g|0)Xn(g);a=e;o=a+56|0;do{r[a>>2]=0;a=a+4|0}while((a|0)<(o|0));h=-1;m=n;return h|0}else _=0;do{a=c+(_<<2)|0;o=oi(r[a>>2]|0)|0;g=o>>>4&252645135|o<<4&-252645136;o=g>>>2&858993459|g<<2&-858993460;r[a>>2]=o>>>1&1431655765|o<<1&-1431655766;r[p+(_<<2)>>2]=a;_=_+1|0}while((_|0)!=(f|0));Ln(p,f,4,13);_=m;m=m+((1*l|0)+15&-16)|0;a=Yn(l)|0;o=e+20|0;r[o>>2]=a;g=c;v=0;do{r[_+((r[p+(v<<2)>>2]|0)-g>>2<<2)>>2]=v;v=v+1|0}while((v|0)!=(f|0));y=0;do{r[a+(r[_+(y<<2)>>2]<<2)>>2]=r[c+(y<<2)>>2];y=y+1|0}while((y|0)!=(f|0));Xn(c);r[e+16>>2]=dn(t,f,_)|0;f=Yn(l)|0;r[e+24>>2]=f;l=r[s>>2]|0;t=(l|0)>0;if(t){c=r[d>>2]|0;y=0;a=0;while(1){if((r[c+(y<<2)>>2]|0)>0){r[f+(r[_+(a<<2)>>2]<<2)>>2]=y;b=a+1|0}else b=a;y=y+1|0;if((y|0)>=(l|0))break;else a=b}a=e+28|0;r[a>>2]=Yn(b)|0;if(t){t=l;l=0;b=0;while(1){y=r[(r[d>>2]|0)+(l<<2)>>2]|0;if((y|0)>0){i[(r[a>>2]|0)+(r[_+(b<<2)>>2]|0)>>0]=y;w=r[s>>2]|0;k=b+1|0}else{w=t;k=b}l=l+1|0;if((l|0)>=(w|0)){M=a;S=k;break}else{t=w;b=k}}}else{M=a;S=0}}else{a=e+28|0;r[a>>2]=Yn(0)|0;M=a;S=0}a=r[u>>2]|0;if(!a)A=-4;else{u=0;k=a;while(1){k=k>>>1;if(!k)break;else u=u+1|0}A=u+-3|0}u=e+36|0;k=(A|0)>5?A:5;A=(k|0)<8?k:8;r[u>>2]=A;k=1<<A;a=Jn(k,4)|0;r[e+32>>2]=a;b=e+40|0;r[b>>2]=0;e:do if((S|0)>0){e=r[M>>2]|0;w=0;t=A;l=0;while(1){s=e+l|0;_=i[s>>0]|0;d=_<<24>>24;if((w|0)<(d|0)){r[b>>2]=d;C=i[s>>0]|0}else C=_;_=C<<24>>24;if((t|0)>=(_|0)?(d=oi(r[(r[o>>2]|0)+(l<<2)>>2]|0)|0,y=d>>>4&252645135|d<<4&-252645136,d=y>>>2&858993459|y<<2&-858993460,y=d>>>1&1431655765|d<<1&-1431655766,(t-_|0)!=31):0){d=l+1|0;f=_;_=0;do{r[a+((y|_<<f)<<2)>>2]=d;_=_+1|0;c=r[u>>2]|0;f=i[s>>0]|0}while((_|0)<(1<<c-f|0));T=c}else T=t;f=l+1|0;if((f|0)==(S|0)){E=T;break e}w=r[b>>2]|0;t=T;l=f}}else E=A;while(0);A=-2<<31-E;T=E;E=0;b=0;C=0;while(1){M=b<<32-T;l=oi(M|0)|0;t=l>>>4&252645135|l<<4&-252645136;l=t>>>2&858993459|t<<2&-858993460;t=a+((l>>>1&1431655765|l<<1&-1431655766)<<2)|0;if(!(r[t>>2]|0)){l=C;while(1){w=l+1|0;if((w|0)>=(S|0))break;if((r[(r[o>>2]|0)+(w<<2)>>2]|0)>>>0>M>>>0)break;else l=w}e:do if((S|0)>(E|0)){w=r[o>>2]|0;e=E;while(1){if(M>>>0<(r[w+(e<<2)>>2]&A)>>>0){$=e;break e}f=e+1|0;if((S|0)>(f|0))e=f;else{$=f;break}}}else $=E;while(0);M=S-$|0;r[t>>2]=(l>>>0<32767?l:32767)<<15|(M>>>0<32767?M:32767)|-2147483648;I=$;x=l}else{I=E;x=C}M=b+1|0;if((M|0)>=(k|0)){h=0;break}T=r[u>>2]|0;E=I;b=M;C=x}m=n;return h|0}function tn(e){e=e|0;var t=0;if(!(r[e+36>>2]|0))return;t=r[e+32>>2]|0;if(t|0)Xn(t);t=r[e+8>>2]|0;if(t|0)Xn(t);Xn(e);return}function nn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0;if(!e)return;t=r[e+4>>2]|0;n=(t|0)!=0;if(n)i=r[t+28>>2]|0;else i=0;a=r[e+104>>2]|0;o=(a|0)!=0;if(o){s=r[a>>2]|0;if(s|0){an(s);Xn(r[a>>2]|0)}s=a+12|0;l=r[s>>2]|0;if(l|0){zt(r[l>>2]|0);Xn(r[r[s>>2]>>2]|0);Xn(r[s>>2]|0)}s=a+16|0;l=r[s>>2]|0;if(l|0){zt(r[l>>2]|0);Xn(r[r[s>>2]>>2]|0);Xn(r[s>>2]|0)}s=a+48|0;l=r[s>>2]|0;if(l|0){if((i|0)!=0?(c=i+16|0,(r[c>>2]|0)>0):0){Ci[r[(r[456+(r[i+800>>2]<<2)>>2]|0)+16>>2]&7](r[l>>2]|0);if((r[c>>2]|0)>1){d=1;do{Ci[r[(r[456+(r[i+800+(d<<2)>>2]<<2)>>2]|0)+16>>2]&7](r[(r[s>>2]|0)+(d<<2)>>2]|0);d=d+1|0}while((d|0)<(r[c>>2]|0))}u=r[s>>2]|0}else u=l;Xn(u)}u=a+52|0;l=r[u>>2]|0;if(l|0){if((i|0)!=0?(s=i+20|0,(r[s>>2]|0)>0):0){Ci[r[(r[464+(r[i+1312>>2]<<2)>>2]|0)+16>>2]&7](r[l>>2]|0);if((r[s>>2]|0)>1){c=1;do{Ci[r[(r[464+(r[i+1312+(c<<2)>>2]<<2)>>2]|0)+16>>2]&7](r[(r[u>>2]|0)+(c<<2)>>2]|0);c=c+1|0}while((c|0)<(r[s>>2]|0))}p=r[u>>2]|0}else p=l;Xn(p)}p=a+56|0;l=r[p>>2]|0;if(l|0){if((i|0)!=0?(u=i+28|0,(r[u>>2]|0)>0):0){rn(l);if((r[u>>2]|0)>1){i=1;do{rn((r[p>>2]|0)+(i*52|0)|0);i=i+1|0}while((i|0)<(r[u>>2]|0))}f=r[p>>2]|0}else f=l;Xn(f)}f=r[a+60>>2]|0;if(f|0)on(f);sn(a+80|0);Gt(a+20|0);Gt(a+32|0)}f=e+8|0;l=r[f>>2]|0;if(l|0){if(n?(n=t+4|0,t=r[n>>2]|0,(t|0)>0):0){p=l;u=t;t=0;while(1){i=r[p+(t<<2)>>2]|0;if(!i)m=u;else{Xn(i);m=r[n>>2]|0}i=t+1|0;if((i|0)>=(m|0))break;p=r[f>>2]|0;u=m;t=i}h=r[f>>2]|0}else h=l;Xn(h);h=r[e+12>>2]|0;if(h|0)Xn(h)}if(o){o=r[a+64>>2]|0;if(o|0)Xn(o);o=r[a+68>>2]|0;if(o|0)Xn(o);o=r[a+72>>2]|0;if(o|0)Xn(o);Xn(a)}a=e;e=a+112|0;do{r[a>>2]=0;a=a+4|0}while((a|0)<(e|0));return}function an(e){e=e|0;zt(e+16|0);Xn(r[e+48>>2]|0);Xn(r[e+64>>2]|0);Xn(r[e+80>>2]|0);Xn(r[e+96>>2]|0);Xn(r[e+112>>2]|0);Xn(r[e+128>>2]|0);Xn(r[e+144>>2]|0);Xn(r[e+36>>2]|0);Xn(r[e+152>>2]|0);Xn(r[e+160>>2]|0);ai(e|0,0,180)|0;return}function rn(e){e=e|0;var t=0,n=0,i=0,a=0;if(!e)return;t=r[e+16>>2]|0;if(t|0)Xn(t);t=r[e+20>>2]|0;if(t|0)Xn(t);t=r[e+24>>2]|0;if(t|0)Xn(t);t=e+8|0;n=r[t>>2]|0;if(n|0){i=n;n=0;while(1){Xn(r[r[i+(n<<2)>>2]>>2]|0);Xn(r[(r[(r[t>>2]|0)+(n<<2)>>2]|0)+4>>2]|0);Xn(r[(r[(r[t>>2]|0)+(n<<2)>>2]|0)+8>>2]|0);Xn(r[(r[(r[t>>2]|0)+(n<<2)>>2]|0)+12>>2]|0);Xn(r[(r[(r[t>>2]|0)+(n<<2)>>2]|0)+16>>2]|0);Xn(r[(r[(r[t>>2]|0)+(n<<2)>>2]|0)+20>>2]|0);Xn(r[(r[(r[t>>2]|0)+(n<<2)>>2]|0)+24>>2]|0);Xn(r[(r[(r[t>>2]|0)+(n<<2)>>2]|0)+28>>2]|0);Xn(r[(r[t>>2]|0)+(n<<2)>>2]|0);a=n+1|0;if((a|0)==17)break;i=r[t>>2]|0;n=a}Xn(r[t>>2]|0);
}t=e+12|0;n=r[t>>2]|0;if(n|0){Xn(r[n>>2]|0);Xn(r[(r[t>>2]|0)+4>>2]|0);Xn(r[(r[t>>2]|0)+8>>2]|0);Xn(r[t>>2]|0)}t=e;e=t+52|0;do{r[t>>2]=0;t=t+4|0}while((t|0)<(e|0));return}function on(e){e=e|0;if(!e)return;Xn(e);return}function sn(e){e=e|0;var t=0;t=e;e=t+48|0;do{r[t>>2]=0;t=t+4|0}while((t|0)<(e|0));return}function ln(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0;i=m;m=m+144|0;a=i;o=(n|0)!=0;s=Yn((o?n:t)<<2)|0;ai(a|0,0,132)|0;l=(t|0)>0;e:do if(l){c=a+4|0;d=(n|0)==0&1;u=0;p=0;t:while(1){f=r[e+(p<<2)>>2]|0;n:do if((f|0)>0){h=r[a+(f<<2)>>2]|0;if(!((f|0)>31|(h>>>f|0)==0))break t;g=u+1|0;r[s+(u<<2)>>2]=h;_=a+(f<<2)|0;i:do if(!(h&1)){v=h;y=_;b=f;while(1){r[y>>2]=v+1;w=b+-1|0;if((b|0)<=1)break i;v=r[a+(w<<2)>>2]|0;k=a+(w<<2)|0;if(v&1|0){M=k;S=w;A=7;break}else{y=k;b=w}}}else{M=_;S=f;A=7}while(0);do if((A|0)==7){A=0;if((S|0)==1){r[c>>2]=(r[c>>2]|0)+1;break}else{r[M>>2]=r[a+(S+-1<<2)>>2]<<1;break}}while(0);_=f+1|0;if((_|0)<33){b=h;y=f;v=_;while(1){_=a+(v<<2)|0;w=b;b=r[_>>2]|0;if((b>>>1|0)!=(w|0)){C=g;break n}r[_>>2]=r[a+(y<<2)>>2]<<1;_=v+1|0;if((_|0)>=33){C=g;break}else{w=v;v=_;y=w}}}else C=g}else C=u+d|0;while(0);p=p+1|0;if((p|0)>=(t|0))break e;else u=C}Xn(s);T=0;m=i;return T|0}while(0);e:do if((n|0)!=1){C=1;while(1){if(r[a+(C<<2)>>2]&-1>>>(32-C|0)|0)break;C=C+1|0;if((C|0)>=33)break e}Xn(s);T=0;m=i;return T|0}while(0);if(!l){T=s;m=i;return T|0}if(o){E=0;$=0}else{o=0;do{l=r[e+(o<<2)>>2]|0;a=s+(o<<2)|0;if((l|0)>0){n=r[a>>2]|0;C=0;S=0;while(1){M=n>>>C&1|S<<1;C=C+1|0;if((C|0)>=(l|0)){I=M;break}else S=M}}else I=0;o=o+1|0;r[a>>2]=I}while((o|0)!=(t|0));T=s;m=i;return T|0}while(1){o=r[e+($<<2)>>2]|0;if((o|0)>0){I=r[s+(E<<2)>>2]|0;S=0;l=0;while(1){C=I>>>S&1|l<<1;S=S+1|0;if((S|0)>=(o|0)){x=C;break}else l=C}}else x=0;if(!o)P=E;else{r[s+(E<<2)>>2]=x;P=E+1|0}$=$+1|0;if(($|0)==(t|0)){T=s;break}else E=P}m=i;return T|0}function cn(e,t){e=e|0;t=t|0;var n=0;n=r[r[e>>2]>>2]|0;e=r[r[t>>2]>>2]|0;return(n>>>0>e>>>0&1)-(n>>>0<e>>>0&1)|0}function dn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0;i=r[e+12>>2]|0;if((i+-1|0)>>>0>=2){a=0;return a|0}o=r[e+16>>2]|0;s=+(o&2097151|0);l=+Wn((o|0)<0?-s:s,(o>>>21&1023)+-788|0);o=r[e+20>>2]|0;s=+(o&2097151|0);d=+Wn((o|0)<0?-s:s,(o>>>21&1023)+-788|0);o=r[e>>2]|0;u=Jn(W(o,t)|0,4)|0;switch(i|0){case 1:{i=r[e+4>>2]|0;if((o|0)<=0)while(1){}t=~~+P(+ +O(+ +(i|0),+(1/+(o|0))));while(1){p=t+1|0;f=1;m=1;h=0;do{f=W(f,t)|0;m=W(m,p)|0;h=h+1|0}while((h|0)!=(o|0));if((m|0)>(i|0)&(f|0)<=(i|0))break;else t=((f|0)>(i|0)?-1:1)+t|0}if((i|0)<=0){a=u;return a|0}h=(n|0)==0;p=e+8|0;g=e+32|0;s=d;_=l;v=e+28|0;y=0;b=0;while(1){if(h){w=r[g>>2]|0;k=W(y,o)|0;if(!(r[v>>2]|0)){M=1;S=0;do{c[u+(k+S<<2)>>2]=_+ +D(+ +(r[w+((((b|0)/(M|0)|0|0)%(t|0)|0)<<2)>>2]|0))*s;M=W(M,t)|0;S=S+1|0}while((S|0)<(o|0));A=21}else{S=1;M=0;C=0;do{C=C+_+ +D(+ +(r[w+((((b|0)/(S|0)|0|0)%(t|0)|0)<<2)>>2]|0))*s;c[u+(k+M<<2)>>2]=C;S=W(S,t)|0;M=M+1|0}while((M|0)<(o|0));A=21}}else if(r[(r[p>>2]|0)+(b<<2)>>2]|0){M=r[g>>2]|0;S=W(r[n+(y<<2)>>2]|0,o)|0;if(!(r[v>>2]|0)){k=1;w=0;do{c[u+(S+w<<2)>>2]=_+ +D(+ +(r[M+((((b|0)/(k|0)|0|0)%(t|0)|0)<<2)>>2]|0))*s;k=W(k,t)|0;w=w+1|0}while((w|0)<(o|0));A=21}else{w=1;k=0;C=0;do{C=C+_+ +D(+ +(r[M+((((b|0)/(w|0)|0|0)%(t|0)|0)<<2)>>2]|0))*s;c[u+(S+k<<2)>>2]=C;w=W(w,t)|0;k=k+1|0}while((k|0)<(o|0));A=21}}else T=y;if((A|0)==21){A=0;T=y+1|0}b=b+1|0;if((b|0)>=(i|0)){a=u;break}else y=T}return a|0}case 2:{T=r[e+4>>2]|0;if((T|0)<=0){a=u;return a|0}y=(n|0)!=0;i=e+8|0;b=e+32|0;s=d;d=l;A=e+28|0;e=(o|0)>0;t=0;v=0;while(1){if(y?(r[(r[i>>2]|0)+(v<<2)>>2]|0)==0:0)E=t;else{if(e){g=r[b>>2]|0;p=(r[A>>2]|0)==0;if(y){h=W(o,v)|0;k=W(r[n+(t<<2)>>2]|0,o)|0;if(p){w=0;do{c[u+(k+w<<2)>>2]=d+ +D(+ +(r[g+(h+w<<2)>>2]|0))*s;w=w+1|0}while((w|0)<(o|0))}else{w=0;l=0;do{l=l+d+ +D(+ +(r[g+(h+w<<2)>>2]|0))*s;c[u+(k+w<<2)>>2]=l;w=w+1|0}while((w|0)<(o|0))}}else{w=W(o,v)|0;k=W(t,o)|0;if(p){h=0;do{c[u+(k+h<<2)>>2]=d+ +D(+ +(r[g+(w+h<<2)>>2]|0))*s;h=h+1|0}while((h|0)<(o|0))}else{h=0;l=0;do{l=l+d+ +D(+ +(r[g+(w+h<<2)>>2]|0))*s;c[u+(k+h<<2)>>2]=l;h=h+1|0}while((h|0)<(o|0))}}}E=t+1|0}v=v+1|0;if((v|0)>=(T|0)){a=u;break}else t=E}return a|0}default:{a=u;return a|0}}return 0}function un(e,t,n,i,a){e=e|0;t=+t;n=n|0;i=+i;a=+a;var o=0,s=0,l=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,D=0,R=0,O=0,N=0,L=0,F=0;o=m;m=m+32480|0;s=o+32256|0;l=o+1792|0;d=o;u=m;m=m+((1*(n<<2)|0)+15&-16)|0;p=Yn(68)|0;ai(l|0,0,30464)|0;f=i>0;h=i<0;g=0;do{_=g<<2;v=0;do{y=v+_|0;if((y|0)<88)b=+c[34192+(y<<2)>>2];else b=-30;w=y+1|0;if((w|0)<88){k=+c[34192+(w<<2)>>2];if(b>k)M=k;else M=b}else if(b>-30)M=-30;else M=b;w=y+2|0;if((w|0)<88){k=+c[34192+(w<<2)>>2];if(M>k)S=k;else S=M}else if(M>-30)S=-30;else S=M;w=y+3|0;if((w|0)<88){k=+c[34192+(w<<2)>>2];if(S>k)A=k;else A=S}else if(S>-30)A=-30;else A=S;c[s+(v<<2)>>2]=A;v=v+1|0}while((v|0)!=56);v=34544+(g*1344|0)|0;li(l+(g*1792|0)+448|0,v|0,224)|0;li(l+(g*1792|0)+672|0,34544+(g*1344|0)+224|0,224)|0;li(l+(g*1792|0)+896|0,34544+(g*1344|0)+448|0,224)|0;li(l+(g*1792|0)+1120|0,34544+(g*1344|0)+672|0,224)|0;li(l+(g*1792|0)+1344|0,34544+(g*1344|0)+896|0,224)|0;li(l+(g*1792|0)+1568|0,34544+(g*1344|0)+1120|0,224)|0;li(l+(g*1792|0)|0,v|0,224)|0;li(l+(g*1792|0)+224|0,v|0,224)|0;if(f){v=0;do{if(h){_=0;do{w=16-_|0;k=+(((w|0)>-1?w:0-w|0)|0)*a+i;C=k<0?0:k;w=l+(g*1792|0)+(v*224|0)+(_<<2)|0;c[w>>2]=+c[w>>2]+(C>0?0:C);_=_+1|0}while((_|0)!=56)}else{_=0;do{w=16-_|0;C=+(((w|0)>-1?w:0-w|0)|0)*a+i;w=l+(g*1792|0)+(v*224|0)+(_<<2)|0;c[w>>2]=+c[w>>2]+(C<0?0:C);_=_+1|0}while((_|0)!=56)}v=v+1|0}while((v|0)!=8)}else{v=0;do{if(h){_=0;do{w=16-_|0;C=+(((w|0)>-1?w:0-w|0)|0)*a+i;w=l+(g*1792|0)+(v*224|0)+(_<<2)|0;c[w>>2]=+c[w>>2]+(C>0?0:C);_=_+1|0}while((_|0)!=56)}else{_=0;do{w=16-_|0;y=l+(g*1792|0)+(v*224|0)+(_<<2)|0;c[y>>2]=+c[y>>2]+(+(((w|0)>-1?w:0-w|0)|0)*a+i);_=_+1|0}while((_|0)!=56)}v=v+1|0}while((v|0)!=8)}C=+c[e+(g<<2)>>2];v=0;do{k=+(((v|0)>2?v:2)|0)*-10+70+C;_=0;do{w=l+(g*1792|0)+(v*224|0)+(_<<2)|0;c[w>>2]=+c[w>>2]+k;_=_+1|0}while((_|0)!=56);li(d+(v*224|0)|0,s|0,224)|0;k=+(v|0)*-10+70;_=0;do{w=d+(v*224|0)+(_<<2)|0;c[w>>2]=k+ +c[w>>2];_=_+1|0}while((_|0)!=56);T=0;do{k=+c[l+(g*1792|0)+(v*224|0)+(T<<2)>>2];_=d+(v*224|0)+(T<<2)|0;if(k>+c[_>>2])c[_>>2]=k;T=T+1|0}while((T|0)!=56);v=v+1|0}while((v|0)!=8);E=1;do{v=E+-1|0;_=0;do{C=+c[d+(v*224|0)+(_<<2)>>2];w=d+(E*224|0)+(_<<2)|0;if(C<+c[w>>2])c[w>>2]=C;_=_+1|0}while((_|0)!=56);$=0;do{C=+c[d+(E*224|0)+($<<2)>>2];_=l+(g*1792|0)+(E*224|0)+($<<2)|0;if(C<+c[_>>2])c[_>>2]=C;$=$+1|0}while(($|0)!=56);E=E+1|0}while((E|0)!=8);g=g+1|0}while((g|0)!=17);i=t;g=(n|0)>0;E=0;do{$=Yn(32)|0;d=p+(E<<2)|0;r[d>>2]=$;a=+(E|0);A=a*.5;T=~~+P(+(+V(+(a*.34657350182533264+4.135165354540845))/i));s=~~+z(+(+q(+(+(T|0)*t+1))*2.885390043258667+-11.931568145751953));e=~~+P(+(+q(+(+(T+1|0)*t))*2.885390043258667+-11.931568145751953));T=(s|0)>(E|0)?E:s;s=(T|0)>0?T:0;T=(e|0)<16?e:16;e=(s|0)>(T|0);E=E+1|0;h=(E|0)<17;a=A+3.9657840728759766;f=$;$=0;do{r[f+($<<2)>>2]=Yn(232)|0;if(g){_=0;do{c[u+(_<<2)>>2]=999;_=_+1|0}while((_|0)!=(n|0))}if(!e){_=s;while(1){S=+(_|0)*.5;v=0;w=0;while(1){M=+(v|0)*.125+S;y=~~(+V(+((M+3.9032840728759766)*.6931470036506653))/i);I=~~(+V(+((M+4.028284072875977)*.6931470036506653))/i+1);x=(y|0)>0?y:0;y=(x|0)>(n|0)?n:x;x=(y|0)<(w|0)?y:w;y=(I|0)>0?I:0;I=(y|0)>(n|0)?n:y;if((x|0)<(I|0)&(x|0)<(n|0)){M=+c[l+(_*1792|0)+($*224|0)+(v<<2)>>2];y=x;while(1){D=u+(y<<2)|0;if(+c[D>>2]>M)c[D>>2]=M;D=y+1|0;if((D|0)<(I|0)&(D|0)<(n|0))y=D;else{R=D;break}}}else R=x;v=v+1|0;if((v|0)==56)break;else w=R}if((R|0)<(n|0)){S=+c[l+(_*1792|0)+($*224|0)+220>>2];w=R;do{v=u+(w<<2)|0;if(+c[v>>2]>S)c[v>>2]=S;w=w+1|0}while((w|0)!=(n|0))}if((_|0)<(T|0))_=_+1|0;else break}}if(h){_=0;w=0;while(1){S=+(_|0)*.125+A;v=~~(+V(+((S+3.9032840728759766)*.6931470036506653))/i);y=~~(+V(+((S+4.028284072875977)*.6931470036506653))/i+1);I=(v|0)>0?v:0;v=(I|0)>(n|0)?n:I;I=(v|0)<(w|0)?v:w;v=(y|0)>0?y:0;y=(v|0)>(n|0)?n:v;if((I|0)<(y|0)&(I|0)<(n|0)){S=+c[l+(E*1792|0)+($*224|0)+(_<<2)>>2];v=I;while(1){D=u+(v<<2)|0;if(+c[D>>2]>S)c[D>>2]=S;D=v+1|0;if((D|0)<(y|0)&(D|0)<(n|0))v=D;else{O=D;break}}}else O=I;_=_+1|0;if((_|0)==56)break;else w=O}if((O|0)<(n|0)){S=+c[l+(E*1792|0)+($*224|0)+220>>2];w=O;do{_=u+(w<<2)|0;if(+c[_>>2]>S)c[_>>2]=S;w=w+1|0}while((w|0)!=(n|0))}}f=r[d>>2]|0;w=r[f+($<<2)>>2]|0;_=0;do{v=~~(+V(+((a+ +(_|0)*.125)*.6931470036506653))/i);if((v|0)>-1&(v|0)<(n|0))N=+c[u+(v<<2)>>2];else N=-999;c[w+(_+2<<2)>>2]=N;_=_+1|0}while((_|0)!=56);do if(!(+c[w+8>>2]>-200))if(!(+c[w+12>>2]>-200))if(!(+c[w+16>>2]>-200))if(!(+c[w+20>>2]>-200))if(!(+c[w+24>>2]>-200))if(!(+c[w+28>>2]>-200))if(!(+c[w+32>>2]>-200))if(!(+c[w+36>>2]>-200))if(!(+c[w+40>>2]>-200))if(!(+c[w+44>>2]>-200))if(!(+c[w+48>>2]>-200))if(!(+c[w+52>>2]>-200))if(!(+c[w+56>>2]>-200))if(+c[w+60>>2]>-200)L=13;else{if(+c[w+64>>2]>-200){L=14;break}if(+c[w+68>>2]>-200){L=15;break}L=16}else L=12;else L=11;else L=10;else L=9;else L=8;else L=7;else L=6;else L=5;else L=4;else L=3;else L=2;else L=1;else L=0;while(0);c[w>>2]=L;_=55;while(1){if(+c[w+(_+2<<2)>>2]>-200){F=_;break}v=_+-1|0;if((v|0)>17)_=v;else{F=v;break}}c[w+4>>2]=+(F|0);$=$+1|0}while(($|0)!=8)}while((E|0)!=17);m=o;return p|0}function pn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;if(Jt(e,t,0)|0){nn(e);n=1;return n|0}t=r[e+4>>2]|0;i=r[e+104>>2]|0;if((t|0)==0|(i|0)==0){n=0;return n|0}a=r[t+28>>2]|0;if(!a){n=0;return n|0}t=r[a+3656>>2]|0;o=r[a+4>>2]>>t+1;r[e+48>>2]=o;r[e+20>>2]=o>>t;r[e+24>>2]=-1;t=e+56|0;r[t>>2]=-1;r[t+4>>2]=-1;r[t+8>>2]=-1;r[t+12>>2]=-1;r[e+32>>2]=0;e=i+128|0;r[e>>2]=-1;r[e+4>>2]=-1;n=0;return n|0}function fn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0;n=r[e+4>>2]|0;i=r[n+28>>2]|0;a=r[e+104>>2]|0;o=r[i+3656>>2]|0;if(!t){s=-131;return s|0}l=e+20|0;d=r[l>>2]|0;u=e+24|0;p=r[u>>2]|0;if(!((d|0)<=(p|0)|(p|0)==-1)){s=-131;return s|0}f=e+40|0;m=r[f>>2]|0;h=e+36|0;r[h>>2]=m;g=r[t+28>>2]|0;r[f>>2]=g;r[e+44>>2]=-1;_=e+64|0;v=_;y=r[v>>2]|0;b=r[v+4>>2]|0;v=t+56|0;w=r[v>>2]|0;k=r[v+4>>2]|0;v=ii(y|0,b|0,1,0)|0;if(!(((y|0)!=-1|(b|0)!=-1)&((v|0)==(w|0)&(x|0)==(k|0)))){v=e+56|0;r[v>>2]=-1;r[v+4>>2]=-1;v=a+128|0;r[v>>2]=-1;r[v+4>>2]=-1}v=_;r[v>>2]=w;r[v+4>>2]=k;if(!(r[t>>2]|0)){M=d;S=p}else{d=o+1|0;k=r[i+(g<<2)>>2]>>d;v=r[i>>2]>>d;w=r[i+4>>2]>>d;d=r[t+88>>2]|0;_=e+72|0;b=_;y=ii(r[b>>2]|0,r[b+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;d=_;r[d>>2]=y;r[d+4>>2]=x;d=r[t+92>>2]|0;y=e+80|0;_=y;b=ii(r[_>>2]|0,r[_+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;d=y;r[d>>2]=b;r[d+4>>2]=x;d=r[t+96>>2]|0;b=e+88|0;y=b;_=ii(r[y>>2]|0,r[y+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;d=b;r[d>>2]=_;r[d+4>>2]=x;d=r[t+100>>2]|0;_=e+96|0;b=_;y=ii(r[b>>2]|0,r[b+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;d=_;r[d>>2]=y;r[d+4>>2]=x;d=e+48|0;y=r[d>>2]|0;_=(y|0)==0;b=_?w:0;A=_?0:w;_=n+4|0;if((r[_>>2]|0)>0){n=a+4|0;C=e+8|0;T=(w|0)/2|0;E=(v|0)/2|0;$=0-E|0;I=(v|0)>0;P=T+E|0;E=v+-1|0;D=(k|0)>0;R=a+8|0;O=(w|0)>0;N=w+-1|0;L=(v|0)/-2|0;F=m;m=g;g=0;while(1){U=(m|0)!=0;e:do if(!F){B=mn((r[n>>2]|0)-o|0)|0;H=r[(r[C>>2]|0)+(g<<2)>>2]|0;j=H+(b<<2)|0;V=r[(r[t>>2]|0)+(g<<2)>>2]|0;if(!U){if(I)q=0;else{z=H;W=V;break}while(1){G=j+(q<<2)|0;c[G>>2]=+c[B+(q<<2)>>2]*+c[V+(q<<2)>>2]+ +c[B+(E-q<<2)>>2]*+c[G>>2];q=q+1|0;if((q|0)==(v|0)){z=H;W=V;break e}}}G=V+(T<<2)+($<<2)|0;if(I){K=0;do{Y=j+(K<<2)|0;c[Y>>2]=+c[B+(K<<2)>>2]*+c[G+(K<<2)>>2]+ +c[B+(E-K<<2)>>2]*+c[Y>>2];K=K+1|0}while((K|0)!=(v|0));X=v}else X=0;if((X|0)<(P|0)){K=X;do{r[j+(K<<2)>>2]=r[G+(K<<2)>>2];K=K+1|0}while((K|0)<(P|0));z=H;W=V}else{z=H;W=V}}else if(U){K=mn((r[R>>2]|0)-o|0)|0;G=r[(r[C>>2]|0)+(g<<2)>>2]|0;j=G+(b<<2)|0;B=r[(r[t>>2]|0)+(g<<2)>>2]|0;if(O)J=0;else{z=G;W=B;break}do{Y=j+(J<<2)|0;c[Y>>2]=+c[K+(J<<2)>>2]*+c[B+(J<<2)>>2]+ +c[K+(N-J<<2)>>2]*+c[Y>>2];J=J+1|0}while((J|0)!=(w|0));z=G;W=B}else{B=mn((r[n>>2]|0)-o|0)|0;G=r[(r[C>>2]|0)+(g<<2)>>2]|0;K=G+(b<<2)+(T<<2)+(L<<2)|0;j=r[(r[t>>2]|0)+(g<<2)>>2]|0;if(I)Z=0;else{z=G;W=j;break}do{V=K+(Z<<2)|0;c[V>>2]=+c[B+(Z<<2)>>2]*+c[j+(Z<<2)>>2]+ +c[B+(E-Z<<2)>>2]*+c[V>>2];Z=Z+1|0}while((Z|0)!=(v|0));z=G;W=j}while(0);U=z+(A<<2)|0;j=W+(k<<2)|0;if(D){G=0;do{r[U+(G<<2)>>2]=r[j+(G<<2)>>2];G=G+1|0}while((G|0)!=(k|0))}G=g+1|0;if((G|0)>=(r[_>>2]|0))break;F=r[h>>2]|0;m=r[f>>2]|0;g=G}Q=r[d>>2]|0;ee=r[u>>2]|0}else{Q=y;ee=p}r[d>>2]=Q|0?0:w;if((ee|0)==-1){r[u>>2]=A;te=A;ne=A}else{r[u>>2]=b;te=b;ne=(((r[i+(r[f>>2]<<2)>>2]|0)/4|0)+((r[i+(r[h>>2]<<2)>>2]|0)/4|0)>>o)+b|0}r[l>>2]=ne;M=ne;S=te}te=a+128|0;a=te;ne=r[a>>2]|0;b=r[a+4>>2]|0;if((ne|0)==-1&(b|0)==-1){ie=0;ae=0}else{a=((r[i+(r[f>>2]<<2)>>2]|0)/4|0)+((r[i+(r[h>>2]<<2)>>2]|0)/4|0)|0;A=ii(a|0,((a|0)<0)<<31>>31|0,ne|0,b|0)|0;ie=A;ae=x}A=te;r[A>>2]=ie;r[A+4>>2]=ae;A=e+56|0;te=A;b=r[te>>2]|0;ne=r[te+4>>2]|0;te=t+48|0;a=r[te>>2]|0;ee=r[te+4>>2]|0;te=(a|0)!=-1|(ee|0)!=-1;do if((b|0)==-1&(ne|0)==-1){if(te?(w=A,r[w>>2]=a,r[w+4>>2]=ee,(ae|0)>(ee|0)|(ae|0)==(ee|0)&ie>>>0>a>>>0):0){w=ni(ie|0,ae|0,a|0,ee|0)|0;Q=(w|0)>0?w:0;if(!(r[t+44>>2]|0)){w=S+(Q>>>o)|0;r[u>>2]=(w|0)>(M|0)?M:w;break}else{w=M-S<<o;r[l>>2]=M-(((Q|0)>(w|0)?w:Q)>>o);break}}}else{Q=((r[i+(r[f>>2]<<2)>>2]|0)/4|0)+((r[i+(r[h>>2]<<2)>>2]|0)/4|0)|0;w=ii(Q|0,((Q|0)<0)<<31>>31|0,b|0,ne|0)|0;Q=x;d=A;r[d>>2]=w;r[d+4>>2]=Q;if(!((w|0)==(a|0)&(Q|0)==(ee|0)|te^1)){if(((Q|0)>(ee|0)|(Q|0)==(ee|0)&w>>>0>a>>>0?(d=ni(w|0,Q|0,a|0,ee|0)|0,d|0):0)?r[t+44>>2]|0:0){Q=M-S<<o;w=(d|0)>(Q|0)?Q:d;r[l>>2]=M-(((w|0)>0?w:0)>>>o)}w=A;r[w>>2]=a;r[w+4>>2]=ee}}while(0);if(!(r[t+44>>2]|0)){s=0;return s|0}r[e+32>>2]=1;s=0;return s|0}function mn(e){e=e|0;return r[1500+(e<<2)>>2]|0}function hn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;n=r[e+24>>2]|0;if((n|0)<=-1){i=0;return i|0}a=r[e+20>>2]|0;if((a|0)<=(n|0)){i=0;return i|0}if(t|0){o=r[(r[e+4>>2]|0)+4>>2]|0;s=e+12|0;l=r[s>>2]|0;if((o|0)>0){c=e+8|0;e=l;d=0;while(1){r[e+(d<<2)>>2]=(r[(r[c>>2]|0)+(d<<2)>>2]|0)+(n<<2);d=d+1|0;u=r[s>>2]|0;if((d|0)>=(o|0)){p=u;break}else e=u}}else p=l;r[t>>2]=p}i=a-n|0;return i|0}function gn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=e+24|0;i=(r[n>>2]|0)+t|0;if(t|0?(i|0)>(r[e+20>>2]|0):0){a=-131;return a|0}r[n>>2]=i;a=0;return a|0}function _n(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0;n=(e|0)!=0;if(n?(i=r[e+64>>2]|0,(i|0)!=0):0){a=r[i+104>>2]|0;o=r[i+4>>2]|0;if(!o){s=a;l=0;c=0;d=0;u=1}else{s=a;l=r[o+28>>2]|0;c=o;d=1;u=1}}else{s=0;l=0;c=0;d=0;u=0}o=n?e+4|0:0;if(!(n&((l|0)!=0&(d&(u&(s|0)!=0))))){p=-136;return p|0}Yt(e);$e(o,r[t>>2]|0,r[t+4>>2]|0);if(Pe(o,1)|0){p=-135;return p|0}u=Pe(o,r[s+44>>2]|0)|0;if((u|0)==-1){p=-136;return p|0}r[e+40>>2]=u;s=l+32+(u<<2)|0;u=r[s>>2]|0;if(!u){p=-136;return p|0}d=r[u>>2]|0;u=e+28|0;r[u>>2]=d;do if(d){r[e+24>>2]=Pe(o,1)|0;n=Pe(o,1)|0;r[e+32>>2]=n;if((n|0)==-1){p=-136;return p|0}else{f=r[u>>2]|0;break}}else{r[e+24>>2]=0;r[e+32>>2]=0;f=0}while(0);u=t+16|0;o=r[u+4>>2]|0;d=e+48|0;r[d>>2]=r[u>>2];r[d+4>>2]=o;o=t+24|0;d=r[o+4>>2]|0;u=e+56|0;r[u>>2]=r[o>>2];r[u+4>>2]=d;r[e+44>>2]=r[t+12>>2];t=e+36|0;r[t>>2]=r[l+(f<<2)>>2];f=c+4|0;r[e>>2]=He(e,r[f>>2]<<2)|0;if((r[f>>2]|0)>0){c=0;do{d=He(e,r[t>>2]<<2)|0;r[(r[e>>2]|0)+(c<<2)>>2]=d;c=c+1|0}while((c|0)<(r[f>>2]|0))}f=r[(r[s>>2]|0)+12>>2]|0;p=xi[r[(r[34172+(r[l+288+(f<<2)>>2]<<2)>>2]|0)+16>>2]&15](e,r[l+544+(f<<2)>>2]|0)|0;return p|0}function vn(e){e=e|0;if(!e)return;Xn(e);return}function yn(e){e=e|0;r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;return}function bn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0;if(!e)return;t=r[e>>2]|0;if(t|0){n=e+8|0;i=r[n>>2]|0;if((i|0)>0){a=t;o=i;i=0;while(1){s=r[a+(i<<2)>>2]|0;if(!s){l=o;c=a}else{Xn(s);l=r[n>>2]|0;c=r[e>>2]|0}i=i+1|0;if((i|0)>=(l|0)){d=c;break}else{a=c;o=l}}}else d=t;Xn(d)}d=r[e+4>>2]|0;if(d|0)Xn(d);d=r[e+12>>2]|0;if(d|0)Xn(d);r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;return}function wn(e){e=e|0;r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;r[e+16>>2]=0;r[e+20>>2]=0;r[e+24>>2]=0;r[e+28>>2]=Jn(1,3664)|0;return}function kn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0;t=r[e+28>>2]|0;if(!t){r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;r[e+16>>2]=0;r[e+20>>2]=0;r[e+24>>2]=0;r[e+28>>2]=0;return}n=t+8|0;i=r[n>>2]|0;if((i|0)>0){a=t+32|0;o=i;i=0;while(1){s=r[a+(i<<2)>>2]|0;if(!s)l=o;else{Xn(s);l=r[n>>2]|0}i=i+1|0;if((i|0)>=(l|0))break;else o=l}}l=t+12|0;o=r[l>>2]|0;if((o|0)>0){i=t+544|0;n=t+288|0;a=o;o=0;while(1){s=r[i+(o<<2)>>2]|0;if(!s)c=a;else{Ci[r[(r[34172+(r[n+(o<<2)>>2]<<2)>>2]|0)+8>>2]&7](s);c=r[l>>2]|0}o=o+1|0;if((o|0)>=(c|0))break;else a=c}}c=t+16|0;a=r[c>>2]|0;if((a|0)>0){o=t+1056|0;l=t+800|0;n=a;a=0;while(1){i=r[o+(a<<2)>>2]|0;if(!i)d=n;else{Ci[r[(r[456+(r[l+(a<<2)>>2]<<2)>>2]|0)+12>>2]&7](i);d=r[c>>2]|0}a=a+1|0;if((a|0)>=(d|0))break;else n=d}}d=t+20|0;n=r[d>>2]|0;if((n|0)>0){a=t+1568|0;c=t+1312|0;l=n;n=0;while(1){o=r[a+(n<<2)>>2]|0;if(!o)u=l;else{Ci[r[(r[464+(r[c+(n<<2)>>2]<<2)>>2]|0)+12>>2]&7](o);u=r[d>>2]|0}n=n+1|0;if((n|0)>=(u|0))break;else l=u}}u=t+24|0;if((r[u>>2]|0)>0){l=t+1824|0;n=t+2848|0;d=0;do{c=r[l+(d<<2)>>2]|0;if(c|0)tn(c);c=r[n>>2]|0;if(c|0)Mn(c+(d*56|0)|0);d=d+1|0}while((d|0)<(r[u>>2]|0));p=n}else p=t+2848|0;n=r[p>>2]|0;if(n|0)Xn(n);n=t+28|0;if((r[n>>2]|0)>0){p=t+2852|0;u=0;do{vn(r[p+(u<<2)>>2]|0);u=u+1|0}while((u|0)<(r[n>>2]|0))}Xn(t);r[e>>2]=0;r[e+4>>2]=0;r[e+8>>2]=0;r[e+12>>2]=0;r[e+16>>2]=0;r[e+20>>2]=0;r[e+24>>2]=0;r[e+28>>2]=0;return}function Mn(e){e=e|0;var t=0,n=0,i=0;t=r[e+16>>2]|0;if(t|0)Xn(t);t=r[e+20>>2]|0;if(t|0)Xn(t);t=r[e+24>>2]|0;if(t|0)Xn(t);t=r[e+28>>2]|0;if(t|0)Xn(t);t=r[e+32>>2]|0;if(!t){n=e;i=n+56|0;do{r[n>>2]=0;n=n+4|0}while((n|0)<(i|0));return}Xn(t);n=e;i=n+56|0;do{r[n>>2]=0;n=n+4|0}while((n|0)<(i|0));return}function Sn(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0;a=m;m=m+32|0;o=a;s=a+20|0;if(!n){l=-133;m=a;return l|0}$e(o,r[n>>2]|0,r[n+4>>2]|0);c=Pe(o,8)|0;i[s>>0]=Pe(o,8)|0;i[s+1>>0]=Pe(o,8)|0;i[s+2>>0]=Pe(o,8)|0;i[s+3>>0]=Pe(o,8)|0;i[s+4>>0]=Pe(o,8)|0;i[s+5>>0]=Pe(o,8)|0;e:do if(!(Nn(s,57636,6)|0))switch(c|0){case 1:{if(!(r[n+8>>2]|0)){d=-133;break e}u=e+8|0;if(r[u>>2]|0){d=-133;break e}p=r[e+28>>2]|0;if(!p){d=-129;break e}f=Pe(o,32)|0;r[e>>2]=f;if(f|0){d=-134;break e}f=e+4|0;r[f>>2]=Pe(o,8)|0;r[u>>2]=Pe(o,32)|0;r[e+12>>2]=Pe(o,32)|0;r[e+16>>2]=Pe(o,32)|0;r[e+20>>2]=Pe(o,32)|0;r[p>>2]=1<<(Pe(o,4)|0);h=1<<(Pe(o,4)|0);r[p+4>>2]=h;if((((r[u>>2]|0)>=1?(r[f>>2]|0)>=1:0)?(f=r[p>>2]|0,!((h|0)>8192|((f|0)<64|(h|0)<(f|0)))):0)?(Pe(o,1)|0)==1:0){d=0;break e}kn(e);d=-133;break e;break}case 3:{if(!(r[e+8>>2]|0)){d=-133;break e}f=Pe(o,32)|0;t:do if((f|0)>=0?(h=o+16|0,(f|0)<=((r[h>>2]|0)+-8|0)):0){p=Jn(f+1|0,1)|0;r[t+12>>2]=p;if(f|0){u=p;p=f;while(1){p=p+-1|0;i[u>>0]=Pe(o,8)|0;if(!p)break;else u=u+1|0}}u=Pe(o,32)|0;if((u|0)>=0?(p=r[h>>2]|0,(u|0)<=(p-(De(o)|0)>>2|0)):0){p=t+8|0;r[p>>2]=u;g=u+1|0;r[t>>2]=Jn(g,4)|0;_=t+4|0;r[_>>2]=Jn(g,4)|0;if((u|0)>0){u=0;do{g=Pe(o,32)|0;if((g|0)<0){v=t;break t}y=r[h>>2]|0;if((g|0)>(y-(De(o)|0)|0)){v=t;break t}r[(r[_>>2]|0)+(u<<2)>>2]=g;y=Jn(g+1|0,1)|0;r[(r[t>>2]|0)+(u<<2)>>2]=y;if(g|0){y=r[(r[t>>2]|0)+(u<<2)>>2]|0;b=g;while(1){b=b+-1|0;i[y>>0]=Pe(o,8)|0;if(!b)break;else y=y+1|0}}u=u+1|0}while((u|0)<(r[p>>2]|0))}if((Pe(o,1)|0)==1){d=0;break e}else v=t}else w=28}else w=28;while(0);if((w|0)==28){if(!t){d=-133;break e}v=t}f=r[v>>2]|0;if(f|0){p=t+8|0;u=r[p>>2]|0;if((u|0)>0){_=f;h=u;u=0;while(1){y=r[_+(u<<2)>>2]|0;if(!y){k=h;M=_}else{Xn(y);k=r[p>>2]|0;M=r[v>>2]|0}u=u+1|0;if((u|0)>=(k|0)){S=M;break}else{_=M;h=k}}}else S=f;Xn(S)}h=r[t+4>>2]|0;if(h|0)Xn(h);h=r[t+12>>2]|0;if(h|0)Xn(h);r[t>>2]=0;r[t+4>>2]=0;r[t+8>>2]=0;r[t+12>>2]=0;d=-133;break e;break}case 5:{if(!(r[e+8>>2]|0)){d=-133;break e}if(!(r[t+12>>2]|0)){d=-133;break e}h=r[e+28>>2]|0;if(!h){d=-129;break e}_=Pe(o,8)|0;u=h+24|0;r[u>>2]=_+1;t:do if((_|0)>=0){p=0;do{y=An(o)|0;r[h+1824+(p<<2)>>2]=y;p=p+1|0;if(!y)break t}while((p|0)<(r[u>>2]|0));p=Pe(o,6)|0;if((p|0)>=0){y=0;while(1){if(Pe(o,16)|0)break t;if((y|0)<(p|0))y=y+1|0;else break}y=Pe(o,6)|0;p=h+16|0;r[p>>2]=y+1;if((y|0)>=0){y=0;do{b=Pe(o,16)|0;r[h+800+(y<<2)>>2]=b;if(b>>>0>1)break t;g=xi[r[(r[456+(b<<2)>>2]|0)+4>>2]&15](e,o)|0;r[h+1056+(y<<2)>>2]=g;y=y+1|0;if(!g)break t}while((y|0)<(r[p>>2]|0));p=Pe(o,6)|0;y=h+20|0;r[y>>2]=p+1;if((p|0)>=0){p=0;do{g=Pe(o,16)|0;r[h+1312+(p<<2)>>2]=g;if(g>>>0>2)break t;b=xi[r[(r[464+(g<<2)>>2]|0)+4>>2]&15](e,o)|0;r[h+1568+(p<<2)>>2]=b;p=p+1|0;if(!b)break t}while((p|0)<(r[y>>2]|0));y=Pe(o,6)|0;p=h+12|0;r[p>>2]=y+1;if((y|0)>=0){y=0;do{b=Pe(o,16)|0;r[h+288+(y<<2)>>2]=b;if(b|0)break t;b=xi[r[(r[8543]|0)+4>>2]&15](e,o)|0;r[h+544+(y<<2)>>2]=b;y=y+1|0;if(!b)break t}while((y|0)<(r[p>>2]|0));y=Pe(o,6)|0;b=h+8|0;r[b>>2]=y+1;if((y|0)>=0){y=0;do{g=h+32+(y<<2)|0;r[g>>2]=Jn(1,16)|0;A=Pe(o,1)|0;r[r[g>>2]>>2]=A;A=Pe(o,16)|0;r[(r[g>>2]|0)+4>>2]=A;A=Pe(o,16)|0;r[(r[g>>2]|0)+8>>2]=A;A=Pe(o,8)|0;C=r[g>>2]|0;r[C+12>>2]=A;if((r[C+4>>2]|0)>0)break t;if((r[C+8>>2]|0)>0)break t;y=y+1|0;if((A|0)<0?1:(A|0)>=(r[p>>2]|0))break t}while((y|0)<(r[b>>2]|0));if((Pe(o,1)|0)==1){d=0;break e}}}}}}}while(0);kn(e);d=-133;break e;break}default:{d=-133;break e}}else d=-132;while(0);l=d;m=a;return l|0}function An(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0;t=Jn(1,40)|0;r[t+36>>2]=1;e:do if(((Pe(e,24)|0)==5653314?(r[t>>2]=Pe(e,16)|0,n=Pe(e,24)|0,i=t+4|0,r[i>>2]=n,(n|0)!=-1):0)?(n=Ze(r[t>>2]|0)|0,((Ze(r[i>>2]|0)|0)+n|0)<=24):0){t:do switch(Pe(e,1)|0){case 0:{n=(Pe(e,1)|0)!=0;if(((W(n?1:5,r[i>>2]|0)|0)+7>>3|0)>((r[e+16>>2]|0)-(De(e)|0)|0))break e;a=r[i>>2]|0;o=t+8|0;r[o>>2]=Yn(a<<2)|0;s=(a|0)>0;if(!n){if(s)l=0;else break t;while(1){n=Pe(e,5)|0;if((n|0)==-1)break e;r[(r[o>>2]|0)+(l<<2)>>2]=n+1;l=l+1|0;if((l|0)>=(r[i>>2]|0))break t}}if(s){n=0;do{if(Pe(e,1)|0){a=Pe(e,5)|0;if((a|0)==-1)break e;else c=a+1|0}else c=0;r[(r[o>>2]|0)+(n<<2)>>2]=c;n=n+1|0}while((n|0)<(r[i>>2]|0))}break}case 1:{n=(Pe(e,5)|0)+1|0;if(!n)break e;o=r[i>>2]|0;s=t+8|0;r[s>>2]=Yn(o<<2)|0;if((o|0)>0){a=o;o=0;d=n;while(1){n=Pe(e,Ze(a-o|0)|0)|0;if((d|0)>32|(n|0)==-1)break e;u=r[i>>2]|0;if((n|0)>(u-o|0))break e;if((n|0)>0){if((n+-1>>d+-1|0)>1)break e;p=r[s>>2]|0;f=o;m=0;while(1){r[p+(f<<2)>>2]=d;m=m+1|0;if((m|0)==(n|0))break;else f=f+1|0}h=r[i>>2]|0;g=n+o|0}else{h=u;g=o}if((h|0)>(g|0)){a=h;o=g;d=d+1|0}else break}}break}default:break e}while(0);d=Pe(e,4)|0;o=t+12|0;r[o>>2]=d;switch(d|0){case 2:case 1:break;case 0:{_=t;return _|0}default:break e}r[t+16>>2]=Pe(e,32)|0;r[t+20>>2]=Pe(e,32)|0;d=t+24|0;r[d>>2]=(Pe(e,4)|0)+1;a=Pe(e,1)|0;r[t+28>>2]=a;if((a|0)!=-1){switch(r[o>>2]|0){case 1:{if(!(r[t>>2]|0))v=0;else v=Cn(t)|0;break}case 2:{v=W(r[t>>2]|0,r[i>>2]|0)|0;break}default:v=0}o=(W(r[d>>2]|0,v)|0)+7>>3;a=r[e+16>>2]|0;if((o|0)<=(a-(De(e)|0)|0)){a=Yn(v<<2)|0;o=t+32|0;r[o>>2]=a;if((v|0)>0){s=0;do{f=Pe(e,r[d>>2]|0)|0;m=r[o>>2]|0;r[m+(s<<2)>>2]=f;s=s+1|0}while((s|0)!=(v|0));y=m}else y=a;if(!v){_=t;return _|0}if((r[y+(v+-1<<2)>>2]|0)!=-1){_=t;return _|0}}}}while(0);tn(t);_=0;return _|0}function Cn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0;t=r[e+4>>2]|0;n=r[e>>2]|0;if((n|0)<=0)while(1){}e=~~+P(+ +O(+ +(t|0),+(1/+(n|0))));while(1){i=e+1|0;a=1;o=1;s=0;do{a=W(a,e)|0;o=W(o,i)|0;s=s+1|0}while((s|0)<(n|0));if((a|0)<=(t|0)&(o|0)>(t|0))break;else e=((a|0)>(t|0)?-1:1)+e|0}return e|0}function Tn(){wn(57876);yn(57908);return}function En(e,t){e=e|0;t=t|0;var n=0,i=0,a=0;n=m;m=m+32|0;i=n;xn(i,e,t);if(!(r[14468]|0))r[i+8>>2]=1;if(Sn(57876,57908,i)|0){a=0;m=n;return a|0}i=(r[14468]|0)+1|0;r[14468]=i;if((i|0)<3){a=1;m=n;return a|0}pn(57648,57876)|0;Kt(57648,57760)|0;ce(r[14470]|0,r[14471]|0);a=1;m=n;return a|0}function $n(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;n=m;m=m+48|0;i=n;a=n+32|0;xn(i,e,t);if(_n(57760,i)|0){o=0;m=n;return o|0}fn(57648,57760)|0;i=hn(57648,a)|0;me(r[a>>2]|0,r[14470]|0,i|0);gn(57648,i)|0;o=1;m=n;return o|0}function In(){if(!(r[14468]|0))return;kn(57876);nn(57648);Xt(57760)|0;bn(57908);return}function xn(e,t,n){e=e|0;t=t|0;n=n|0;r[e>>2]=t;r[e+4>>2]=n;n=e+8|0;r[n>>2]=0;r[n+4>>2]=0;r[n+8>>2]=0;r[n+12>>2]=0;r[n+16>>2]=0;r[n+20>>2]=0;return}function Pn(){return 57924}function Dn(){return(Rn()|0)+64|0}function Rn(){return On()|0}function On(){return 57392}function Nn(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,r=0,o=0,s=0,l=0,c=0;e:do if(!n)a=0;else{r=e;o=n;s=t;while(1){l=i[r>>0]|0;c=i[s>>0]|0;if(l<<24>>24!=c<<24>>24)break;o=o+-1|0;if(!o){a=0;break e}else{r=r+1|0;s=s+1|0}}a=(l&255)-(c&255)|0}while(0);return a|0}function Ln(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0;a=m;m=m+208|0;o=a+8|0;s=a;l=W(n,t)|0;t=s;r[t>>2]=1;r[t+4>>2]=0;e:do if(l|0){t=0-n|0;r[o+4>>2]=n;r[o>>2]=n;c=n;d=n;u=2;while(1){p=c+n+d|0;r[o+(u<<2)>>2]=p;if(p>>>0<l>>>0){f=d;d=p;u=u+1|0;c=f}else break}c=e+l+t|0;if(c>>>0>e>>>0){u=c;d=1;f=e;p=1;while(1){do if((d&3|0)!=3){h=p+-1|0;if((r[o+(h<<2)>>2]|0)>>>0<(u-f|0)>>>0)Fn(f,n,i,p,o);else Bn(f,n,i,s,p,0,o);if((p|0)==1){Hn(s,1);g=0;break}else{Hn(s,h);g=1;break}}else{Fn(f,n,i,p,o);Un(s,2);g=p+2|0}while(0);h=r[s>>2]|1;r[s>>2]=h;_=f+n|0;if(_>>>0<c>>>0){d=h;f=_;p=g}else{v=h;y=_;b=g;break}}}else{v=1;y=e;b=1}Bn(y,n,i,s,b,0,o);p=s+4|0;f=v;d=y;c=b;while(1){if((c|0)==1&(f|0)==1){if(!(r[p>>2]|0))break e}else if((c|0)>=2){Hn(s,2);u=c+-2|0;r[s>>2]=r[s>>2]^7;Un(s,1);Bn(d+(0-(r[o+(u<<2)>>2]|0))+t|0,n,i,s,c+-1|0,1,o);Hn(s,1);_=r[s>>2]|1;r[s>>2]=_;h=d+t|0;Bn(h,n,i,s,u,1,o);f=_;d=h;c=u;continue}u=jn(s)|0;Un(s,u);f=r[s>>2]|0;d=d+t|0;c=u+c|0}}while(0);m=a;return}function Fn(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;var o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;o=m;m=m+240|0;s=o;r[s>>2]=e;e:do if((i|0)>1){l=0-t|0;c=e;d=e;u=1;p=i;while(1){f=d+l|0;h=p+-2|0;g=f+(0-(r[a+(h<<2)>>2]|0))|0;if((xi[n&15](c,g)|0)>-1?(xi[n&15](c,f)|0)>-1:0){_=u;break e}v=u+1|0;y=s+(u<<2)|0;if((xi[n&15](g,f)|0)>-1){r[y>>2]=g;b=g;w=p+-1|0}else{r[y>>2]=f;b=f;w=h}if((w|0)<=1){_=v;break e}c=r[s>>2]|0;d=b;u=v;p=w}}else _=1;while(0);qn(t,s,_);m=o;return}function Un(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=e+4|0;if(t>>>0>31){i=r[n>>2]|0;r[e>>2]=i;r[n>>2]=0;a=i;o=0;s=t+-32|0}else{a=r[e>>2]|0;o=r[n>>2]|0;s=t}r[e>>2]=o<<32-s|a>>>s;r[n>>2]=o>>>s;return}function Bn(e,t,n,i,a,o,s){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;o=o|0;s=s|0;var l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0;l=m;m=m+240|0;c=l+232|0;d=l;u=r[i>>2]|0;r[c>>2]=u;p=r[i+4>>2]|0;i=c+4|0;r[i>>2]=p;r[d>>2]=e;e:do if((u|0)!=1|(p|0)!=0?(f=0-t|0,h=e+(0-(r[s+(a<<2)>>2]|0))|0,(xi[n&15](h,e)|0)>=1):0){g=h;h=e;_=1;v=a;y=(o|0)==0;while(1){if(y&(v|0)>1){b=h+f|0;w=r[s+(v+-2<<2)>>2]|0;if((xi[n&15](b,g)|0)>-1){k=h;M=_;S=v;A=10;break e}if((xi[n&15](b+(0-w)|0,g)|0)>-1){k=h;M=_;S=v;A=10;break e}}w=_+1|0;r[d+(_<<2)>>2]=g;b=jn(c)|0;Un(c,b);C=b+v|0;if(!((r[c>>2]|0)!=1|(r[i>>2]|0)!=0)){k=g;M=w;S=C;A=10;break e}b=g+(0-(r[s+(C<<2)>>2]|0))|0;if((xi[n&15](b,r[d>>2]|0)|0)<1){T=g;E=w;$=C;I=0;A=9;break}else{x=g;g=b;_=w;v=C;y=1;h=x}}}else{T=e;E=1;$=a;I=o;A=9}while(0);if((A|0)==9?(I|0)==0:0){k=T;M=E;S=$;A=10}if((A|0)==10){qn(t,d,M);Fn(k,t,n,S,s)}m=l;return}function Hn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0;n=e+4|0;if(t>>>0>31){i=r[e>>2]|0;r[n>>2]=i;r[e>>2]=0;a=i;o=0;s=t+-32|0}else{a=r[n>>2]|0;o=r[e>>2]|0;s=t}r[n>>2]=o>>>(32-s|0)|a<<s;r[e>>2]=o<<s;return}function jn(e){e=e|0;var t=0,n=0;t=Vn((r[e>>2]|0)+-1|0)|0;if(!t){n=Vn(r[e+4>>2]|0)|0;return((n|0)==0?0:n+32|0)|0}else return t|0;return 0}function Vn(e){e=e|0;var t=0,n=0,i=0;if(e)if(!(e&1)){t=0;n=e;while(1){e=t+1|0;n=n>>>1;if(n&1|0){i=e;break}else t=e}}else i=0;else i=32;return i|0}function qn(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0;i=m;m=m+256|0;a=i;e:do if((n|0)>=2?(o=t+(n<<2)|0,r[o>>2]=a,e|0):0){s=a;l=e;while(1){c=l>>>0<256?l:256;li(s|0,r[t>>2]|0,c|0)|0;d=0;do{u=t+(d<<2)|0;d=d+1|0;li(r[u>>2]|0,r[t+(d<<2)>>2]|0,c|0)|0;r[u>>2]=(r[u>>2]|0)+c}while((d|0)!=(n|0));d=l-c|0;if(!d)break e;s=r[o>>2]|0;l=d}}while(0);m=i;return}function zn(e,t){e=+e;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0;if((t|0)<=1023)if((t|0)<-1022){n=e*2.2250738585072014e-308;i=t+1022|0;a=(i|0)<-1022;o=t+2044|0;s=a?(o|0)>-1022?o:-1022:i;l=a?n*2.2250738585072014e-308:n}else{s=t;l=e}else{n=e*8.98846567431158e307;a=t+-1023|0;i=(a|0)>1023;o=t+-2046|0;s=i?(o|0)<1023?o:1023:a;l=i?n*8.98846567431158e307:n}i=ri(s+1023|0,0,52)|0;s=x;r[p>>2]=i;r[p+4>>2]=s;return+(l*+d[p>>3])}function Wn(e,t){e=+e;t=t|0;return+ +zn(e,t)}function Gn(e){e=+e;var t=0,n=0,i=0,a=0;d[p>>3]=e;t=r[p+4>>2]|0;n=t&2146435072;if(!(n>>>0>1126170624|(n|0)==1126170624&0>0)){n=(t|0)<0;i=(n?4503599627370496:-4503599627370496)+((n?-4503599627370496:4503599627370496)+e);if(i==0)a=n?-0:0;else a=i}else a=e;return+a}function Kn(e){e=+e;var t=0,n=0,i=0,a=0;t=(c[p>>2]=e,r[p>>2]|0);if((t&2130706432)>>>0<=1249902592){n=(t|0)<0;i=(n?8388608:-8388608)+((n?-8388608:8388608)+e);if(i==0)a=n?-0:0;else a=i}else a=e;return+a}function Yn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0,D=0,R=0,O=0,N=0,L=0,F=0,U=0,B=0,H=0,j=0,V=0,q=0,z=0,W=0,G=0,K=0,Y=0,X=0,J=0,Z=0,Q=0,ee=0,te=0,ne=0,ie=0,ae=0,re=0,oe=0,se=0,le=0,ce=0,de=0,ue=0,fe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=0,be=0,we=0,ke=0,Me=0,Se=0,Ae=0,Ce=0,Te=0;t=m;m=m+16|0;n=t;do if(e>>>0<245){i=e>>>0<11?16:e+11&-8;a=i>>>3;o=r[14497]|0;s=o>>>a;if(s&3|0){l=(s&1^1)+a|0;c=58028+(l<<1<<2)|0;d=c+8|0;u=r[d>>2]|0;p=u+8|0;f=r[p>>2]|0;do if((c|0)!=(f|0)){if(f>>>0<(r[14501]|0)>>>0)pe();h=f+12|0;if((r[h>>2]|0)==(u|0)){r[h>>2]=c;r[d>>2]=f;break}else pe()}else r[14497]=o&~(1<<l);while(0);f=l<<3;r[u+4>>2]=f|3;d=u+f+4|0;r[d>>2]=r[d>>2]|1;g=p;m=t;return g|0}d=r[14499]|0;if(i>>>0>d>>>0){if(s|0){f=2<<a;c=s<<a&(f|0-f);f=(c&0-c)+-1|0;c=f>>>12&16;h=f>>>c;f=h>>>5&8;_=h>>>f;h=_>>>2&4;v=_>>>h;_=v>>>1&2;y=v>>>_;v=y>>>1&1;b=(f|c|h|_|v)+(y>>>v)|0;v=58028+(b<<1<<2)|0;y=v+8|0;_=r[y>>2]|0;h=_+8|0;c=r[h>>2]|0;do if((v|0)!=(c|0)){if(c>>>0<(r[14501]|0)>>>0)pe();f=c+12|0;if((r[f>>2]|0)==(_|0)){r[f>>2]=v;r[y>>2]=c;w=o;break}else pe()}else{f=o&~(1<<b);r[14497]=f;w=f}while(0);c=(b<<3)-i|0;r[_+4>>2]=i|3;y=_+i|0;r[y+4>>2]=c|1;r[y+c>>2]=c;if(d|0){v=r[14502]|0;a=d>>>3;s=58028+(a<<1<<2)|0;p=1<<a;if(w&p){a=s+8|0;u=r[a>>2]|0;if(u>>>0<(r[14501]|0)>>>0)pe();else{k=a;M=u}}else{r[14497]=w|p;k=s+8|0;M=s}r[k>>2]=v;r[M+12>>2]=v;r[v+8>>2]=M;r[v+12>>2]=s}r[14499]=c;r[14502]=y;g=h;m=t;return g|0}y=r[14498]|0;if(y){c=(y&0-y)+-1|0;s=c>>>12&16;v=c>>>s;c=v>>>5&8;p=v>>>c;v=p>>>2&4;u=p>>>v;p=u>>>1&2;a=u>>>p;u=a>>>1&1;l=r[58292+((c|s|v|p|u)+(a>>>u)<<2)>>2]|0;u=(r[l+4>>2]&-8)-i|0;a=r[l+16+(((r[l+16>>2]|0)==0&1)<<2)>>2]|0;if(!a){S=u;A=l}else{p=a;a=u;u=l;while(1){l=(r[p+4>>2]&-8)-i|0;v=l>>>0<a>>>0;s=v?l:a;l=v?p:u;p=r[p+16+(((r[p+16>>2]|0)==0&1)<<2)>>2]|0;if(!p){S=s;A=l;break}else{a=s;u=l}}}u=r[14501]|0;if(A>>>0<u>>>0)pe();a=A+i|0;if(A>>>0>=a>>>0)pe();p=r[A+24>>2]|0;h=r[A+12>>2]|0;do if((h|0)==(A|0)){_=A+20|0;b=r[_>>2]|0;if(!b){l=A+16|0;s=r[l>>2]|0;if(!s){C=0;break}else{T=s;E=l}}else{T=b;E=_}while(1){_=T+20|0;b=r[_>>2]|0;if(b|0){T=b;E=_;continue}_=T+16|0;b=r[_>>2]|0;if(!b)break;else{T=b;E=_}}if(E>>>0<u>>>0)pe();else{r[E>>2]=0;C=T;break}}else{_=r[A+8>>2]|0;if(_>>>0<u>>>0)pe();b=_+12|0;if((r[b>>2]|0)!=(A|0))pe();l=h+8|0;if((r[l>>2]|0)==(A|0)){r[b>>2]=h;r[l>>2]=_;C=h;break}else pe()}while(0);e:do if(p|0){h=r[A+28>>2]|0;u=58292+(h<<2)|0;do if((A|0)==(r[u>>2]|0)){r[u>>2]=C;if(!C){r[14498]=y&~(1<<h);break e}}else if(p>>>0>=(r[14501]|0)>>>0){r[p+16+(((r[p+16>>2]|0)!=(A|0)&1)<<2)>>2]=C;if(!C)break e;else break}else pe();while(0);h=r[14501]|0;if(C>>>0<h>>>0)pe();r[C+24>>2]=p;u=r[A+16>>2]|0;do if(u|0)if(u>>>0<h>>>0)pe();else{r[C+16>>2]=u;r[u+24>>2]=C;break}while(0);u=r[A+20>>2]|0;if(u|0)if(u>>>0<(r[14501]|0)>>>0)pe();else{r[C+20>>2]=u;r[u+24>>2]=C;break}}while(0);if(S>>>0<16){p=S+i|0;r[A+4>>2]=p|3;y=A+p+4|0;r[y>>2]=r[y>>2]|1}else{r[A+4>>2]=i|3;r[a+4>>2]=S|1;r[a+S>>2]=S;if(d|0){y=r[14502]|0;p=d>>>3;u=58028+(p<<1<<2)|0;h=1<<p;if(o&h){p=u+8|0;_=r[p>>2]|0;if(_>>>0<(r[14501]|0)>>>0)pe();else{$=p;I=_}}else{r[14497]=o|h;$=u+8|0;I=u}r[$>>2]=y;r[I+12>>2]=y;r[y+8>>2]=I;r[y+12>>2]=u}r[14499]=S;r[14502]=a}g=A+8|0;m=t;return g|0}else x=i}else x=i}else if(e>>>0<=4294967231){u=e+11|0;y=u&-8;h=r[14498]|0;if(h){_=0-y|0;p=u>>>8;if(p)if(y>>>0>16777215)P=31;else{u=(p+1048320|0)>>>16&8;l=p<<u;p=(l+520192|0)>>>16&4;
b=l<<p;l=(b+245760|0)>>>16&2;s=14-(p|u|l)+(b<<l>>>15)|0;P=y>>>(s+7|0)&1|s<<1}else P=0;s=r[58292+(P<<2)>>2]|0;e:do if(!s){D=_;R=0;O=0;N=81}else{l=_;b=0;u=y<<((P|0)==31?0:25-(P>>>1)|0);p=s;v=0;while(1){c=(r[p+4>>2]&-8)-y|0;if(c>>>0<l>>>0)if(!c){L=0;F=p;U=p;N=85;break e}else{B=c;H=p}else{B=l;H=v}c=r[p+20>>2]|0;p=r[p+16+(u>>>31<<2)>>2]|0;f=(c|0)==0|(c|0)==(p|0)?b:c;c=(p|0)==0;if(c){D=B;R=f;O=H;N=81;break}else{l=B;b=f;u=u<<((c^1)&1);v=H}}}while(0);if((N|0)==81){if((R|0)==0&(O|0)==0){s=2<<P;_=h&(s|0-s);if(!_){x=y;break}s=(_&0-_)+-1|0;_=s>>>12&16;i=s>>>_;s=i>>>5&8;a=i>>>s;i=a>>>2&4;o=a>>>i;a=o>>>1&2;d=o>>>a;o=d>>>1&1;j=r[58292+((s|_|i|a|o)+(d>>>o)<<2)>>2]|0;V=0}else{j=R;V=O}if(!j){q=D;z=V}else{L=D;F=j;U=V;N=85}}if((N|0)==85)while(1){N=0;o=(r[F+4>>2]&-8)-y|0;d=o>>>0<L>>>0;a=d?o:L;o=d?F:U;F=r[F+16+(((r[F+16>>2]|0)==0&1)<<2)>>2]|0;if(!F){q=a;z=o;break}else{L=a;U=o;N=85}}if((z|0)!=0?q>>>0<((r[14499]|0)-y|0)>>>0:0){o=r[14501]|0;if(z>>>0<o>>>0)pe();a=z+y|0;if(z>>>0>=a>>>0)pe();d=r[z+24>>2]|0;i=r[z+12>>2]|0;do if((i|0)==(z|0)){_=z+20|0;s=r[_>>2]|0;if(!s){v=z+16|0;u=r[v>>2]|0;if(!u){W=0;break}else{G=u;K=v}}else{G=s;K=_}while(1){_=G+20|0;s=r[_>>2]|0;if(s|0){G=s;K=_;continue}_=G+16|0;s=r[_>>2]|0;if(!s)break;else{G=s;K=_}}if(K>>>0<o>>>0)pe();else{r[K>>2]=0;W=G;break}}else{_=r[z+8>>2]|0;if(_>>>0<o>>>0)pe();s=_+12|0;if((r[s>>2]|0)!=(z|0))pe();v=i+8|0;if((r[v>>2]|0)==(z|0)){r[s>>2]=i;r[v>>2]=_;W=i;break}else pe()}while(0);e:do if(d){i=r[z+28>>2]|0;o=58292+(i<<2)|0;do if((z|0)==(r[o>>2]|0)){r[o>>2]=W;if(!W){_=h&~(1<<i);r[14498]=_;Y=_;break e}}else if(d>>>0>=(r[14501]|0)>>>0){r[d+16+(((r[d+16>>2]|0)!=(z|0)&1)<<2)>>2]=W;if(!W){Y=h;break e}else break}else pe();while(0);i=r[14501]|0;if(W>>>0<i>>>0)pe();r[W+24>>2]=d;o=r[z+16>>2]|0;do if(o|0)if(o>>>0<i>>>0)pe();else{r[W+16>>2]=o;r[o+24>>2]=W;break}while(0);o=r[z+20>>2]|0;if(o)if(o>>>0<(r[14501]|0)>>>0)pe();else{r[W+20>>2]=o;r[o+24>>2]=W;Y=h;break}else Y=h}else Y=h;while(0);do if(q>>>0>=16){r[z+4>>2]=y|3;r[a+4>>2]=q|1;r[a+q>>2]=q;h=q>>>3;if(q>>>0<256){d=58028+(h<<1<<2)|0;o=r[14497]|0;i=1<<h;if(o&i){h=d+8|0;_=r[h>>2]|0;if(_>>>0<(r[14501]|0)>>>0)pe();else{X=h;J=_}}else{r[14497]=o|i;X=d+8|0;J=d}r[X>>2]=a;r[J+12>>2]=a;r[a+8>>2]=J;r[a+12>>2]=d;break}d=q>>>8;if(d)if(q>>>0>16777215)Z=31;else{i=(d+1048320|0)>>>16&8;o=d<<i;d=(o+520192|0)>>>16&4;_=o<<d;o=(_+245760|0)>>>16&2;h=14-(d|i|o)+(_<<o>>>15)|0;Z=q>>>(h+7|0)&1|h<<1}else Z=0;h=58292+(Z<<2)|0;r[a+28>>2]=Z;o=a+16|0;r[o+4>>2]=0;r[o>>2]=0;o=1<<Z;if(!(Y&o)){r[14498]=Y|o;r[h>>2]=a;r[a+24>>2]=h;r[a+12>>2]=a;r[a+8>>2]=a;break}o=q<<((Z|0)==31?0:25-(Z>>>1)|0);_=r[h>>2]|0;while(1){if((r[_+4>>2]&-8|0)==(q|0)){N=139;break}Q=_+16+(o>>>31<<2)|0;h=r[Q>>2]|0;if(!h){N=136;break}else{o=o<<1;_=h}}if((N|0)==136)if(Q>>>0<(r[14501]|0)>>>0)pe();else{r[Q>>2]=a;r[a+24>>2]=_;r[a+12>>2]=a;r[a+8>>2]=a;break}else if((N|0)==139){o=_+8|0;h=r[o>>2]|0;i=r[14501]|0;if(h>>>0>=i>>>0&_>>>0>=i>>>0){r[h+12>>2]=a;r[o>>2]=a;r[a+8>>2]=h;r[a+12>>2]=_;r[a+24>>2]=0;break}else pe()}}else{h=q+y|0;r[z+4>>2]=h|3;o=z+h+4|0;r[o>>2]=r[o>>2]|1}while(0);g=z+8|0;m=t;return g|0}else x=y}else x=y}else x=-1;while(0);z=r[14499]|0;if(z>>>0>=x>>>0){q=z-x|0;Q=r[14502]|0;if(q>>>0>15){Z=Q+x|0;r[14502]=Z;r[14499]=q;r[Z+4>>2]=q|1;r[Z+q>>2]=q;r[Q+4>>2]=x|3}else{r[14499]=0;r[14502]=0;r[Q+4>>2]=z|3;q=Q+z+4|0;r[q>>2]=r[q>>2]|1}g=Q+8|0;m=t;return g|0}Q=r[14500]|0;if(Q>>>0>x>>>0){q=Q-x|0;r[14500]=q;z=r[14503]|0;Z=z+x|0;r[14503]=Z;r[Z+4>>2]=q|1;r[z+4>>2]=x|3;g=z+8|0;m=t;return g|0}if(!(r[14615]|0)){r[14617]=4096;r[14616]=4096;r[14618]=-1;r[14619]=-1;r[14620]=0;r[14608]=0;z=n&-16^1431655768;r[n>>2]=z;r[14615]=z;ee=4096}else ee=r[14617]|0;z=x+48|0;n=x+47|0;q=ee+n|0;Z=0-ee|0;ee=q&Z;if(ee>>>0<=x>>>0){g=0;m=t;return g|0}Y=r[14607]|0;if(Y|0?(J=r[14605]|0,X=J+ee|0,X>>>0<=J>>>0|X>>>0>Y>>>0):0){g=0;m=t;return g|0}e:do if(!(r[14608]&4)){Y=r[14503]|0;t:do if(Y){X=58436;while(1){J=r[X>>2]|0;if(J>>>0<=Y>>>0?(te=X+4|0,(J+(r[te>>2]|0)|0)>>>0>Y>>>0):0)break;J=r[X+8>>2]|0;if(!J){N=163;break t}else X=J}_=q-Q&Z;if(_>>>0<2147483647){J=si(_|0)|0;if((J|0)==((r[X>>2]|0)+(r[te>>2]|0)|0))if((J|0)==(-1|0))ne=_;else{ie=J;ae=_;N=180;break e}else{re=J;oe=_;N=171}}else ne=0}else N=163;while(0);do if((N|0)==163){Y=si(0)|0;if((Y|0)!=(-1|0)?(y=Y,_=r[14616]|0,J=_+-1|0,W=((J&y|0)==0?0:(J+y&0-_)-y|0)+ee|0,y=r[14605]|0,_=W+y|0,W>>>0>x>>>0&W>>>0<2147483647):0){J=r[14607]|0;if(J|0?_>>>0<=y>>>0|_>>>0>J>>>0:0){ne=0;break}J=si(W|0)|0;if((J|0)==(Y|0)){ie=Y;ae=W;N=180;break e}else{re=J;oe=W;N=171}}else ne=0}while(0);do if((N|0)==171){W=0-oe|0;if(!(z>>>0>oe>>>0&(oe>>>0<2147483647&(re|0)!=(-1|0))))if((re|0)==(-1|0)){ne=0;break}else{ie=re;ae=oe;N=180;break e}J=r[14617]|0;Y=n-oe+J&0-J;if(Y>>>0>=2147483647){ie=re;ae=oe;N=180;break e}if((si(Y|0)|0)==(-1|0)){si(W|0)|0;ne=0;break}else{ie=re;ae=Y+oe|0;N=180;break e}}while(0);r[14608]=r[14608]|4;se=ne;N=178}else{se=0;N=178}while(0);if(((N|0)==178?ee>>>0<2147483647:0)?(ne=si(ee|0)|0,ee=si(0)|0,oe=ee-ne|0,re=oe>>>0>(x+40|0)>>>0,!((ne|0)==(-1|0)|re^1|ne>>>0<ee>>>0&((ne|0)!=(-1|0)&(ee|0)!=(-1|0))^1)):0){ie=ne;ae=re?oe:se;N=180}if((N|0)==180){se=(r[14605]|0)+ae|0;r[14605]=se;if(se>>>0>(r[14606]|0)>>>0)r[14606]=se;se=r[14503]|0;do if(se){oe=58436;while(1){le=r[oe>>2]|0;ce=oe+4|0;de=r[ce>>2]|0;if((ie|0)==(le+de|0)){N=190;break}re=r[oe+8>>2]|0;if(!re)break;else oe=re}if(((N|0)==190?(r[oe+12>>2]&8|0)==0:0)?se>>>0<ie>>>0&se>>>0>=le>>>0:0){r[ce>>2]=de+ae;re=se+8|0;ne=(re&7|0)==0?0:0-re&7;re=se+ne|0;ee=(r[14500]|0)+(ae-ne)|0;r[14503]=re;r[14500]=ee;r[re+4>>2]=ee|1;r[re+ee+4>>2]=40;r[14504]=r[14619];break}ee=r[14501]|0;if(ie>>>0<ee>>>0){r[14501]=ie;ue=ie}else ue=ee;ee=ie+ae|0;re=58436;while(1){if((r[re>>2]|0)==(ee|0)){N=198;break}ne=r[re+8>>2]|0;if(!ne)break;else re=ne}if((N|0)==198?(r[re+12>>2]&8|0)==0:0){r[re>>2]=ie;oe=re+4|0;r[oe>>2]=(r[oe>>2]|0)+ae;oe=ie+8|0;ne=ie+((oe&7|0)==0?0:0-oe&7)|0;oe=ee+8|0;n=ee+((oe&7|0)==0?0:0-oe&7)|0;oe=ne+x|0;z=n-ne-x|0;r[ne+4>>2]=x|3;do if((n|0)!=(se|0)){if((n|0)==(r[14502]|0)){te=(r[14499]|0)+z|0;r[14499]=te;r[14502]=oe;r[oe+4>>2]=te|1;r[oe+te>>2]=te;break}te=r[n+4>>2]|0;if((te&3|0)==1){Z=te&-8;Q=te>>>3;e:do if(te>>>0>=256){q=r[n+24>>2]|0;Y=r[n+12>>2]|0;do if((Y|0)==(n|0)){W=n+16|0;J=W+4|0;_=r[J>>2]|0;if(!_){y=r[W>>2]|0;if(!y){fe=0;break}else{me=y;he=W}}else{me=_;he=J}while(1){J=me+20|0;_=r[J>>2]|0;if(_|0){me=_;he=J;continue}J=me+16|0;_=r[J>>2]|0;if(!_)break;else{me=_;he=J}}if(he>>>0<ue>>>0)pe();else{r[he>>2]=0;fe=me;break}}else{J=r[n+8>>2]|0;if(J>>>0<ue>>>0)pe();_=J+12|0;if((r[_>>2]|0)!=(n|0))pe();W=Y+8|0;if((r[W>>2]|0)==(n|0)){r[_>>2]=Y;r[W>>2]=J;fe=Y;break}else pe()}while(0);if(!q)break;Y=r[n+28>>2]|0;J=58292+(Y<<2)|0;do if((n|0)!=(r[J>>2]|0))if(q>>>0>=(r[14501]|0)>>>0){r[q+16+(((r[q+16>>2]|0)!=(n|0)&1)<<2)>>2]=fe;if(!fe)break e;else break}else pe();else{r[J>>2]=fe;if(fe|0)break;r[14498]=r[14498]&~(1<<Y);break e}while(0);Y=r[14501]|0;if(fe>>>0<Y>>>0)pe();r[fe+24>>2]=q;J=n+16|0;W=r[J>>2]|0;do if(W|0)if(W>>>0<Y>>>0)pe();else{r[fe+16>>2]=W;r[W+24>>2]=fe;break}while(0);W=r[J+4>>2]|0;if(!W)break;if(W>>>0<(r[14501]|0)>>>0)pe();else{r[fe+20>>2]=W;r[W+24>>2]=fe;break}}else{W=r[n+8>>2]|0;Y=r[n+12>>2]|0;q=58028+(Q<<1<<2)|0;do if((W|0)!=(q|0)){if(W>>>0<ue>>>0)pe();if((r[W+12>>2]|0)==(n|0))break;pe()}while(0);if((Y|0)==(W|0)){r[14497]=r[14497]&~(1<<Q);break}do if((Y|0)==(q|0))ge=Y+8|0;else{if(Y>>>0<ue>>>0)pe();J=Y+8|0;if((r[J>>2]|0)==(n|0)){ge=J;break}pe()}while(0);r[W+12>>2]=Y;r[ge>>2]=W}while(0);_e=n+Z|0;ve=Z+z|0}else{_e=n;ve=z}Q=_e+4|0;r[Q>>2]=r[Q>>2]&-2;r[oe+4>>2]=ve|1;r[oe+ve>>2]=ve;Q=ve>>>3;if(ve>>>0<256){te=58028+(Q<<1<<2)|0;X=r[14497]|0;q=1<<Q;do if(!(X&q)){r[14497]=X|q;ye=te+8|0;be=te}else{Q=te+8|0;J=r[Q>>2]|0;if(J>>>0>=(r[14501]|0)>>>0){ye=Q;be=J;break}pe()}while(0);r[ye>>2]=oe;r[be+12>>2]=oe;r[oe+8>>2]=be;r[oe+12>>2]=te;break}q=ve>>>8;do if(!q)we=0;else{if(ve>>>0>16777215){we=31;break}X=(q+1048320|0)>>>16&8;Z=q<<X;J=(Z+520192|0)>>>16&4;Q=Z<<J;Z=(Q+245760|0)>>>16&2;_=14-(J|X|Z)+(Q<<Z>>>15)|0;we=ve>>>(_+7|0)&1|_<<1}while(0);q=58292+(we<<2)|0;r[oe+28>>2]=we;te=oe+16|0;r[te+4>>2]=0;r[te>>2]=0;te=r[14498]|0;_=1<<we;if(!(te&_)){r[14498]=te|_;r[q>>2]=oe;r[oe+24>>2]=q;r[oe+12>>2]=oe;r[oe+8>>2]=oe;break}_=ve<<((we|0)==31?0:25-(we>>>1)|0);te=r[q>>2]|0;while(1){if((r[te+4>>2]&-8|0)==(ve|0)){N=265;break}ke=te+16+(_>>>31<<2)|0;q=r[ke>>2]|0;if(!q){N=262;break}else{_=_<<1;te=q}}if((N|0)==262)if(ke>>>0<(r[14501]|0)>>>0)pe();else{r[ke>>2]=oe;r[oe+24>>2]=te;r[oe+12>>2]=oe;r[oe+8>>2]=oe;break}else if((N|0)==265){_=te+8|0;q=r[_>>2]|0;Z=r[14501]|0;if(q>>>0>=Z>>>0&te>>>0>=Z>>>0){r[q+12>>2]=oe;r[_>>2]=oe;r[oe+8>>2]=q;r[oe+12>>2]=te;r[oe+24>>2]=0;break}else pe()}}else{q=(r[14500]|0)+z|0;r[14500]=q;r[14503]=oe;r[oe+4>>2]=q|1}while(0);g=ne+8|0;m=t;return g|0}oe=58436;while(1){z=r[oe>>2]|0;if(z>>>0<=se>>>0?(Me=z+(r[oe+4>>2]|0)|0,Me>>>0>se>>>0):0)break;oe=r[oe+8>>2]|0}oe=Me+-47|0;ne=oe+8|0;z=oe+((ne&7|0)==0?0:0-ne&7)|0;ne=se+16|0;oe=z>>>0<ne>>>0?se:z;z=oe+8|0;n=ie+8|0;ee=(n&7|0)==0?0:0-n&7;n=ie+ee|0;re=ae+-40-ee|0;r[14503]=n;r[14500]=re;r[n+4>>2]=re|1;r[n+re+4>>2]=40;r[14504]=r[14619];re=oe+4|0;r[re>>2]=27;r[z>>2]=r[14609];r[z+4>>2]=r[14610];r[z+8>>2]=r[14611];r[z+12>>2]=r[14612];r[14609]=ie;r[14610]=ae;r[14612]=0;r[14611]=z;z=oe+24|0;do{n=z;z=z+4|0;r[z>>2]=7}while((n+8|0)>>>0<Me>>>0);if((oe|0)!=(se|0)){z=oe-se|0;r[re>>2]=r[re>>2]&-2;r[se+4>>2]=z|1;r[oe>>2]=z;n=z>>>3;if(z>>>0<256){ee=58028+(n<<1<<2)|0;q=r[14497]|0;_=1<<n;if(q&_){n=ee+8|0;Z=r[n>>2]|0;if(Z>>>0<(r[14501]|0)>>>0)pe();else{Se=n;Ae=Z}}else{r[14497]=q|_;Se=ee+8|0;Ae=ee}r[Se>>2]=se;r[Ae+12>>2]=se;r[se+8>>2]=Ae;r[se+12>>2]=ee;break}ee=z>>>8;if(ee)if(z>>>0>16777215)Ce=31;else{_=(ee+1048320|0)>>>16&8;q=ee<<_;ee=(q+520192|0)>>>16&4;Z=q<<ee;q=(Z+245760|0)>>>16&2;n=14-(ee|_|q)+(Z<<q>>>15)|0;Ce=z>>>(n+7|0)&1|n<<1}else Ce=0;n=58292+(Ce<<2)|0;r[se+28>>2]=Ce;r[se+20>>2]=0;r[ne>>2]=0;q=r[14498]|0;Z=1<<Ce;if(!(q&Z)){r[14498]=q|Z;r[n>>2]=se;r[se+24>>2]=n;r[se+12>>2]=se;r[se+8>>2]=se;break}Z=z<<((Ce|0)==31?0:25-(Ce>>>1)|0);q=r[n>>2]|0;while(1){if((r[q+4>>2]&-8|0)==(z|0)){N=292;break}Te=q+16+(Z>>>31<<2)|0;n=r[Te>>2]|0;if(!n){N=289;break}else{Z=Z<<1;q=n}}if((N|0)==289)if(Te>>>0<(r[14501]|0)>>>0)pe();else{r[Te>>2]=se;r[se+24>>2]=q;r[se+12>>2]=se;r[se+8>>2]=se;break}else if((N|0)==292){Z=q+8|0;z=r[Z>>2]|0;ne=r[14501]|0;if(z>>>0>=ne>>>0&q>>>0>=ne>>>0){r[z+12>>2]=se;r[Z>>2]=se;r[se+8>>2]=z;r[se+12>>2]=q;r[se+24>>2]=0;break}else pe()}}}else{z=r[14501]|0;if((z|0)==0|ie>>>0<z>>>0)r[14501]=ie;r[14609]=ie;r[14610]=ae;r[14612]=0;r[14506]=r[14615];r[14505]=-1;z=0;do{Z=58028+(z<<1<<2)|0;r[Z+12>>2]=Z;r[Z+8>>2]=Z;z=z+1|0}while((z|0)!=32);z=ie+8|0;q=(z&7|0)==0?0:0-z&7;z=ie+q|0;Z=ae+-40-q|0;r[14503]=z;r[14500]=Z;r[z+4>>2]=Z|1;r[z+Z+4>>2]=40;r[14504]=r[14619]}while(0);ae=r[14500]|0;if(ae>>>0>x>>>0){ie=ae-x|0;r[14500]=ie;ae=r[14503]|0;se=ae+x|0;r[14503]=se;r[se+4>>2]=ie|1;r[ae+4>>2]=x|3;g=ae+8|0;m=t;return g|0}}r[(Dn()|0)>>2]=12;g=0;m=t;return g|0}function Xn(e){e=e|0;var t=0,n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0,I=0,x=0,P=0;if(!e)return;t=e+-8|0;n=r[14501]|0;if(t>>>0<n>>>0)pe();i=r[e+-4>>2]|0;e=i&3;if((e|0)==1)pe();a=i&-8;o=t+a|0;e:do if(!(i&1)){s=r[t>>2]|0;if(!e)return;l=t+(0-s)|0;c=s+a|0;if(l>>>0<n>>>0)pe();if((l|0)==(r[14502]|0)){d=o+4|0;u=r[d>>2]|0;if((u&3|0)!=3){p=l;f=l;m=c;break}r[14499]=c;r[d>>2]=u&-2;r[l+4>>2]=c|1;r[l+c>>2]=c;return}u=s>>>3;if(s>>>0<256){s=r[l+8>>2]|0;d=r[l+12>>2]|0;h=58028+(u<<1<<2)|0;if((s|0)!=(h|0)){if(s>>>0<n>>>0)pe();if((r[s+12>>2]|0)!=(l|0))pe()}if((d|0)==(s|0)){r[14497]=r[14497]&~(1<<u);p=l;f=l;m=c;break}if((d|0)!=(h|0)){if(d>>>0<n>>>0)pe();h=d+8|0;if((r[h>>2]|0)==(l|0))g=h;else pe()}else g=d+8|0;r[s+12>>2]=d;r[g>>2]=s;p=l;f=l;m=c;break}s=r[l+24>>2]|0;d=r[l+12>>2]|0;do if((d|0)==(l|0)){h=l+16|0;u=h+4|0;_=r[u>>2]|0;if(!_){v=r[h>>2]|0;if(!v){y=0;break}else{b=v;w=h}}else{b=_;w=u}while(1){u=b+20|0;_=r[u>>2]|0;if(_|0){b=_;w=u;continue}u=b+16|0;_=r[u>>2]|0;if(!_)break;else{b=_;w=u}}if(w>>>0<n>>>0)pe();else{r[w>>2]=0;y=b;break}}else{u=r[l+8>>2]|0;if(u>>>0<n>>>0)pe();_=u+12|0;if((r[_>>2]|0)!=(l|0))pe();h=d+8|0;if((r[h>>2]|0)==(l|0)){r[_>>2]=d;r[h>>2]=u;y=d;break}else pe()}while(0);if(s){d=r[l+28>>2]|0;u=58292+(d<<2)|0;do if((l|0)==(r[u>>2]|0)){r[u>>2]=y;if(!y){r[14498]=r[14498]&~(1<<d);p=l;f=l;m=c;break e}}else if(s>>>0>=(r[14501]|0)>>>0){r[s+16+(((r[s+16>>2]|0)!=(l|0)&1)<<2)>>2]=y;if(!y){p=l;f=l;m=c;break e}else break}else pe();while(0);d=r[14501]|0;if(y>>>0<d>>>0)pe();r[y+24>>2]=s;u=l+16|0;h=r[u>>2]|0;do if(h|0)if(h>>>0<d>>>0)pe();else{r[y+16>>2]=h;r[h+24>>2]=y;break}while(0);h=r[u+4>>2]|0;if(h)if(h>>>0<(r[14501]|0)>>>0)pe();else{r[y+20>>2]=h;r[h+24>>2]=y;p=l;f=l;m=c;break}else{p=l;f=l;m=c}}else{p=l;f=l;m=c}}else{p=t;f=t;m=a}while(0);if(p>>>0>=o>>>0)pe();a=o+4|0;t=r[a>>2]|0;if(!(t&1))pe();if(!(t&2)){y=r[14502]|0;if((o|0)==(r[14503]|0)){n=(r[14500]|0)+m|0;r[14500]=n;r[14503]=f;r[f+4>>2]=n|1;if((f|0)!=(y|0))return;r[14502]=0;r[14499]=0;return}if((o|0)==(y|0)){y=(r[14499]|0)+m|0;r[14499]=y;r[14502]=p;r[f+4>>2]=y|1;r[p+y>>2]=y;return}y=(t&-8)+m|0;n=t>>>3;e:do if(t>>>0>=256){b=r[o+24>>2]|0;w=r[o+12>>2]|0;do if((w|0)==(o|0)){g=o+16|0;e=g+4|0;i=r[e>>2]|0;if(!i){h=r[g>>2]|0;if(!h){k=0;break}else{M=h;S=g}}else{M=i;S=e}while(1){e=M+20|0;i=r[e>>2]|0;if(i|0){M=i;S=e;continue}e=M+16|0;i=r[e>>2]|0;if(!i)break;else{M=i;S=e}}if(S>>>0<(r[14501]|0)>>>0)pe();else{r[S>>2]=0;k=M;break}}else{e=r[o+8>>2]|0;if(e>>>0<(r[14501]|0)>>>0)pe();i=e+12|0;if((r[i>>2]|0)!=(o|0))pe();g=w+8|0;if((r[g>>2]|0)==(o|0)){r[i>>2]=w;r[g>>2]=e;k=w;break}else pe()}while(0);if(b|0){w=r[o+28>>2]|0;c=58292+(w<<2)|0;do if((o|0)==(r[c>>2]|0)){r[c>>2]=k;if(!k){r[14498]=r[14498]&~(1<<w);break e}}else if(b>>>0>=(r[14501]|0)>>>0){r[b+16+(((r[b+16>>2]|0)!=(o|0)&1)<<2)>>2]=k;if(!k)break e;else break}else pe();while(0);w=r[14501]|0;if(k>>>0<w>>>0)pe();r[k+24>>2]=b;c=o+16|0;l=r[c>>2]|0;do if(l|0)if(l>>>0<w>>>0)pe();else{r[k+16>>2]=l;r[l+24>>2]=k;break}while(0);l=r[c+4>>2]|0;if(l|0)if(l>>>0<(r[14501]|0)>>>0)pe();else{r[k+20>>2]=l;r[l+24>>2]=k;break}}}else{l=r[o+8>>2]|0;w=r[o+12>>2]|0;b=58028+(n<<1<<2)|0;if((l|0)!=(b|0)){if(l>>>0<(r[14501]|0)>>>0)pe();if((r[l+12>>2]|0)!=(o|0))pe()}if((w|0)==(l|0)){r[14497]=r[14497]&~(1<<n);break}if((w|0)!=(b|0)){if(w>>>0<(r[14501]|0)>>>0)pe();b=w+8|0;if((r[b>>2]|0)==(o|0))A=b;else pe()}else A=w+8|0;r[l+12>>2]=w;r[A>>2]=l}while(0);r[f+4>>2]=y|1;r[p+y>>2]=y;if((f|0)==(r[14502]|0)){r[14499]=y;return}else C=y}else{r[a>>2]=t&-2;r[f+4>>2]=m|1;r[p+m>>2]=m;C=m}m=C>>>3;if(C>>>0<256){p=58028+(m<<1<<2)|0;t=r[14497]|0;a=1<<m;if(t&a){m=p+8|0;y=r[m>>2]|0;if(y>>>0<(r[14501]|0)>>>0)pe();else{T=m;E=y}}else{r[14497]=t|a;T=p+8|0;E=p}r[T>>2]=f;r[E+12>>2]=f;r[f+8>>2]=E;r[f+12>>2]=p;return}p=C>>>8;if(p)if(C>>>0>16777215)$=31;else{E=(p+1048320|0)>>>16&8;T=p<<E;p=(T+520192|0)>>>16&4;a=T<<p;T=(a+245760|0)>>>16&2;t=14-(p|E|T)+(a<<T>>>15)|0;$=C>>>(t+7|0)&1|t<<1}else $=0;t=58292+($<<2)|0;r[f+28>>2]=$;r[f+20>>2]=0;r[f+16>>2]=0;T=r[14498]|0;a=1<<$;do if(T&a){E=C<<(($|0)==31?0:25-($>>>1)|0);p=r[t>>2]|0;while(1){if((r[p+4>>2]&-8|0)==(C|0)){I=124;break}x=p+16+(E>>>31<<2)|0;y=r[x>>2]|0;if(!y){I=121;break}else{E=E<<1;p=y}}if((I|0)==121)if(x>>>0<(r[14501]|0)>>>0)pe();else{r[x>>2]=f;r[f+24>>2]=p;r[f+12>>2]=f;r[f+8>>2]=f;break}else if((I|0)==124){E=p+8|0;c=r[E>>2]|0;y=r[14501]|0;if(c>>>0>=y>>>0&p>>>0>=y>>>0){r[c+12>>2]=f;r[E>>2]=f;r[f+8>>2]=c;r[f+12>>2]=p;r[f+24>>2]=0;break}else pe()}}else{r[14498]=T|a;r[t>>2]=f;r[f+24>>2]=t;r[f+12>>2]=f;r[f+8>>2]=f}while(0);f=(r[14505]|0)+-1|0;r[14505]=f;if(!f)P=58444;else return;while(1){f=r[P>>2]|0;if(!f)break;else P=f+8|0}r[14505]=-1;return}function Jn(e,t){e=e|0;t=t|0;var n=0,i=0;if(e){n=W(t,e)|0;if((t|e)>>>0>65535)i=((n>>>0)/(e>>>0)|0|0)==(t|0)?n:-1;else i=n}else i=0;n=Yn(i)|0;if(!n)return n|0;if(!(r[n+-4>>2]&3))return n|0;ai(n|0,0,i|0)|0;return n|0}function Zn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0;if(!e){n=Yn(t)|0;return n|0}if(t>>>0>4294967231){r[(Dn()|0)>>2]=12;n=0;return n|0}i=Qn(e+-8|0,t>>>0<11?16:t+11&-8)|0;if(i|0){n=i+8|0;return n|0}i=Yn(t)|0;if(!i){n=0;return n|0}a=r[e+-4>>2]|0;o=(a&-8)-((a&3|0)==0?8:4)|0;li(i|0,e|0,(o>>>0<t>>>0?o:t)|0)|0;Xn(e);n=i;return n|0}function Qn(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0;n=e+4|0;i=r[n>>2]|0;a=i&-8;o=e+a|0;s=r[14501]|0;l=i&3;if(!((l|0)!=1&e>>>0>=s>>>0&e>>>0<o>>>0))pe();c=r[o+4>>2]|0;if(!(c&1))pe();if(!l){if(t>>>0<256){d=0;return d|0}if(a>>>0>=(t+4|0)>>>0?(a-t|0)>>>0<=r[14617]<<1>>>0:0){d=e;return d|0}d=0;return d|0}if(a>>>0>=t>>>0){l=a-t|0;if(l>>>0<=15){d=e;return d|0}u=e+t|0;r[n>>2]=i&1|t|2;r[u+4>>2]=l|3;p=u+l+4|0;r[p>>2]=r[p>>2]|1;ei(u,l);d=e;return d|0}if((o|0)==(r[14503]|0)){l=(r[14500]|0)+a|0;u=l-t|0;p=e+t|0;if(l>>>0<=t>>>0){d=0;return d|0}r[n>>2]=i&1|t|2;r[p+4>>2]=u|1;r[14503]=p;r[14500]=u;d=e;return d|0}if((o|0)==(r[14502]|0)){u=(r[14499]|0)+a|0;if(u>>>0<t>>>0){d=0;return d|0}p=u-t|0;l=i&1;if(p>>>0>15){f=e+t|0;m=f+p|0;r[n>>2]=l|t|2;r[f+4>>2]=p|1;r[m>>2]=p;h=m+4|0;r[h>>2]=r[h>>2]&-2;g=f;_=p}else{r[n>>2]=l|u|2;l=e+u+4|0;r[l>>2]=r[l>>2]|1;g=0;_=0}r[14499]=_;r[14502]=g;d=e;return d|0}if(c&2|0){d=0;return d|0}g=(c&-8)+a|0;if(g>>>0<t>>>0){d=0;return d|0}a=g-t|0;_=c>>>3;e:do if(c>>>0>=256){l=r[o+24>>2]|0;u=r[o+12>>2]|0;do if((u|0)==(o|0)){p=o+16|0;f=p+4|0;h=r[f>>2]|0;if(!h){m=r[p>>2]|0;if(!m){v=0;break}else{y=m;b=p}}else{y=h;b=f}while(1){f=y+20|0;h=r[f>>2]|0;if(h|0){y=h;b=f;continue}f=y+16|0;h=r[f>>2]|0;if(!h)break;else{y=h;b=f}}if(b>>>0<s>>>0)pe();else{r[b>>2]=0;v=y;break}}else{f=r[o+8>>2]|0;if(f>>>0<s>>>0)pe();h=f+12|0;if((r[h>>2]|0)!=(o|0))pe();p=u+8|0;if((r[p>>2]|0)==(o|0)){r[h>>2]=u;r[p>>2]=f;v=u;break}else pe()}while(0);if(l|0){u=r[o+28>>2]|0;f=58292+(u<<2)|0;do if((o|0)==(r[f>>2]|0)){r[f>>2]=v;if(!v){r[14498]=r[14498]&~(1<<u);break e}}else if(l>>>0>=(r[14501]|0)>>>0){r[l+16+(((r[l+16>>2]|0)!=(o|0)&1)<<2)>>2]=v;if(!v)break e;else break}else pe();while(0);u=r[14501]|0;if(v>>>0<u>>>0)pe();r[v+24>>2]=l;f=o+16|0;p=r[f>>2]|0;do if(p|0)if(p>>>0<u>>>0)pe();else{r[v+16>>2]=p;r[p+24>>2]=v;break}while(0);p=r[f+4>>2]|0;if(p|0)if(p>>>0<(r[14501]|0)>>>0)pe();else{r[v+20>>2]=p;r[p+24>>2]=v;break}}}else{p=r[o+8>>2]|0;u=r[o+12>>2]|0;l=58028+(_<<1<<2)|0;if((p|0)!=(l|0)){if(p>>>0<s>>>0)pe();if((r[p+12>>2]|0)!=(o|0))pe()}if((u|0)==(p|0)){r[14497]=r[14497]&~(1<<_);break}if((u|0)!=(l|0)){if(u>>>0<s>>>0)pe();l=u+8|0;if((r[l>>2]|0)==(o|0))w=l;else pe()}else w=u+8|0;r[p+12>>2]=u;r[w>>2]=p}while(0);w=i&1;if(a>>>0<16){r[n>>2]=g|w|2;i=e+g+4|0;r[i>>2]=r[i>>2]|1;d=e;return d|0}else{i=e+t|0;r[n>>2]=w|t|2;r[i+4>>2]=a|3;t=i+a+4|0;r[t>>2]=r[t>>2]|1;ei(i,a);d=e;return d|0}return 0}function ei(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,o=0,s=0,l=0,c=0,d=0,u=0,p=0,f=0,m=0,h=0,g=0,_=0,v=0,y=0,b=0,w=0,k=0,M=0,S=0,A=0,C=0,T=0,E=0,$=0;n=e+t|0;i=r[e+4>>2]|0;e:do if(!(i&1)){a=r[e>>2]|0;if(!(i&3))return;o=e+(0-a)|0;s=a+t|0;l=r[14501]|0;if(o>>>0<l>>>0)pe();if((o|0)==(r[14502]|0)){c=n+4|0;d=r[c>>2]|0;if((d&3|0)!=3){u=o;p=s;break}r[14499]=s;r[c>>2]=d&-2;r[o+4>>2]=s|1;r[o+s>>2]=s;return}d=a>>>3;if(a>>>0<256){a=r[o+8>>2]|0;c=r[o+12>>2]|0;f=58028+(d<<1<<2)|0;if((a|0)!=(f|0)){if(a>>>0<l>>>0)pe();if((r[a+12>>2]|0)!=(o|0))pe()}if((c|0)==(a|0)){r[14497]=r[14497]&~(1<<d);u=o;p=s;break}if((c|0)!=(f|0)){if(c>>>0<l>>>0)pe();f=c+8|0;if((r[f>>2]|0)==(o|0))m=f;else pe()}else m=c+8|0;r[a+12>>2]=c;r[m>>2]=a;u=o;p=s;break}a=r[o+24>>2]|0;c=r[o+12>>2]|0;do if((c|0)==(o|0)){f=o+16|0;d=f+4|0;h=r[d>>2]|0;if(!h){g=r[f>>2]|0;if(!g){_=0;break}else{v=g;y=f}}else{v=h;y=d}while(1){d=v+20|0;h=r[d>>2]|0;if(h|0){v=h;y=d;continue}d=v+16|0;h=r[d>>2]|0;if(!h)break;else{v=h;y=d}}if(y>>>0<l>>>0)pe();else{r[y>>2]=0;_=v;break}}else{d=r[o+8>>2]|0;if(d>>>0<l>>>0)pe();h=d+12|0;if((r[h>>2]|0)!=(o|0))pe();f=c+8|0;if((r[f>>2]|0)==(o|0)){r[h>>2]=c;r[f>>2]=d;_=c;break}else pe()}while(0);if(a){c=r[o+28>>2]|0;l=58292+(c<<2)|0;do if((o|0)==(r[l>>2]|0)){r[l>>2]=_;if(!_){r[14498]=r[14498]&~(1<<c);u=o;p=s;break e}}else if(a>>>0>=(r[14501]|0)>>>0){r[a+16+(((r[a+16>>2]|0)!=(o|0)&1)<<2)>>2]=_;if(!_){u=o;p=s;break e}else break}else pe();while(0);c=r[14501]|0;if(_>>>0<c>>>0)pe();r[_+24>>2]=a;l=o+16|0;d=r[l>>2]|0;do if(d|0)if(d>>>0<c>>>0)pe();else{r[_+16>>2]=d;r[d+24>>2]=_;break}while(0);d=r[l+4>>2]|0;if(d)if(d>>>0<(r[14501]|0)>>>0)pe();else{r[_+20>>2]=d;r[d+24>>2]=_;u=o;p=s;break}else{u=o;p=s}}else{u=o;p=s}}else{u=e;p=t}while(0);t=r[14501]|0;if(n>>>0<t>>>0)pe();e=n+4|0;_=r[e>>2]|0;if(!(_&2)){v=r[14502]|0;if((n|0)==(r[14503]|0)){y=(r[14500]|0)+p|0;r[14500]=y;r[14503]=u;r[u+4>>2]=y|1;if((u|0)!=(v|0))return;r[14502]=0;r[14499]=0;return}if((n|0)==(v|0)){v=(r[14499]|0)+p|0;r[14499]=v;r[14502]=u;r[u+4>>2]=v|1;r[u+v>>2]=v;return}v=(_&-8)+p|0;y=_>>>3;e:do if(_>>>0>=256){m=r[n+24>>2]|0;i=r[n+12>>2]|0;do if((i|0)==(n|0)){d=n+16|0;c=d+4|0;a=r[c>>2]|0;if(!a){f=r[d>>2]|0;if(!f){b=0;break}else{w=f;k=d}}else{w=a;k=c}while(1){c=w+20|0;a=r[c>>2]|0;if(a|0){w=a;k=c;continue}c=w+16|0;a=r[c>>2]|0;if(!a)break;else{w=a;k=c}}if(k>>>0<t>>>0)pe();else{r[k>>2]=0;b=w;break}}else{c=r[n+8>>2]|0;if(c>>>0<t>>>0)pe();a=c+12|0;if((r[a>>2]|0)!=(n|0))pe();d=i+8|0;if((r[d>>2]|0)==(n|0)){r[a>>2]=i;r[d>>2]=c;b=i;break}else pe()}while(0);if(m|0){i=r[n+28>>2]|0;s=58292+(i<<2)|0;do if((n|0)==(r[s>>2]|0)){r[s>>2]=b;if(!b){r[14498]=r[14498]&~(1<<i);break e}}else if(m>>>0>=(r[14501]|0)>>>0){r[m+16+(((r[m+16>>2]|0)!=(n|0)&1)<<2)>>2]=b;if(!b)break e;else break}else pe();while(0);i=r[14501]|0;if(b>>>0<i>>>0)pe();r[b+24>>2]=m;s=n+16|0;o=r[s>>2]|0;do if(o|0)if(o>>>0<i>>>0)pe();else{r[b+16>>2]=o;r[o+24>>2]=b;break}while(0);o=r[s+4>>2]|0;if(o|0)if(o>>>0<(r[14501]|0)>>>0)pe();else{r[b+20>>2]=o;r[o+24>>2]=b;break}}}else{o=r[n+8>>2]|0;i=r[n+12>>2]|0;m=58028+(y<<1<<2)|0;if((o|0)!=(m|0)){if(o>>>0<t>>>0)pe();if((r[o+12>>2]|0)!=(n|0))pe()}if((i|0)==(o|0)){r[14497]=r[14497]&~(1<<y);break}if((i|0)!=(m|0)){if(i>>>0<t>>>0)pe();m=i+8|0;if((r[m>>2]|0)==(n|0))M=m;else pe()}else M=i+8|0;r[o+12>>2]=i;r[M>>2]=o}while(0);r[u+4>>2]=v|1;r[u+v>>2]=v;if((u|0)==(r[14502]|0)){r[14499]=v;return}else S=v}else{r[e>>2]=_&-2;r[u+4>>2]=p|1;r[u+p>>2]=p;S=p}p=S>>>3;if(S>>>0<256){_=58028+(p<<1<<2)|0;e=r[14497]|0;v=1<<p;if(e&v){p=_+8|0;M=r[p>>2]|0;if(M>>>0<(r[14501]|0)>>>0)pe();else{A=p;C=M}}else{r[14497]=e|v;A=_+8|0;C=_}r[A>>2]=u;r[C+12>>2]=u;r[u+8>>2]=C;r[u+12>>2]=_;return}_=S>>>8;if(_)if(S>>>0>16777215)T=31;else{C=(_+1048320|0)>>>16&8;A=_<<C;_=(A+520192|0)>>>16&4;v=A<<_;A=(v+245760|0)>>>16&2;e=14-(_|C|A)+(v<<A>>>15)|0;T=S>>>(e+7|0)&1|e<<1}else T=0;e=58292+(T<<2)|0;r[u+28>>2]=T;r[u+20>>2]=0;r[u+16>>2]=0;A=r[14498]|0;v=1<<T;if(!(A&v)){r[14498]=A|v;r[e>>2]=u;r[u+24>>2]=e;r[u+12>>2]=u;r[u+8>>2]=u;return}v=S<<((T|0)==31?0:25-(T>>>1)|0);T=r[e>>2]|0;while(1){if((r[T+4>>2]&-8|0)==(S|0)){E=121;break}$=T+16+(v>>>31<<2)|0;e=r[$>>2]|0;if(!e){E=118;break}else{v=v<<1;T=e}}if((E|0)==118){if($>>>0<(r[14501]|0)>>>0)pe();r[$>>2]=u;r[u+24>>2]=T;r[u+12>>2]=u;r[u+8>>2]=u;return}else if((E|0)==121){E=T+8|0;$=r[E>>2]|0;v=r[14501]|0;if(!($>>>0>=v>>>0&T>>>0>=v>>>0))pe();r[$+12>>2]=u;r[E>>2]=u;r[u+8>>2]=$;r[u+12>>2]=T;r[u+24>>2]=0;return}}function ti(){}function ni(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0;a=t-i>>>0;a=t-i-(n>>>0>e>>>0|0)>>>0;return(x=a,e-n>>>0|0)|0}function ii(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0;a=e+n>>>0;return(x=t+i+(a>>>0<e>>>0|0)>>>0,a|0)|0}function ai(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0,l=0;a=e+n|0;t=t&255;if((n|0)>=67){while(e&3){i[e>>0]=t;e=e+1|0}o=a&-4|0;s=o-64|0;l=t|t<<8|t<<16|t<<24;while((e|0)<=(s|0)){r[e>>2]=l;r[e+4>>2]=l;r[e+8>>2]=l;r[e+12>>2]=l;r[e+16>>2]=l;r[e+20>>2]=l;r[e+24>>2]=l;r[e+28>>2]=l;r[e+32>>2]=l;r[e+36>>2]=l;r[e+40>>2]=l;r[e+44>>2]=l;r[e+48>>2]=l;r[e+52>>2]=l;r[e+56>>2]=l;r[e+60>>2]=l;e=e+64|0}while((e|0)<(o|0)){r[e>>2]=l;e=e+4|0}}while((e|0)<(a|0)){i[e>>0]=t;e=e+1|0}return a-n|0}function ri(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){x=t<<n|(e&(1<<n)-1<<32-n)>>>32-n;return e<<n}x=e<<n-32;return 0}function oi(e){e=e|0;return(e&255)<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function si(e){e=e|0;var t=0,n=0;e=e+15&-16|0;t=r[u>>2]|0;n=t+e|0;if((e|0)>0&(n|0)<(t|0)|(n|0)<0){ee()|0;fe(12);return-1}r[u>>2]=n;if((n|0)>(Q()|0)?(Z()|0)==0:0){fe(12);r[u>>2]=t;return-1}return t|0}function li(e,t,n){e=e|0;t=t|0;n=n|0;var a=0,o=0,s=0;if((n|0)>=8192)return he(e|0,t|0,n|0)|0;a=e|0;o=e+n|0;if((e&3)==(t&3)){while(e&3){if(!n)return a|0;i[e>>0]=i[t>>0]|0;e=e+1|0;t=t+1|0;n=n-1|0}s=o&-4|0;n=s-64|0;while((e|0)<=(n|0)){r[e>>2]=r[t>>2];r[e+4>>2]=r[t+4>>2];r[e+8>>2]=r[t+8>>2];r[e+12>>2]=r[t+12>>2];r[e+16>>2]=r[t+16>>2];r[e+20>>2]=r[t+20>>2];r[e+24>>2]=r[t+24>>2];r[e+28>>2]=r[t+28>>2];r[e+32>>2]=r[t+32>>2];r[e+36>>2]=r[t+36>>2];r[e+40>>2]=r[t+40>>2];r[e+44>>2]=r[t+44>>2];r[e+48>>2]=r[t+48>>2];r[e+52>>2]=r[t+52>>2];r[e+56>>2]=r[t+56>>2];r[e+60>>2]=r[t+60>>2];e=e+64|0;t=t+64|0}while((e|0)<(s|0)){r[e>>2]=r[t>>2];e=e+4|0;t=t+4|0}}else{s=o-4|0;while((e|0)<(s|0)){i[e>>0]=i[t>>0]|0;i[e+1>>0]=i[t+1>>0]|0;i[e+2>>0]=i[t+2>>0]|0;i[e+3>>0]=i[t+3>>0]|0;e=e+4|0;t=t+4|0}}while((e|0)<(o|0)){i[e>>0]=i[t>>0]|0;e=e+1|0;t=t+1|0}return a|0}function ci(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;return Ai[e&7](t|0,n|0,i|0,a|0)|0}function di(e,t){e=e|0;t=t|0;Ci[e&7](t|0)}function ui(e,t,n){e=e|0;t=t|0;n=n|0;Ti[e&3](t|0,n|0)}function pi(e,t){e=e|0;t=t|0;return Ei[e&1](t|0)|0}function fi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;$i[e&1](t|0,n|0,i|0)}function mi(e,t,n,i,a,r,o,s,l){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;r=r|0;o=o|0;s=s|0;l=l|0;return Ii[e&3](t|0,n|0,i|0,a|0,r|0,o|0,s|0,l|0)|0}function hi(e,t,n){e=e|0;t=t|0;n=n|0;return xi[e&15](t|0,n|0)|0}function gi(e,t,n,i,a,r){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;r=r|0;return Pi[e&7](t|0,n|0,i|0,a|0,r|0)|0}function _i(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;X(0);return 0}function vi(e){e=e|0;X(1)}function yi(e,t){e=e|0;t=t|0;X(2)}function bi(e){e=e|0;X(3);return 0}function wi(e,t,n){e=e|0;t=t|0;n=n|0;X(4)}function ki(e,t,n,i,a,r,o,s){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;r=r|0;o=o|0;s=s|0;X(5);return 0}function Mi(e,t){e=e|0;t=t|0;X(6);return 0}function Si(e,t,n,i,a){e=e|0;t=t|0;n=n|0;i=i|0;a=a|0;X(7);return 0}var Ai=[_i,Be,Xe,rt,ut,_i,_i,_i];var Ci=[vi,Le,Fe,Ge,Ke,nt,it,bt];var Ti=[yi,Re,st,yi];var Ei=[bi,wt];var $i=[wi,vt];var Ii=[ki,ct,ht,ki];var xi=[Mi,Oe,Ne,Ue,ze,We,Ye,et,tt,yt,kt,qe,Lt,cn,Mi,Mi];var Pi=[Si,at,lt,dt,mt,gt,Si,Si];return{_llvm_bswap_i32:oi,getTempRet0:Ae,setThrew:Me,_bitshift64Shl:ri,_memset:ai,_ogv_audio_decoder_process_header:En,_sbrk:si,_memcpy:li,stackAlloc:ye,_i64Subtract:ni,setTempRet0:Se,_i64Add:ii,_emscripten_get_global_libc:Pn,stackSave:be,_free:Xn,runPostSets:ti,_ogv_audio_decoder_destroy:In,_ogv_audio_decoder_init:Tn,establishStackSpace:ke,stackRestore:we,_malloc:Yn,_ogv_audio_decoder_process_audio:$n,stackAlloc:ye,stackSave:be,stackRestore:we,establishStackSpace:ke,setThrew:Me,setTempRet0:Se,getTempRet0:Ae,dynCall_iiiii:ci,dynCall_vi:di,dynCall_vii:ui,dynCall_ii:pi,dynCall_viii:fi,dynCall_iiiiiiiii:mi,dynCall_iii:hi,dynCall_iiiiii:gi}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,setThrew=Module.setThrew=asm.setThrew,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_ogv_audio_decoder_process_header=Module._ogv_audio_decoder_process_header=asm._ogv_audio_decoder_process_header,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,stackSave=Module.stackSave=asm.stackSave,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,_ogv_audio_decoder_destroy=Module._ogv_audio_decoder_destroy=asm._ogv_audio_decoder_destroy,_ogv_audio_decoder_init=Module._ogv_audio_decoder_init=asm._ogv_audio_decoder_init,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,_ogv_audio_decoder_process_audio=Module._ogv_audio_decoder_process_audio=asm._ogv_audio_decoder_process_audio,dynCall_iiiii=Module.dynCall_iiiii=asm.dynCall_iiiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_iiiiiiiii=Module.dynCall_iiiiiiiii=asm.dynCall_iiiiiiiii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm,Module.then=function(e){if(Module.calledRun)e(Module);else{var t=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){t&&t(),e(Module)}}return Module},ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){function t(){for(var e=0;e<3;e++)i.push(0)}e=e||[],ensureInitRuntime();var n=e.length+1,i=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];t();for(var a=0;a<n-1;a+=1)i.push(allocate(intArrayFromString(e[a]),"i8",ALLOC_NORMAL)),t();i.push(0),i=allocate(i,"i32",ALLOC_NORMAL);try{var r=Module._main(n,i,0);exit(r,!0)}catch(o){if(o instanceof ExitStatus)return;if("SimulateInfiniteLoop"==o)return void(Module.noExitRuntime=!0);var s=o;o&&"object"==typeof o&&o.stack&&(s=[o,o.stack]),Module.printErr("exception thrown: "+s),Module.quit(1,o)}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit;var abortDecorators=[];if(Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!1;Module.noInitialRun&&(shouldRunNow=!1),Module.noExitRuntime=!0,run();var inputBuffer,inputBufferSize,getTimestamp;return getTimestamp="undefined"==typeof performance||"undefined"==typeof performance.now?Date.now:performance.now.bind(performance),Module.loadedMetadata=!!options.audioFormat,Module.audioFormat=options.audioFormat||null,Module.audioBuffer=null,Module.cpuTime=0,Object.defineProperty(Module,"processing",{get:function(){return!1}}),Module.init=function(e){function t(){time(function(){Module._ogv_audio_decoder_init()}),e()}Module.wasmBinary?Module.onRuntimeInitialized=function(){t()}:t()},Module.processHeader=function(e,t){var n=time(function(){var t=e.byteLength,n=reallocInputBuffer(t);return Module.HEAPU8.set(new Uint8Array(e),n),Module._ogv_audio_decoder_process_header(n,t)});t(n)},Module.processAudio=function(e,t){var n=time(function(){var t=e.byteLength,n=reallocInputBuffer(t);return Module.HEAPU8.set(new Uint8Array(e),n),Module._ogv_audio_decoder_process_audio(n,t)});t(n)},Module.close=function(){},Math.imul=Math_imul_orig,OGVDecoderAudioVorbis}}(),function(e){function t(i){if(n[i])return n[i].exports;var a=n[i]={exports:{},id:i,loaded:!1};return e[i].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){!function(){var t=n(1),i="1.4.2-20170425024925-504d7197";window&&(window.OGVCompat=t,window.OGVVersion=i),e.exports={OGVCompat:t,OGVVersion:i}}()},function(e,t,n){var i=n(2),a={benchmark:new i,hasTypedArrays:function(){return!!window.Uint32Array},hasWebAudio:function(){return!(!window.AudioContext&&!window.webkitAudioContext)},hasFlash:function(){if(navigator.userAgent.indexOf("Trident")!==-1)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash");return!0}catch(e){return!1}return!1},hasAudio:function(){return this.hasWebAudio()||this.hasFlash()},isBlacklisted:function(e){var t=[/\(i.* OS [67]_.* like Mac OS X\).* Mobile\/.* Safari\//,/\(Macintosh.* Version\/6\..* Safari\/\d/],n=!1;return t.forEach(function(t){e.match(t)&&(n=!0)}),n},isSlow:function(){return this.benchmark.slow},isTooSlow:function(){return this.benchmark.tooSlow},supported:function(e){return"OGVDecoder"===e?this.hasTypedArrays()&&!this.isBlacklisted(navigator.userAgent):"OGVPlayer"===e&&(this.supported("OGVDecoder")&&this.hasAudio()&&!this.isTooSlow());
}};e.exports=a},function(e,t){function n(){function e(){var e=0,n=function(t){return e++,t<2?t:n(t-2)+n(t-1)},a=t();n(30);var r=t()-a;i=e/r}var t,n=this;t=window.performance&&window.performance.now?function(){return window.performance.now()}:function(){return Date.now()};var i=null;Object.defineProperty(n,"speed",{get:function(){return null===i&&e(),i}}),Object.defineProperty(n,"slowCutoff",{get:function(){return 5e4}}),Object.defineProperty(n,"tooSlowCutoff",{get:function(){return 0}}),Object.defineProperty(n,"slow",{get:function(){return n.speed<n.slowCutoff}}),Object.defineProperty(n,"tooSlow",{get:function(){return n.speed<n.tooSlowCutoff}})}e.exports=n}]),!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Recorder=t():e.Recorder=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var a=n[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){"use strict";(function(t){var i=n(2),a=function(e){var n=this,i=t.AudioContext||t.webkitAudioContext;if(!a.isRecordingSupported())throw new Error("Recording is not supported in this browser");this.state="inactive",this.eventTarget=t.document.createDocumentFragment(),this.audioContext=new i,this.monitorNode=this.audioContext.createGain(),this.config=Object.assign({bufferLength:4096,encoderApplication:2049,encoderFrameSize:20,encoderPath:"encoderWorker.min.js",encoderSampleRate:48e3,leaveStreamOpen:!1,maxBuffersPerPage:40,monitorGain:0,numberOfChannels:1,originalSampleRate:this.audioContext.sampleRate,resampleQuality:3,mediaTrackConstraints:!0,streamPages:!1,wavBitDepth:16,wavSampleRate:this.audioContext.sampleRate},e),this.initWorker(),this.setMonitorGain(this.config.monitorGain),this.scriptProcessorNode=this.audioContext.createScriptProcessor(this.config.bufferLength,this.config.numberOfChannels,this.config.numberOfChannels),this.scriptProcessorNode.onaudioprocess=function(e){n.encodeBuffers(e.inputBuffer)}};a.isRecordingSupported=function(){return(t.AudioContext||t.webkitAudioContext)&&i.isSupported},a.prototype.addEventListener=function(e,t,n){this.eventTarget.addEventListener(e,t,n)},a.prototype.clearStream=function(){this.stream&&(this.stream.getTracks?this.stream.getTracks().forEach(function(e){e.stop()}):this.stream.stop(),delete this.stream)},a.prototype.encodeBuffers=function(e){if("recording"===this.state){for(var t=[],n=0;n<e.numberOfChannels;n++)t[n]=e.getChannelData(n);this.encoder.postMessage({command:"encode",buffers:t})}},a.prototype.initStream=function(){var e=this,n=function(n){return e.stream=n,e.sourceNode=e.audioContext.createMediaStreamSource(n),e.sourceNode.connect(e.scriptProcessorNode),e.sourceNode.connect(e.monitorNode),e.eventTarget.dispatchEvent(new t.Event("streamReady")),n},a=function(n){throw e.eventTarget.dispatchEvent(new t.ErrorEvent("streamError",{error:n})),n},r={audio:this.config.mediaTrackConstraints};return this.stream?(this.eventTarget.dispatchEvent(new t.Event("streamReady")),t.Promise.resolve(this.stream)):i(r).then(n,a)},a.prototype.initWorker=function(){var e=this;this.encoder=new t.Worker(this.config.encoderPath),this.config.streamPages?this.encoder.addEventListener("message",function(t){e.streamPage(t.data)}):(this.recordedPages=[],this.totalLength=0,this.encoder.addEventListener("message",function(t){e.storePage(t.data)}))},a.prototype.pause=function(){"recording"===this.state&&(this.state="paused",this.eventTarget.dispatchEvent(new t.Event("pause")))},a.prototype.removeEventListener=function(e,t,n){this.eventTarget.removeEventListener(e,t,n)},a.prototype.resume=function(){"paused"===this.state&&(this.state="recording",this.eventTarget.dispatchEvent(new t.Event("resume")))},a.prototype.setMonitorGain=function(e){this.monitorNode.gain.setTargetAtTime(e,this.audioContext.currentTime,.01)},a.prototype.start=function(){"inactive"===this.state&&this.stream&&(this.encoder.postMessage(Object.assign({command:"init"},this.config)),this.encodeBuffers=function(){delete this.encodeBuffers},this.state="recording",this.monitorNode.connect(this.audioContext.destination),this.scriptProcessorNode.connect(this.audioContext.destination),this.eventTarget.dispatchEvent(new t.Event("start")))},a.prototype.stop=function(){"inactive"!==this.state&&(this.state="inactive",this.monitorNode.disconnect(),this.scriptProcessorNode.disconnect(),this.config.leaveStreamOpen||this.clearStream(),this.encoder.postMessage({command:"done"}))},a.prototype.storePage=function(e){if(null===e){for(var n=new Uint8Array(this.totalLength),i=0,a=0;a<this.recordedPages.length;a++)n.set(this.recordedPages[a],i),i+=this.recordedPages[a].length;this.eventTarget.dispatchEvent(new t.CustomEvent("dataAvailable",{detail:n})),this.initWorker(),this.eventTarget.dispatchEvent(new t.Event("stop"))}else this.recordedPages.push(e),this.totalLength+=e.length},a.prototype.streamPage=function(e){null===e?(this.initWorker(),this.eventTarget.dispatchEvent(new t.Event("stop"))):this.eventTarget.dispatchEvent(new t.CustomEvent("dataAvailable",{detail:e}))},e.exports=a}).call(t,n(1))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var i,a;!function(n){"use strict";function r(){this.name="NotSupportedError",this.message="getUserMedia is not implemented in this browser"}function o(){this.then=function(){return this};var e=new r;this["catch"]=function(t){setTimeout(function(){t(e)})}}function s(e){return l?d?navigator.mediaDevices.getUserMedia(e):new Promise(function(t,n){return u?void u.call(navigator,e,t,n):n(new r)}):new o}r.prototype=Error.prototype;var l="undefined"!=typeof Promise,c="undefined"!=typeof navigator,d=c&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,u=c&&(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia);s.NotSupportedError=r,s.isSupported=!(!l||!d&&!u),i=[],void 0!==(a=function(){return s}.apply(t,i))&&(e.exports=a)}()}])});var _logTimer=(new Date).getTime();Config.Modes.animations&&"function"==typeof window.requestAnimationFrame?window.onAnimationFrameCallback=function(e){return function(){window.requestAnimationFrame(e)}}:window.onAnimationFrameCallback=function(e){return e},function(e){function t(){return{shortIndexes:{},fullTexts:{}}}function n(e){var t="%"==e.charAt(0);return e=e.replace(o," ").replace(s,""),e=e.replace(/[^A-Za-z0-9]/g,function(e){var t=Config.LatinizeMap[e];return void 0!==t?t:e}),e=e.toLowerCase(),t&&(e="%"+e),e}function i(e){return e&&e.toLowerCase()||""}function a(e,t,i){if(void 0!==i.fullTexts[e])return!1;if(t=n(t),!t.length)return!1;var a=i.shortIndexes;i.fullTexts[e]=t,angular.forEach(t.split(" "),function(t){var n,i,r=Math.min(t.length,3);for(i=1;i<=r;i++)n=t.substr(0,i),void 0===a[n]?a[n]=[e]:a[n].push(e)})}function r(e,t){var i=t.shortIndexes,a=t.fullTexts;e=n(e);var r,o,s,l,c,d=e.split(" "),u=!1;for(o=0;o<d.length;o++){if(r=i[d[o].substr(0,3)],!r){u=[];break}(u===!1||u.length>r.length)&&(u=r)}for(r={},s=0;s<u.length;s++){for(c=!0,l=a[u[s]],o=0;o<d.length;o++)if(l.indexOf(d[o])==-1){c=!1;break}c&&(r[u[s]]=!0)}return r}var o=/[`~!@#$%^&*()\-_=+\[\]\\|{}'";:\/?.>,<\s]+/g,s=/^\s+|\s$/g;e.SearchIndexManager={createIndex:t,indexObject:a,cleanSearchText:n,cleanUsername:i,search:r}}(window),TLSerialization.prototype.createBuffer=function(){this.buffer=new ArrayBuffer(this.maxLength),this.intView=new Int32Array(this.buffer),this.byteView=new Uint8Array(this.buffer)},TLSerialization.prototype.getArray=function(){var e=new ArrayBuffer(this.offset),t=new Int32Array(e);return t.set(this.intView.subarray(0,this.offset/4)),t},TLSerialization.prototype.getBuffer=function(){return this.getArray().buffer},TLSerialization.prototype.getBytes=function(e){if(e){var t=new ArrayBuffer(this.offset),n=new Uint8Array(t);return n.set(this.byteView.subarray(0,this.offset)),n}for(var i=[],a=0;a<this.offset;a++)i.push(this.byteView[a]);return i},TLSerialization.prototype.checkLength=function(e){if(!(this.offset+e<this.maxLength)){console.trace("Increase buffer",this.offset,e,this.maxLength),this.maxLength=4*Math.ceil(Math.max(2*this.maxLength,this.offset+e+16)/4);var t=this.buffer,n=new Int32Array(t);this.createBuffer(),new Int32Array(this.buffer).set(n)}},TLSerialization.prototype.writeInt=function(e,t){this.debug&&console.log(">>>",e.toString(16),e,t),this.checkLength(4),this.intView[this.offset/4]=e,this.offset+=4},TLSerialization.prototype.storeInt=function(e,t){this.writeInt(e,(t||"")+":int")},TLSerialization.prototype.storeBool=function(e,t){e?this.writeInt(2574415285,(t||"")+":bool"):this.writeInt(3162085175,(t||"")+":bool")},TLSerialization.prototype.storeLongP=function(e,t,n){this.writeInt(t,(n||"")+":long[low]"),this.writeInt(e,(n||"")+":long[high]")},TLSerialization.prototype.storeLong=function(e,t){if(angular.isArray(e))return 2==e.length?this.storeLongP(e[0],e[1],t):this.storeIntBytes(e,64,t);"string"!=typeof e&&(e=e?e.toString():"0");var n=bigStringInt(e).divideAndRemainder(bigint(4294967296));this.writeInt(intToUint(n[1].intValue()),(t||"")+":long[low]"),this.writeInt(intToUint(n[0].intValue()),(t||"")+":long[high]")},TLSerialization.prototype.storeDouble=function(e,t){var n=new ArrayBuffer(8),i=new Int32Array(n),a=new Float64Array(n);a[0]=e,this.writeInt(i[0],(t||"")+":double[low]"),this.writeInt(i[1],(t||"")+":double[high]")},TLSerialization.prototype.storeString=function(e,t){this.debug&&console.log(">>>",e,(t||"")+":string"),void 0===e&&(e="");var n=unescape(encodeURIComponent(e));this.checkLength(n.length+8);var i=n.length;i<=253?this.byteView[this.offset++]=i:(this.byteView[this.offset++]=254,this.byteView[this.offset++]=255&i,this.byteView[this.offset++]=(65280&i)>>8,this.byteView[this.offset++]=(16711680&i)>>16);for(var a=0;a<i;a++)this.byteView[this.offset++]=n.charCodeAt(a);for(;this.offset%4;)this.byteView[this.offset++]=0},TLSerialization.prototype.storeBytes=function(e,t){e instanceof ArrayBuffer?e=new Uint8Array(e):void 0===e&&(e=[]),this.debug&&console.log(">>>",bytesToHex(e),(t||"")+":bytes");var n=e.byteLength||e.length;for(this.checkLength(n+8),n<=253?this.byteView[this.offset++]=n:(this.byteView[this.offset++]=254,this.byteView[this.offset++]=255&n,this.byteView[this.offset++]=(65280&n)>>8,this.byteView[this.offset++]=(16711680&n)>>16),this.byteView.set(e,this.offset),this.offset+=n;this.offset%4;)this.byteView[this.offset++]=0},TLSerialization.prototype.storeIntBytes=function(e,t,n){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var i=e.length;if(t%32||8*i!=t)throw new Error("Invalid bits: "+t+", "+e.length);this.debug&&console.log(">>>",bytesToHex(e),(n||"")+":int"+t),this.checkLength(i),this.byteView.set(e,this.offset),this.offset+=i},TLSerialization.prototype.storeRawBytes=function(e,t){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var n=e.length;this.debug&&console.log(">>>",bytesToHex(e),t||""),this.checkLength(n),this.byteView.set(e,this.offset),this.offset+=n},TLSerialization.prototype.storeMethod=function(e,t){var n,i=this.mtproto?Config.Schema.MTProto:Config.Schema.API,a=!1;for(n=0;n<i.methods.length;n++)if(i.methods[n].method==e){a=i.methods[n];break}if(!a)throw new Error("No method "+e+" found");this.storeInt(intToUint(a.id),e+"[id]");var r,o,n,s,l,c=a.params.length;for(n=0;n<c;n++){if(r=a.params[n],o=r.type,o.indexOf("?")!==-1){if(s=o.split("?"),l=s[0].split("."),!(t[l[0]]&1<<l[1]))continue;o=s[1]}this.storeObject(t[r.name],o,e+"["+r.name+"]")}return a.type},TLSerialization.prototype.storeObject=function(e,t,n){switch(t){case"#":case"int":return this.storeInt(e,n);case"long":return this.storeLong(e,n);case"int128":return this.storeIntBytes(e,128,n);case"int256":return this.storeIntBytes(e,256,n);case"int512":return this.storeIntBytes(e,512,n);case"string":return this.storeString(e,n);case"bytes":return this.storeBytes(e,n);case"double":return this.storeDouble(e,n);case"Bool":return this.storeBool(e,n);case"true":return}if(angular.isArray(e)){if("Vector"==t.substr(0,6))this.writeInt(481674261,n+"[id]");else if("vector"!=t.substr(0,6))throw new Error("Invalid vector type "+t);var i=t.substr(7,t.length-8);this.writeInt(e.length,n+"[count]");for(var a=0;a<e.length;a++)this.storeObject(e[a],i,n+"["+a+"]");return!0}if("vector"==t.substr(0,6).toLowerCase())throw new Error("Invalid vector object");if(!angular.isObject(e))throw new Error("Invalid object for type "+t);var a,r=this.mtproto?Config.Schema.MTProto:Config.Schema.API,o=e._,s=!1,l=!1;for((s="%"==t.charAt(0))&&(t=t.substr(1)),a=0;a<r.constructors.length;a++)if(r.constructors[a].predicate==o){l=r.constructors[a];break}if(!l)throw new Error("No predicate "+o+" found");o==t&&(s=!0),s||this.writeInt(intToUint(l.id),n+"["+o+"][id]");var c,t,a,d,u,p=l.params.length;for(a=0;a<p;a++){if(c=l.params[a],t=c.type,t.indexOf("?")!==-1){if(d=t.split("?"),u=d[0].split("."),!(e[u[0]]&1<<u[1]))continue;t=d[1]}this.storeObject(e[c.name],t,n+"["+o+"]["+c.name+"]")}return l.type},TLDeserialization.prototype.readInt=function(e){if(this.offset>=4*this.intView.length)throw new Error("Nothing to fetch: "+e);var t=this.intView[this.offset/4];return this.debug&&console.log("<<<",t.toString(16),t,e),this.offset+=4,t},TLDeserialization.prototype.fetchInt=function(e){return this.readInt((e||"")+":int")},TLDeserialization.prototype.fetchDouble=function(e){var t=new ArrayBuffer(8),n=new Int32Array(t),i=new Float64Array(t);return n[0]=this.readInt((e||"")+":double[low]"),n[1]=this.readInt((e||"")+":double[high]"),i[0]},TLDeserialization.prototype.fetchLong=function(e){var t=this.readInt((e||"")+":long[low]"),n=this.readInt((e||"")+":long[high]"),i=bigint(n).shiftLeft(32).add(bigint(t)).toString();return i},TLDeserialization.prototype.fetchBool=function(e){var t=this.readInt((e||"")+":bool");return 2574415285==t||3162085175!=t&&(this.offset-=4,this.fetchObject("Object",e))},TLDeserialization.prototype.fetchString=function(e){var t=this.byteView[this.offset++];if(254==t)var t=this.byteView[this.offset++]|this.byteView[this.offset++]<<8|this.byteView[this.offset++]<<16;for(var n="",i=0;i<t;i++)n+=String.fromCharCode(this.byteView[this.offset++]);for(;this.offset%4;)this.offset++;try{var a=decodeURIComponent(escape(n))}catch(r){var a=n}return this.debug&&console.log("<<<",a,(e||"")+":string"),a},TLDeserialization.prototype.fetchBytes=function(e){var t=this.byteView[this.offset++];254==t&&(t=this.byteView[this.offset++]|this.byteView[this.offset++]<<8|this.byteView[this.offset++]<<16);var n=this.byteView.subarray(this.offset,this.offset+t);for(this.offset+=t;this.offset%4;)this.offset++;return this.debug&&console.log("<<<",bytesToHex(n),(e||"")+":bytes"),n},TLDeserialization.prototype.fetchIntBytes=function(e,t,n){if(e%32)throw new Error("Invalid bits: "+e);var i=e/8;if(t){var a=this.byteView.subarray(this.offset,this.offset+i);return this.offset+=i,a}for(var r=[],o=0;o<i;o++)r.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(r),(n||"")+":int"+e),r},TLDeserialization.prototype.fetchRawBytes=function(e,t,n){if(e===!1&&(e=this.readInt((n||"")+"_length"),e>this.byteView.byteLength))throw new Error("Invalid raw bytes length: "+e+", buffer len: "+this.byteView.byteLength);if(t){var i=new Uint8Array(e);return i.set(this.byteView.subarray(this.offset,this.offset+e)),this.offset+=e,i}for(var i=[],a=0;a<e;a++)i.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(i),n||""),i},TLDeserialization.prototype.fetchObject=function(e,t){switch(e){case"#":case"int":return this.fetchInt(t);case"long":return this.fetchLong(t);case"int128":return this.fetchIntBytes(128,!1,t);case"int256":return this.fetchIntBytes(256,!1,t);case"int512":return this.fetchIntBytes(512,!1,t);case"string":return this.fetchString(t);case"bytes":return this.fetchBytes(t);case"double":return this.fetchDouble(t);case"Bool":return this.fetchBool(t);case"true":return!0}if(t=t||e||"Object","Vector"==e.substr(0,6)||"vector"==e.substr(0,6)){if("V"==e.charAt(0)){var n=this.readInt(t+"[id]"),i=uintToInt(n);if(812830625==i){var a=this.fetchBytes(t+"[packed_string]"),r=gzipUncompress(a),o=bytesToArrayBuffer(r),s=new TLDeserialization(o);return s.fetchObject(e,t)}if(481674261!=i)throw new Error("Invalid vector constructor "+n)}var l=this.readInt(t+"[count]"),c=[];if(l>0)for(var d=e.substr(7,e.length-8),u=0;u<l;u++)c.push(this.fetchObject(d,t+"["+u+"]"));return c}var p=this.mtproto?Config.Schema.MTProto:Config.Schema.API,f=!1,m=!1;if("%"==e.charAt(0)){for(var h=e.substr(1),u=0;u<p.constructors.length;u++)if(p.constructors[u].type==h){m=p.constructors[u];break}if(!m)throw new Error("Constructor not found for type: "+e)}else if(e.charAt(0)>=97&&e.charAt(0)<=122){for(var u=0;u<p.constructors.length;u++)if(p.constructors[u].predicate==e){m=p.constructors[u];break}if(!m)throw new Error("Constructor not found for predicate: "+e)}else{var n=this.readInt(t+"[id]"),i=uintToInt(n);if(812830625==i){var a=this.fetchBytes(t+"[packed_string]"),r=gzipUncompress(a),o=bytesToArrayBuffer(r),s=new TLDeserialization(o);return s.fetchObject(e,t)}var g=p.constructorsIndex;if(!g){p.constructorsIndex=g={};for(var u=0;u<p.constructors.length;u++)g[p.constructors[u].id]=u}var u=g[i];u&&(m=p.constructors[u]);var _=!1;if(!m&&this.mtproto){var v=Config.Schema.API;for(u=0;u<v.constructors.length;u++)if(v.constructors[u].id==i){m=v.constructors[u],delete this.mtproto,_=!0;break}}if(!m)throw new Error("Constructor not found: "+n+" "+this.fetchInt()+" "+this.fetchInt())}f=m.predicate;var c={_:f},y=(this.mtproto?"mt_":"")+f,b=this;if(this.override[y])this.override[y].apply(this,[c,t+"["+f+"]"]);else{var u,w,e,k,M,S,A,l=m.params.length;for(u=0;u<l;u++){if(w=m.params[u],e=w.type,"#"==e&&void 0===c.pFlags&&(c.pFlags={}),k=e.indexOf("?")!==-1){if(M=e.split("?"),S=M[0].split("."),!(c[S[0]]&1<<S[1]))continue;e=M[1]}A=b.fetchObject(e,t+"["+f+"]["+w.name+"]"),k&&"true"===e?c.pFlags[w.name]=A:c[w.name]=A}}return _&&(this.mtproto=!0),c},TLDeserialization.prototype.getOffset=function(){return this.offset},TLDeserialization.prototype.fetchEnd=function(){if(this.offset!=this.byteView.length)throw new Error("Fetch end with non-empty buffer");return!0},angular.module("izhukov.utils",[]).provider("Storage",function(){this.setPrefix=function(e){ConfigStorage.prefix(e)},this.$get=["$q",function(e){var t={};return angular.forEach(["get","set","remove","clear"],function(n){t[n]=function(){var t=e.defer(),i=Array.prototype.slice.call(arguments);return i.push(function(e){t.resolve(e)}),ConfigStorage[n].apply(ConfigStorage,i),t.promise}}),t.noPrefix=function(){ConfigStorage.noPrefix()},t}]}).service("qSync",function(){return{when:function(e){return{then:function(t){return t(e)}}},reject:function(e){return{then:function(t,n){if(n)return n(e)}}}}}).service("FileManager",["$window","$q","$timeout","qSync",function(e,t,n,i){function a(){return y}function r(e,n){return l(n).then(function(n){return o(n,e).then(function(){return n},function(e){try{n.truncate(0)}catch(i){}return t.reject(e)})})}function o(e,n){var i=t.defer();if(e.onwriteend=function(e){i.resolve()},e.onerror=function(e){i.reject(e)},n.file)n.file(function(t){e.write(t)},function(e){i.reject(e)});else if(n instanceof Blob)e.write(n);else try{var a=blobConstruct([bytesToArrayBuffer(n)]);e.write(a)}catch(r){i.reject(r)}return i.promise}function s(n,a,r){if(!e.chrome||!chrome.fileSystem||!chrome.fileSystem.chooseEntry)return i.reject();var o=t.defer();return chrome.fileSystem.chooseEntry({type:"saveFile",suggestedName:n,accepts:[{mimeTypes:[r],extensions:[a]}]},function(e){o.resolve(e)}),o.promise}function l(e){var n=t.defer();return e.createWriter(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}function c(e,t){var n=[],i={write:function(e){return y?(n.push(e),void setZeroTimeout(function(){i.onwriteend&&i.onwriteend()})):(i.onerror&&i.onerror(new Error("Blob not supported by browser")),!1)},truncate:function(){n=[]},finalize:function(){var i=blobConstruct(n,e);return t&&t(i),i}};return i}function d(e,t){var n=blobSafeMimeType(t);return void 0!==e.toURL?e.toURL(n):e instanceof Blob?URL.createObjectURL(e):"data:"+n+";base64,"+bytesToBase64(e)}function u(e){if(e instanceof Blob){var n=t.defer();try{var i=new FileReader;return i.onloadend=function(e){n.resolve(new Uint8Array(e.target.result))},i.onerror=function(e){n.reject(e)},i.readAsArrayBuffer(e),n.promise}catch(a){return t.reject(a)}}else if(e.file){var n=t.defer();return e.file(function(e){u(e).then(function(e){n.resolve(e)},function(e){n.reject(e)})},function(e){n.reject(e)}),n.promise}return t.when(e)}function p(e){var n;try{var i=new FileReader;i.onloadend=function(){n.resolve(i.result)},i.readAsDataURL(e)}catch(a){return t.reject(a)}return n=t.defer(),n.promise}function f(e,t){if(v&&e instanceof Blob){var t=e.type||e.mimeType||t||"";if(!t.match(/image\/(jpeg|gif|png|bmp)|video\/quicktime/))return p(e)}return i.when(d(e,t))}function m(e,t,i){if(window.navigator&&void 0!==navigator.msSaveBlob)return window.navigator.msSaveBlob(e,i),!1;if(window.navigator&&navigator.getDeviceStorage){var a="sdcard",r="telegram/";switch(t.split("/")[0]){case"video":a="videos";break;case"audio":a="music";break;case"image":a="pictures"}var o=navigator.getDeviceStorage(a),s=o.addNamed(e,r+i);return s.onsuccess=function(){console.log("Device storage save result",this.result)},void(s.onerror=function(){})}var l=!1;h&&!_&&(l=window.open()),f(e,t).then(function(e){if(l)try{return void(l.location.href=e)}catch(t){}var a=document.createElementNS("http://www.w3.org/1999/xhtml","a");a.href=e,_||(a.target="_blank"),a.download=i,a.dataset&&(a.dataset.downloadurl=["video/quicktime",i,e].join(":")),$(a).css({position:"absolute",top:1,left:1}).appendTo("body");try{var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),a.dispatchEvent(r)}catch(t){console.error("Download click error",t);try{a[0].click()}catch(t){window.open(e,"_blank")}}n(function(){$(a).remove()},100)})}e.URL=e.URL||e.webkitURL,e.BlobBuilder=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder;var h="safari"in window,g=parseFloat(h&&(navigator.userAgent.match(/Version\/(\d+\.\d+).* Safari/)||[])[1]),_=h&&g>=11,v=h&&!_,y=!0;try{blobConstruct([],"")}catch(b){y=!1}return{isAvailable:a,copy:r,write:o,getFileWriter:l,getFakeFileWriter:c,chooseSave:s,getUrl:d,getDataUrl:p,getByteArray:u,getFileCorrectUrl:f,download:m}}]).service("IdbFileStorage",["$q","$window","FileManager",function(e,t,n){function i(){return h}function a(){if(u)return u;try{var t=indexedDB.open(p,m),n=e.defer(),i=function(e){e.createObjectStore(f)};if(!t)throw new Exception}catch(a){return console.error("error opening db",a.message),h=!1,e.reject(a)}var r=!1;return setTimeout(function(){r||t.onerror({type:"IDB_CREATE_TIMEOUT"})},3e3),t.onsuccess=function(e){r=!0;var i=t.result;i.onerror=function(e){h=!1,console.error("Error creating/accessing IndexedDB database",e),n.reject(e)},n.resolve(i)},t.onerror=function(e){r=!0,h=!1,console.error("Error creating/accessing IndexedDB database",e),n.reject(e)},t.onupgradeneeded=function(e){r=!0,console.warn("performing idb upgrade from",e.oldVersion,"to",e.newVersion);var t=e.target.result;1==e.oldVersion&&t.deleteObjectStore(f),i(t)},u=n.promise}function r(t,n){return a().then(function(i){if(!g)return o(i,t,n);n instanceof Blob||(n=blobConstruct([n]));try{var a=i.transaction([f],IDBTransaction.READ_WRITE||"readwrite").objectStore(f),r=a.put(n,t)}catch(s){return g?(g=!1,o(i,t,n)):(h=!1,e.reject(s))}var l=e.defer();return r.onsuccess=function(e){l.resolve(n)},r.onerror=function(e){l.reject(e)},l.promise})}function o(t,n,i){if(l(i)>10485760)return e.reject();if(!(i instanceof Blob)){var a=blobSafeMimeType(i.type||"image/jpeg"),r="data:"+a+";base64,"+bytesToBase64(i);return s(t,n,r).then(function(){return i})}try{var o=new FileReader}catch(c){return h=!1,e.reject()}var d=e.defer();o.onloadend=function(){s(t,n,o.result).then(function(){d.resolve(i)},function(e){d.reject(e)})},o.onerror=function(e){d.reject(e)};try{o.readAsDataURL(i)}catch(c){return h=!1,e.reject()}return d.promise}function s(t,n,i){try{var a=t.transaction([f],IDBTransaction.READ_WRITE||"readwrite").objectStore(f),r=a.put(i,n)}catch(o){return h=!1,e.reject(o)}var s=e.defer();return r.onsuccess=function(e){s.resolve()},r.onerror=function(e){s.reject(e)},s.promise}function l(e){return e.size||e.byteLength||e.length}function c(t){return a().then(function(n){var i=e.defer(),a=n.transaction([f],IDBTransaction.READ||"readonly").objectStore(f),r=a.get(t);return r.onsuccess=function(e){var t=e.target.result;void 0===t?i.reject():"string"==typeof t&&"data:"===t.substr(0,5)?i.resolve(dataUrlToBlob(t)):i.resolve(t)},r.onerror=function(e){i.reject(e)},i.promise})}function d(t,i){var a=n.getFakeFileWriter(i,function(e){r(t,e)});return e.when(a)}t.indexedDB=t.indexedDB||t.webkitIndexedDB||t.mozIndexedDB||t.OIndexedDB||t.msIndexedDB,t.IDBTransaction=t.IDBTransaction||t.webkitIDBTransaction||t.OIDBTransaction||t.msIDBTransaction;var u,p="cachedFiles",f="files",m=2,h=void 0!==t.indexedDB&&void 0!==t.IDBTransaction;h&&navigator.userAgent.indexOf("Safari")!=-1&&navigator.userAgent.indexOf("Chrome")==-1&&navigator.userAgent.match(/Version\/[678]/)&&(h=!1);var g=h||!1;return a(),{name:"IndexedDB",isAvailable:i,saveFile:r,getFile:c,getFileWriter:d}}]).service("TmpfsFileStorage",["$q","$window","FileManager",function(e,t,n){function i(){if(l)return l;if(!t.requestFileSystem)return l=e.reject({type:"FS_BROWSER_UNSUPPORTED",description:"requestFileSystem not present"});var n=e.defer();return t.requestFileSystem(t.TEMPORARY,524288e3,function(e){cachedFs=e,n.resolve()},function(e){c=!1,n.reject(e)}),l=n.promise}function a(){return Config.allow_tmpfs&&c}function r(t,n){return n=n||1,i().then(function(){var i=e.defer();return cachedFs.root.getFile(t,{create:!1},function(e){e.file(function(t){t.size>=n?i.resolve(e):i.reject(new Error("FILE_NOT_FOUND"))},function(e){console.log(dT(),"error",e),i.reject(e)})},function(){i.reject(new Error("FILE_NOT_FOUND"))}),i.promise})}function o(e,t){return s(e).then(function(e){return n.write(e,t).then(function(){return e.finalize()})})}function s(t){return i().then(function(){var i=e.defer();return cachedFs.root.getFile(t,{create:!0},function(e){n.getFileWriter(e).then(function(t){t.finalize=function(){return e},i.resolve(t)},function(e){c=!1,i.reject(e)})},function(e){c=!1,i.reject(e)}),i.promise})}t.requestFileSystem=t.requestFileSystem||t.webkitRequestFileSystem;var l,c=void 0!==t.requestFileSystem;return i(),{name:"TmpFS",isAvailable:a,saveFile:o,getFile:r,getFileWriter:s}}]).service("MemoryFileStorage",["$q","FileManager",function(e,t){function n(){return!0}function i(t,n){return o[t]?e.when(o[t]):e.reject(new Error("FILE_NOT_FOUND"))}function a(t,n){return e.when(o[t]=n)}function r(n,i){var r=t.getFakeFileWriter(i,function(e){a(n,e)});return e.when(r)}var o={};return{name:"Memory",isAvailable:n,saveFile:a,getFile:i,getFileWriter:r}}]).service("WebpManager",["qSync","$q",function(e,t){function n(e){var t=(tsNow(),new WebPDecoder),n=t.WebPDecoderConfig,i=n.j||n.output,a=n.input;if(!t.WebPInitDecoderConfig(n))return console.error("[webpjs] Library version mismatch!"),!1;var r=t.VP8StatusCode;status=t.WebPGetFeatures(e,e.length,a),status!=(r.VP8_STATUS_OK||0)&&console.error("[webpjs] status error",status,r);var l=t.WEBP_CSP_MODE;i.colorspace=l.MODE_RGBA,i.J=4;try{status=t.WebPDecode(e,e.length,n)}catch(c){status=c}if(ok=0==status,!ok)return console.error("[webpjs] decoding failed",status,r),!1;var d=i.c.RGBA.ma;if(!d)return!1;var u=i.height,p=i.width;o&&s?s.clearRect(0,0,o.width,o.height):(o=document.createElement("canvas"),s=o.getContext("2d")),o.height=u,o.width=p;for(var f=s.createImageData(o.width,o.height),m=f.data,h=0;h<u;h++)for(var g=0;g<p;g++)m[0+4*g+4*p*h]=d[1+4*g+4*p*h],m[1+4*g+4*p*h]=d[2+4*g+4*p*h],m[2+4*g+4*p*h]=d[3+4*g+4*p*h],m[3+4*g+4*p*h]=d[0+4*g+4*p*h];return s.putImageData(f,0,0),!0}function i(i){if(!n(i))return t.reject({type:"WEBP_PROCESS_FAILED"});if(void 0===o.toBlob)return e.when(dataUrlToBlob(o.toDataURL("image/png")));var a=t.defer();return o.toBlob(function(e){a.resolve(e)},"image/png"),a.promise}var a=!1,r=new Image;r.onload=function(){a=2===this.width&&1===this.height},r.onerror=function(){a=!1},r.src="data:image/webp;base64,UklGRjIAAABXRUJQVlA4ICYAAACyAgCdASoCAAEALmk0mk0iIiIiIgBoSygABc6zbAAA/v56QAAAAA==";var o,s;return{isWebpSupported:function(){return a},getPngBlobFromWebp:i}}]).service("CryptoWorker",["$timeout","$q",function(e,t){function n(e,n,a){var s=t.defer();return o[r]=s,n.task=e,n.taskID=r,(a||i).postMessage(n),r++,s.promise}var i=!1,a=!1,r=0,o={},s=Config.Modes.webcrypto&&window.crypto&&(window.crypto.subtle||window.crypto.webkitSubtle),l=s&&void 0!==s.digest,c=s&&void 0!==s.digest,d=function(e,t){var n=o[e];void 0!==n&&(n.resolve(t),delete o[e])};if(Config.Modes.nacl&&navigator.mimeTypes&&void 0!==navigator.mimeTypes["application/x-pnacl"]){var u=$('<div id="nacl_listener"><embed id="mtproto_crypto" width="0" height="0" src="nacl/mtproto_crypto.nmf" type="application/x-pnacl" /></div>').appendTo($("body"))[0];u.addEventListener("load",function(e){a=u.firstChild,console.log(dT(),"NaCl ready")},!0),u.addEventListener("message",function(e){d(e.data.taskID,e.data.result)},!0),u.addEventListener("error",function(e){console.error("NaCl error",e)},!0)}if(window.Worker){var p=new Worker("js/lib/crypto_worker.js");p.onmessage=function(e){i?d(e.data.taskID,e.data.result):i=p},p.onerror=function(e){console.error("CW error",e,e.stack),i=!1}}return{sha1Hash:function(n){if(l){var i=t.defer(),a=Array.isArray(n)?convertToUint8Array(n):n;return s.digest({name:"SHA-1"},a).then(function(e){i.resolve(e)},function(e){console.error("Crypto digest error",e),l=!1,i.resolve(sha1HashSync(n))}),i.promise}return e(function(){return sha1HashSync(n)})},sha256Hash:function(n){if(c){var i=t.defer(),a=Array.isArray(n)?convertToUint8Array(n):n;return s.digest({name:"SHA-256"},a).then(function(e){i.resolve(e)},function(e){console.error("Crypto digest error",e),c=!1,i.resolve(sha256HashSync(n))}),i.promise}return e(function(){return sha256HashSync(n)})},aesEncrypt:function(t,i,r){return a?n("aes-encrypt",{bytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(i),ivBytes:convertToArrayBuffer(r)},a):e(function(){return convertToArrayBuffer(aesEncryptSync(t,i,r))})},aesDecrypt:function(t,i,r){return a?n("aes-decrypt",{encryptedBytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(i),ivBytes:convertToArrayBuffer(r)},a):e(function(){return convertToArrayBuffer(aesDecryptSync(t,i,r))})},factorize:function(t){return t=convertToByteArray(t),a&&t.length<=8?n("factorize",{bytes:t},a):i?n("factorize",{bytes:t}):e(function(){return pqPrimeFactorization(t)})},modPow:function(t,a,r){return i?n("mod-pow",{x:t,y:a,m:r}):e(function(){return bytesModPow(t,a,r)})}}}]).service("ExternalResourcesManager",["$q","$http","$sce",function(e,t,n){function i(i){return void 0!==a[i]?a[i]:a[i]=t.get(i,{responseType:"blob",transformRequest:null}).then(function(e){window.URL=window.URL||window.webkitURL;var t=window.URL.createObjectURL(e.data);return n.trustAsResourceUrl(t)},function(t){return Config.Modes.chrome_packed?e.reject(t):e.when(n.trustAsResourceUrl(i))})}var a={};return{downloadByURL:i}}]).service("IdleManager",["$rootScope","$window","$timeout",function(e,t,n){function i(){s||(s=!0,$(t).on(c+" blur focus keydown mousedown touchstart",a),
setTimeout(function(){a({type:"blur",fake_initial:!0})},0))}function a(i){if("mousemove"==i.type){var i=i.originalEvent||i;if(i&&0===i.movementX&&0===i.movementY)return;$(t).off("mousemove",a)}var s="blur"==i.type||"timeout"==i.type;l&&document[l]&&(s=!0),n.cancel(r),s||(r=n(function(){a({type:"timeout"})},3e4)),"focus"!=i.type||e.idle.afterFocus||(e.idle.afterFocus=!0,setTimeout(function(){delete e.idle.afterFocus},10));var c=e.idle.initial?0:1e3;i&&!i.fake_initial&&delete e.idle.initial,n.cancel(o),e.idle.isIDLE!=s&&(o=n(function(){e.idle.isIDLE=s,s&&"timeout"==i.type&&$(t).on("mousemove",a)},c))}e.idle={isIDLE:!1,initial:!0};var r,o,s=!1,l="hidden",c="visibilitychange";return"undefined"!=typeof document.hidden||("undefined"!=typeof document.mozHidden?(l="mozHidden",c="mozvisibilitychange"):"undefined"!=typeof document.msHidden?(l="msHidden",c="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(l="webkitHidden",c="webkitvisibilitychange")),Config.Mobile||(c=""),{start:i}}]).service("GeoLocationManager",["$q",function(e){function t(){return void 0!==navigator.geolocation}function n(n){if(!n&&i)return e.when(i);if(!t())return e.reject();var a=e.defer();return navigator.geolocation.getCurrentPosition(function(e){i={lat:e.coords.latitude,"long":e.coords.longitude},a.resolve(i)},function(e){a.reject(e)}),a.promise}var i=!1;return{getPosition:n,isAvailable:t}}]).service("AppRuntimeManager",["$window",function(e){return{reload:function(){try{location.reload()}catch(t){}e.chrome&&chrome.runtime&&chrome.runtime.reload&&chrome.runtime.reload()},close:function(){try{e.close()}catch(t){}},focus:function(){window.navigator.mozApps&&document.hidden?window.navigator.mozApps.getSelf().onsuccess=function(){this.result.launch()}:(window.chrome&&chrome.app&&chrome.app.window&&chrome.app.window.current().focus(),window.focus())}}}]).service("RichTextProcessor",["$sce","$sanitize",function(e,t){function n(e){for(var t,n,i,a,r=0;r<Config.EmojiCategories.length;r++)if(a=Config.EmojiCategorySpritesheetDimens[r][1],t=Config.EmojiCategories[r].indexOf(e),t>-1)return n=Math.floor(t/a),i=t%a,{category:r,row:n,column:i};return console.error("emoji not found in spritesheet",e),null}function i(e,t){t=t||{};for(var i,a,r,o,s,l=e,c=[],u=0;i=l.match(A);){if(s=u+i.index,i[3])c.push({_:"messageEntityMention",offset:s+i[1].length,length:i[2].length+i[3].length});else if(i[4])if(C.test(i[4]))c.push({_:"messageEntityEmail",offset:s,length:i[4].length});else{var a=!1,p=i[5],f=i[6],m="";if(f){if(p||"xn--"!==f.substr(0,4)&&Config.TLD.indexOf(f.toLowerCase())===-1||(p="http://"),p){var g=d(i[4]);g.length!==i[4].length&&(m=i[4].substring(g.length),i[4]=g),a=(i[5]?"":p)+i[4]}}else a=(i[5]?"":"http://")+i[4];a&&c.push({_:"messageEntityUrl",offset:s,length:i[4].length})}else i[7]?c.push({_:"messageEntityLinebreak",offset:s,length:1}):i[8]?(r=EmojiHelper.emojiMap[i[8]])&&(o=n(r))&&c.push({_:"messageEntityEmoji",offset:s,length:i[0].length,coords:o,title:h[r][1][0]}):i[10]?c.push({_:"messageEntityHashtag",offset:s+i[9].length,length:i[10].length}):i[12]&&c.push({_:"messageEntityBotCommand",offset:s+i[11].length,length:1+i[12].length+(i[13]?1+i[13].length:0)});l=l.substr(i.index+i[0].length),u+=i.index+i[0].length}return c}function a(e){return e.replace(/:([a-z0-9\-\+\*_]+?):/gi,function(e,t){var n=EmojiHelper.shortcuts[t];return void 0!==n?EmojiHelper.emojis[n][0]:e})}function r(e,t,n){if(!T.test(e))return n?e:e.trim();for(var i,a,r=e,o=[],s=0;i=r.match(E);){a=s+i.index,o.push(r.substr(0,i.index));var e=i[3]||i[8]||i[11];s-=e.length,e=e.replace(/^\s+|\s+$/g,""),s+=e.length,e.match(/^`*$/)?o.push(i[0]):i[3]?("\n"==i[5]&&(i[5]="",s-=1),o.push(i[1]+e+i[5]),t.push({_:"messageEntityPre",language:"",offset:a+i[1].length,length:e.length}),s-=i[2].length+i[4].length):i[7]?(o.push(i[6]+e+i[9]),t.push({_:x[i[7]],offset:a+i[6].length,length:e.length}),s-=2*i[7].length):i[11]&&(o.push(e),t.push({_:"messageEntityMentionName",user_id:i[10],offset:a,length:e.length}),s-=i[0].length-e.length),r=r.substr(i.index+i[0].length),s+=i.index+i[0].length}return o.push(r),o=o.join(""),o.replace(/\s+/g,"").length||(o=e,t.splice(0,t.length)),t.length||n||(o=o.trim()),o}function o(e,t,n){var i,a,r,o,s,l,c,d,u,p=t.slice(),f=e.length,m=t.length,h=0;for(i=0;i<f;i++)if(r=e[i],!n||"messageEntityLinebreak"==r._||"messageEntityEmoji"==r._){for(s=r.offset,l=s+r.length,u=!1,a=h;a<m;a++){if(o=t[a],c=o.offset,d=c+o.length,c<=s&&(h=a),s>=c&&s<d||l>c&&l<=d){n&&s>=c&&l<=d&&(void 0===o.nested&&(o.nested=[]),r.offset-=c,o.nested.push(angular.copy(r))),u=!0;break}if(c>=l)break}u||p.push(r)}return p.sort(function(e,t){return e.offset-t.offset}),p}function s(e,t,n){return void 0===t?encodeEntities(e):(n.hasNested=!0,l(e,{entities:t,nested:!0}))}function l(n,a){if(!n||!n.length)return"";a=a||{};var r=a.entities,o=a.contextSite||"Telegram",l="Telegram"!=o,c=!1;void 0===r&&(r=i(n,a));var d,p,m,h,_=0,v=r.length,y=[],b=0,w=a.emojiIconSize||g;for(_=0;_<v;_++){if(d=r[_],d.offset>b)y.push(encodeEntities(n.substr(b,d.offset-b)));else if(d.offset<b)continue;switch(m=!1,p=n.substr(d.offset,d.length),d._){case"messageEntityMention":var k=!a.noLinks&&I[o];if(!k){m=!0;break}var M=p.substr(1),S="";a.highlightUsername&&a.highlightUsername.toLowerCase()==M.toLowerCase()&&(S='class="im_message_mymention"'),y.push("<a ",S,l?' target="_blank" rel="noopener noreferrer" ':"",' href="',k.replace("{1}",encodeURIComponent(M)),'">',encodeEntities(p),"</a>");break;case"messageEntityMentionName":if(a.noLinks){m=!0;break}y.push('<a href="#/im?p=u',encodeURIComponent(d.user_id),'">',encodeEntities(p),"</a>");break;case"messageEntityHashtag":var k=!a.noLinks&&$[o];if(!k){m=!0;break}var A=p.substr(1);y.push("<a ",l?' target="_blank" rel="noopener noreferrer" ':"",'href="',k.replace("{1}",encodeURIComponent(A)),'">',encodeEntities(p),"</a>");break;case"messageEntityEmail":if(a.noLinks){m=!0;break}y.push('<a href="',encodeEntities("mailto:"+p),'" target="_blank" rel="noopener noreferrer">',encodeEntities(p),"</a>");break;case"messageEntityUrl":case"messageEntityTextUrl":var C;"messageEntityTextUrl"==d._?(h=d.url,h=f(h,!0),C=s(p,d.nested,a)):(h=f(p,!1),C=encodeEntities(u(p))),a.noLinks?y.push(C):y.push('<a href="',encodeEntities(h),'" target="_blank" rel="noopener noreferrer">',C,"</a>");break;case"messageEntityLinebreak":y.push(a.noLinebreaks?" ":"<br/>");break;case"messageEntityEmoji":y.push('<span class="emoji emoji-',d.coords.category,"-",w*d.coords.column,"-",w*d.coords.row,'" ','title="',d.title,'">',":",d.title,":</span>"),c=!0;break;case"messageEntityBotCommand":if(a.noLinks||a.noCommands||l){m=!0;break}var T,E,x=p.substr(1);(E=x.indexOf("@"))!=-1?(T=x.substr(E+1),x=x.substr(0,E)):T=a.fromBot,y.push('<a href="',encodeEntities("tg://bot_command?command="+encodeURIComponent(x)+(T?"&bot="+encodeURIComponent(T):"")),'">',encodeEntities(p),"</a>");break;case"messageEntityBold":y.push("<strong>",s(p,d.nested,a),"</strong>");break;case"messageEntityItalic":y.push("<em>",s(p,d.nested,a),"</em>");break;case"messageEntityCode":y.push("<code>",encodeEntities(p),"</code>");break;case"messageEntityPre":y.push("<pre><code",d.language?' class="language-'+encodeEntities(d.language)+'"':"",">",encodeEntities(p),"</code></pre>");break;default:m=!0}b=d.offset+(m?0:d.length)}if(y.push(encodeEntities(n.substr(b))),n=t(y.join("")),!a.nested&&(c||a.hasNested)){n=n.replace(/\ufe0f|&#65039;|&#65533;|&#8205;/g,"",n);var P=18==w?"":" emoji-w"+w;n=n.replace(/<span((?: [^>]*)?) class="emoji emoji-(\d)-(\d+)-(\d+)"(.+?)<\/span>/g,'<span$1 class="emoji '+P+' emoji-spritesheet-$2" style="background-position: -$3px -$4px;" $5</span>')}return e.trustAs("html",n)}function c(e,t){if(!e||!e.length)return"";t=t||{};var n=t.entities;void 0===n&&(n=i(e,t));var a,r,o,s=0,l=n.length,c=[],d=0;for(s=0;s<l;s++){if(a=n[s],a.offset>d)c.push(e.substr(d,a.offset-d));else if(a.offset<d)continue;switch(o=!1,r=e.substr(a.offset,a.length),a._){case"messageEntityEmoji":c.push(":",a.title,":");break;case"messageEntityCode":c.push("`",r,"`");break;case"messageEntityBold":c.push("**",r,"**");break;case"messageEntityItalic":c.push("__",r,"__");break;case"messageEntityPre":c.push("```",r,"```");break;case"messageEntityMentionName":c.push("@",a.user_id," (",r,")");break;default:o=!0}d=a.offset+(o?0:a.length)}return c.push(e.substr(d)),c.join("")}function d(e){for(var t=e.length,n=e.split("(").length-1,i=e.split(")").length-1;i>n&&")"===e.charAt(t-1);)e=e.substr(0,t-1),i--,t--;return n>i&&(e=e.replace(/\)+$/,"")),e}function u(e){return e.replace(/(%[A-Z\d]{2})+/g,function(e){try{return decodeURIComponent(e)}catch(t){return e}})}function p(e,t){if(_)return e;if(!e||!e.length)return"";t=t||{},e=e.replace(/\ufe0f/g,"",e);for(var n,i,a=e,e=[];n=a.match(A);)e.push(a.substr(0,n.index)),n[8]&&(m=EmojiHelper.emojiMap[n[8]])&&(i=h[m][1][0])?e.push(":"+i+":"):e.push(n[0]),a=a.substr(n.index+n[0].length);return e.push(a),e.join("")}function f(e,t){e.match(/^https?:\/\//i)||(e="http://"+e);var n,i;if(2==t)e="tg://unsafe_url?url="+encodeURIComponent(e);else if(n=e.match(/^https?:\/\/t(?:elegram)?\.me\/(.+)/)){var a=n[1],r=a.split("/");switch(r[0]){case"joinchat":e="tg://join?invite="+r[1];break;case"addstickers":e="tg://addstickers?set="+r[1];break;default:if(r[1]&&r[1].match(/^\d+$/))e="tg://resolve?domain="+r[0]+"&post="+r[1];else if(1==r.length){var o=r[0].split("?"),s=o[0],l=o[1];if("iv"==s){var c=(l||"").match(/url=([^&=]+)/);if(c){e=c[1];try{e=decodeURIComponent(e)}catch(d){}return f(e,t)}}e="tg://resolve?domain="+s+(l?"&"+l:"")}}}else(i=e.match(/^https?:\/\/telesco\.pe\/([^\/?]+)\/(\d+)/))?e="tg://resolve?domain="+i[1]+"&post="+i[2]:t&&(e="tg://unsafe_url?url="+encodeURIComponent(e));return e}var m,h=Config.Emoji,g=18,_=navigator.userAgent.search(/OS X|iPhone|iPad|iOS|Android/i)!=-1,v="\\u0023\\u20E3|\\u00a9|\\u00ae|\\u203c|\\u2049|\\u2139|[\\u2194-\\u2199]|\\u21a9|\\u21aa|\\u231a|\\u231b|\\u23e9|[\\u23ea-\\u23ec]|\\u23f0|\\u24c2|\\u25aa|\\u25ab|\\u25b6|\\u2611|\\u2614|\\u26fd|\\u2705|\\u2709|[\\u2795-\\u2797]|\\u27a1|\\u27b0|\\u27bf|\\u2934|\\u2935|[\\u2b05-\\u2b07]|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u3030|\\u303d|\\u3297|\\u3299|[\\uE000-\\uF8FF\\u270A-\\u2764\\u2122\\u25C0\\u25FB-\\u25FE\\u2615\\u263a\\u2648-\\u2653\\u2660-\\u2668\\u267B\\u267F\\u2693\\u261d\\u26A0-\\u26FA\\u2708\\u2702\\u2601\\u260E]|[\\u2600\\u26C4\\u26BE\\u23F3\\u2764]|\\uD83D[\\uDC00-\\uDFFF]|\\uD83C[\\uDDE8-\\uDDFA<EFBFBD>]\\uD83C[\\uDDEA-\\uDDFA<EFBFBD>]|[0-9]\\u20e3|\\uD83C[\\uDC00-\\uDFFF]",y="a-z\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u00ff\\u0100-\\u024f\\u0253\\u0254\\u0256\\u0257\\u0259\\u025b\\u0263\\u0268\\u026f\\u0272\\u0289\\u028b\\u02bb\\u0300-\\u036f\\u1e00-\\u1eff\\u0400-\\u04ff\\u0500-\\u0527\\u2de0-\\u2dff\\ua640-\\ua69f\\u0591-\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05f0-\\u05f4\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufb4f\\u0610-\\u061a\\u0620-\\u065f\\u066e-\\u06d3\\u06d5-\\u06dc\\u06de-\\u06e8\\u06ea-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0750-\\u077f\\u08a0\\u08a2-\\u08ac\\u08e4-\\u08fe\\ufb50-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\u200c\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u1100-\\u11ff\\u3130-\\u3185\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3003\\u3005\\u303b\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uff9f\\uffa1-\\uffdc",b="0-9_"+y,w="·",k="((?:https?|ftp)://|mailto:)?(?:\\S{1,64}(?::\\S{0,64})?@)?(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}|["+y+"0-9]["+y+w+"0-9-]{0,64}(?:\\.["+y+"0-9]["+y+w+"0-9-]{0,64}){0,10}(?:\\.(xn--[0-9a-z]{2,16}|["+y+"]{2,24})))(?::\\d{2,5})?(?:/(?:\\S{0,255}[^\\s.;,(\\[\\]{}<>\"'])?)?",M="[a-zA-Z\\d_]{5,32}",S="\\/([a-zA-Z\\d_]{1,32})(?:@("+M+"))?(\\b|$)",A=new RegExp("(^| )(@)("+M+")|("+k+")|(\\n)|("+v+")|(^|[\\s\\(\\]])(#["+b+"]{2,64})|(^|\\s)"+S,"i"),C=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,T=/[`_*@]/,E=/(^|\s|\n)(````?)([\s\S]+?)(````?)([\s\n\.,:?!;]|$)|(^|\s)(`|\*\*|__)([^\n]+?)\7([\s\.,:?!;]|$)|@(\d+)\s*\((.+?)\)/m,$={Telegram:"tg://search_hashtag?hashtag={1}",Twitter:"https://twitter.com/hashtag/{1}",Instagram:"https://instagram.com/explore/tags/{1}/","Google Plus":"https://plus.google.com/explore/{1}"},I={Telegram:"#/im?p=%40{1}",Twitter:"https://twitter.com/{1}",Instagram:"https://instagram.com/{1}/",GitHub:"https://github.com/{1}"},x={"`":"messageEntityCode","**":"messageEntityBold",__:"messageEntityItalic"};return{wrapRichText:l,wrapPlainText:p,wrapDraftText:c,wrapUrl:f,parseEntities:i,parseMarkdown:r,parseEmojis:a,mergeEntities:o}}]).service("ServerTimeManager",["Storage",function(e){var t=tsNow(!0),n=t-t%86400,i=new Date;i.setHours(0),i.setMinutes(0),i.setSeconds(0);var a=n-Math.floor(+i/1e3),r=0,o={midnightOffset:a,serverTimeOffset:r};return e.get("server_time_offset").then(function(e){e&&(r=e,o.serverTimeOffset=e)}),o}]).service("WebPushApiManager",["$window","$timeout","$q","$rootScope","_","AppRuntimeManager",function(e,t,n,i,a,r){function o(){w||(w=!0,l(),h())}function s(){b=!1}function l(){v&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){y=!!e,g("init",e)})["catch"](function(e){console.log("Error during getSubscription()",e)})})}function c(){v&&navigator.serviceWorker.ready.then(function(e){e.pushManager.subscribe({userVisibleOnly:S}).then(function(e){y=!0,g("subscribe",e)})["catch"](function(e){"denied"===Notification.permission?console.log("Permission for Notifications was denied"):(console.log("Unable to subscribe to push.",e),S||(S=!0,setTimeout(c,0)))})})}function d(){v&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){y=!1,e&&(g("unsubscribe",e),setTimeout(function(){e.unsubscribe().then(function(e){y=!1})["catch"](function(e){console.error("Unsubscription error: ",e)})},3e3))})["catch"](function(e){console.error("Error thrown while unsubscribing from push messaging.",e)})})}function u(){v&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){console.warn("force unsubscribe",e),e&&e.unsubscribe().then(function(e){console.warn("force unsubscribe successful",e),y=!1})["catch"](function(e){console.error("Unsubscription error: ",e)})})["catch"](function(e){console.error("Error thrown while unsubscribing from push messaging.",e)})})}function p(){if(!(!v||i.idle&&i.idle.deactivated)){k.baseUrl=(location.href||"").replace(/#.*$/,"")+"#/im";var e={type:"ping",localNotifications:b,lang:{push_action_mute1d:a(Config.Mobile?"push_action_mute1d_mobile_raw":"push_action_mute1d_raw"),push_action_settings:a(Config.Mobile?"push_action_settings_mobile_raw":"push_action_settings_raw"),push_message_nopreview:a("push_message_nopreview_raw")},settings:k};navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage(e),_=setTimeout(p,1e4)}}function f(e){k=angular.copy(e),clearTimeout(_),p()}function m(){if(v&&navigator.serviceWorker.controller){var e={type:"notifications_clear"};navigator.serviceWorker.controller.postMessage(e)}}function h(){v&&(navigator.serviceWorker.addEventListener("message",function(e){if(e.data&&"push_click"==e.data.type){if(i.idle&&i.idle.deactivated)return void r.reload();i.$emit("push_notification_click",e.data.data)}}),navigator.serviceWorker.ready.then(p))}function g(e,t){if(t){var n=t.toJSON();if(!(n&&n.endpoint&&n.keys&&n.keys.p256dh&&n.keys.auth))return console.warn(dT(),"Invalid push subscription",n),d(),v=!1,g(e,!1);console.warn(dT(),"Push",e,n),i.$emit("push_"+e,{tokenType:10,tokenValue:JSON.stringify(n)})}else console.warn(dT(),"Push",e,!1),i.$emit("push_"+e,!1)}var _,v=!0,y=!1,b=!0,w=!1,k={},M=navigator.userAgent.toLowerCase().indexOf("firefox")>-1,S=!M;return"PushManager"in window&&"Notification"in window&&"serviceWorker"in navigator||(console.warn("Push messaging is not supported."),v=!1,b=!1),v&&"denied"===Notification.permission&&console.warn("The user has blocked notifications."),{isAvailable:v,start:o,isPushEnabled:y,subscribe:c,unsubscribe:d,forceUnsubscribe:u,hidePushNotifications:m,setLocalNotificationsDisabled:s,setSettings:f}}]),angular.module("myApp.i18n",["izhukov.utils"]).factory("_",["$rootScope","$locale",function(e,t){function n(e,t){return e.replace(l,function(i,a,r){var o=t[a];return void 0===o?(console.warn("[i18n] missing param "+a+' for message "'+e+'"'),""):(void 0!==r&&(o=n(o,r.split("|"))),o.toString().trim())})}function i(e,t){return e=e.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\n|&#10;/g,"<br/>")}function a(e,t){var a=!1,l=e;if("_raw"===e.substr(-4)&&(a=!0,e=e.substr(0,e.length-4)),o.hasOwnProperty(e))l=o[e];else{if(!s.hasOwnProperty(e))return console.warn("[i18n] missing key "+e),e;l=s[e],console.warn("[i18n] missing locale key "+r+" / "+e)}return a||(l=encodeEntities(l)),"_md"==e.substr(-3)&&(l=i(l)),arguments.length>1&&("string"==typeof t?(Array.prototype.shift.apply(arguments),l=n(l,arguments)):l=n(l,t)),l}var r=Config.I18n.locale,o=Config.I18n.messages,s=Config.I18n.fallback_messages,l=/\{\s*([a-zA-Z\d\-_]+)(?:\s*:\s*(.*?))?\s*\}/g;return a.locale=function(){return r},a.pluralize=function(n){var i=e.$eval(a(n+"_raw"));return function(e){return(i[t.pluralCat(e)]||"").replace("{}",e)}},a}]).filter("i18n",["_",function(e){return function(t,n){return e(t+"_raw",n)}}]).directive("ngPluralize",["_",function(e){return{restrict:"EA",priority:1,compile:function(t){var n=t.attr("when"),i=e(n+"_raw");t.attr("when",i)}}}]).directive("myI18n",["_",function(e){return{restrict:"EA",compile:function(t){var n=t.children('my-i18n-param:not([name]), [my-i18n-param=""]:not([name])').map(function(e,t){return t.outerHTML}).toArray();t.children('my-i18n-param[name], [my-i18n-param]:not([my-i18n-param=""]), [my-i18n-param][name]').each(function(e,t){n[angular.element(t).attr("my-i18n-param")||angular.element(t).attr("name")]=t.outerHTML}),t.children("my-i18n-param").remove();var i=t.attr("my-i18n")||t.attr("msgid")?t:t.children("my-i18n-format, [my-i18n-format]");i.each(function(t,i){var a=angular.element(i),r=a.attr("my-i18n")||a.attr("msgid")||a.attr("my-i18n-format")||a.html().replace(/\s+/g," ").trim();if(a.hasClass("nocopy")){var o=e(r+"_raw",n);a.attr("data-content",o)}else{var o=e(r,n);a.html(o)}})}}}]),angular.module("izhukov.mtproto",["izhukov.utils"]).factory("MtpDcConfigurator",function(){function e(e,a){if(void 0===i[e]){var r,o,s=!1;if(Config.Modes.ssl||!Config.Modes.http){var l=t[e-1]+(a?"-1":""),c=Config.Modes.test?"apiw_test1":"apiw1";return s="https://"+l+".web.telegram.org/"+c}for(r=0;r<n.length;r++)if(o=n[r],o.id==e){s="http://"+o.host+(80!=o.port?":"+o.port:"")+"/apiw1";break}i[e]=s}return i[e]}var t=["pluto","venus","aurora","vesta","flora"],n=Config.Modes.test?[{id:1,host:"149.154.175.10",port:80},{id:2,host:"149.154.167.40",port:80},{id:3,host:"149.154.175.117",port:80}]:[{id:1,host:"149.154.175.50",port:80},{id:2,host:"149.154.167.51",port:80},{id:3,host:"149.154.175.100",port:80},{id:4,host:"149.154.167.91",port:80},{id:5,host:"149.154.171.5",port:80}],i={};return{chooseServer:e}}).factory("MtpRsaKeysManager",function(){function e(){if(!a){for(var e=0;e<n.length;e++){var t=n[e],r=new TLSerialization;r.storeBytes(bytesFromHex(t.modulus),"n"),r.storeBytes(bytesFromHex(t.exponent),"e");var o=r.getBuffer(),s=sha1BytesSync(o).slice(-8);s.reverse(),i[bytesToHex(s)]={modulus:t.modulus,exponent:t.exponent}}a=!0}}function t(t){e();var n,a,r;for(r=0;r<t.length;r++)if(n=bigStringInt(t[r]).toString(16),a=i[n])return angular.extend({fingerprint:t[r]},a);return!1}var n=[{modulus:"c150023e2f70db7985ded064759cfecf0af328e69a41daf4d6f01b538135a6f91f8f8b2a0ec9ba9720ce352efcf6c5680ffc424bd634864902de0b4bd6d49f4e580230e3ae97d95c8b19442b3c0a10d8f5633fecedd6926a7f6dab0ddb7d457f9ea81b8465fcd6fffeed114011df91c059caedaf97625f6c96ecc74725556934ef781d866b34f011fce4d835a090196e9a5f0e4449af7eb697ddb9076494ca5f81104a305b6dd27665722c46b60e5df680fb16b210607ef217652e60236c255f6a28315f4083a96791d7214bf64c1df4fd0db1944fb26a2a57031b32eee64ad15a8ba68885cde74a5bfc920f6abf59ba5c75506373e7130f9042da922179251f",exponent:"010001"},{modulus:"aeec36c8ffc109cb099624685b97815415657bd76d8c9c3e398103d7ad16c9bba6f525ed0412d7ae2c2de2b44e77d72cbf4b7438709a4e646a05c43427c7f184debf72947519680e651500890c6832796dd11f772c25ff8f576755afe055b0a3752c696eb7d8da0d8be1faf38c9bdd97ce0a77d3916230c4032167100edd0f9e7a3a9b602d04367b689536af0d64b613ccba7962939d3b57682beb6dae5b608130b2e52aca78ba023cf6ce806b1dc49c72cf928a7199d22e3d7ac84e47bc9427d0236945d10dbd15177bab413fbf0edfda09f014c7a7da088dde9759702ca760af2b8e4e97cc055c617bd74c3d97008635b98dc4d621b4891da9fb0473047927",exponent:"010001"},{modulus:"bdf2c77d81f6afd47bd30f29ac76e55adfe70e487e5e48297e5a9055c9c07d2b93b4ed3994d3eca5098bf18d978d54f8b7c713eb10247607e69af9ef44f38e28f8b439f257a11572945cc0406fe3f37bb92b79112db69eedf2dc71584a661638ea5becb9e23585074b80d57d9f5710dd30d2da940e0ada2f1b878397dc1a72b5ce2531b6f7dd158e09c828d03450ca0ff8a174deacebcaa22dde84ef66ad370f259d18af806638012da0ca4a70baa83d9c158f3552bc9158e69bf332a45809e1c36905a5caa12348dd57941a482131be7b2355a5f4635374f3bd3ddf5ff925bf4809ee27c1e67d9120c5fe08a9de458b1b4a3c5d0a428437f2beca81f4e2d5ff",exponent:"010001"},{modulus:"b3f762b739be98f343eb1921cf0148cfa27ff7af02b6471213fed9daa0098976e667750324f1abcea4c31e43b7d11f1579133f2b3d9fe27474e462058884e5e1b123be9cbbc6a443b2925c08520e7325e6f1a6d50e117eb61ea49d2534c8bb4d2ae4153fabe832b9edf4c5755fdd8b19940b81d1d96cf433d19e6a22968a85dc80f0312f596bd2530c1cfb28b5fe019ac9bc25cd9c2a5d8a0f3a1c0c79bcca524d315b5e21b5c26b46babe3d75d06d1cd33329ec782a0f22891ed1db42a1d6c0dea431428bc4d7aabdcf3e0eb6fda4e23eb7733e7727e9a1915580796c55188d2596d2665ad1182ba7abf15aaa5a8b779ea996317a20ae044b820bff35b6e8a1",exponent:"010001"},{modulus:"be6a71558ee577ff03023cfa17aab4e6c86383cff8a7ad38edb9fafe6f323f2d5106cbc8cafb83b869cffd1ccf121cd743d509e589e68765c96601e813dc5b9dfc4be415c7a6526132d0035ca33d6d6075d4f535122a1cdfe017041f1088d1419f65c8e5490ee613e16dbf662698c0f54870f0475fa893fc41eb55b08ff1ac211bc045ded31be27d12c96d8d3cfc6a7ae8aa50bf2ee0f30ed507cc2581e3dec56de94f5dc0a7abee0be990b893f2887bd2c6310a1e0a9e3e38bd34fded2541508dc102a9c9b4c95effd9dd2dfe96c29be647d6c69d66ca500843cfaed6e440196f1dbe0e2e22163c61ca48c79116fa77216726749a976a1c4b0944b5121e8c01",exponent:"010001"}],i={},a=!1;return{prepare:e,select:t}}).service("MtpSecureRandom",["$window",function(e){return $(e).on("click keydown",rng_seed_time),new SecureRandom}]).factory("MtpTimeManager",["Storage",function(e){function t(){var e=tsNow(),t=Math.floor(e/1e3)+a,n=e%1e3,r=nextRandomInt(65535),o=[t,n<<21|r<<3|4];return(i[0]>o[0]||i[0]==o[0]&&i[1]>=o[1])&&(o=[i[0],i[1]+4]),i=o,longFromInts(o[0],o[1])}function n(t,n){var r=t-Math.floor((n||tsNow())/1e3),o=Math.abs(a-r)>10;return e.set({server_time_offset:r}),i=[0,0],a=r,console.log(dT(),"Apply server time",t,n,r,o),o}var i=[0,0],a=0;return e.get("server_time_offset").then(function(e){e&&(a=e)}),{generateID:t,applyServerTime:n}}]).factory("MtpAuthorizer",["MtpDcConfigurator","MtpRsaKeysManager","MtpSecureRandom","MtpTimeManager","CryptoWorker","$http","$q","$timeout",function(e,t,n,i,a,r,o,s){function l(t,n){var a=n.byteLength,s=new Int32Array(n),l=new TLSerialization;l.storeLongP(0,0,"auth_key_id"),l.storeLong(i.generateID(),"msg_id"),l.storeInt(a,"request_length");var c=l.getBuffer(),d=new Int32Array(c),u=c.byteLength,p=new ArrayBuffer(u+a),f=new Int32Array(p);f.set(d),f.set(s,d.length);var m,h=_?p:f,g=e.chooseServer(t),v={code:406,type:"NETWORK_BAD_RESPONSE",url:g};try{m=r.post(g,h,{responseType:"arraybuffer",transformRequest:null})}catch(y){m=o.reject(angular.extend(v,{originalError:y}))}return m.then(function(e){if(!e.data||!e.data.byteLength)return o.reject(v);try{var t=new TLDeserialization(e.data,{mtproto:!0});t.fetchLong("auth_key_id"),t.fetchLong("msg_id"),t.fetchInt("msg_len")}catch(n){return o.reject(angular.extend(v,{originalError:n}))}return t},function(e){return e.message||e.type||(e=angular.extend(v,{originalError:e})),o.reject(e)})}function c(e){var n=e.deferred,i=new TLSerialization({mtproto:!0});i.storeMethod("req_pq",{nonce:e.nonce}),console.log(dT(),"Send req_pq",bytesToHex(e.nonce)),l(e.dcID,i.getBuffer()).then(function(i){var r=i.fetchObject("ResPQ");if("resPQ"!=r._)throw new Error("[MT] resPQ response invalid: "+r._);if(!bytesCmp(e.nonce,r.nonce))throw new Error("[MT] resPQ nonce mismatch");if(e.serverNonce=r.server_nonce,e.pq=r.pq,e.fingerprints=r.server_public_key_fingerprints,console.log(dT(),"Got ResPQ",bytesToHex(e.serverNonce),bytesToHex(e.pq),e.fingerprints),e.publicKey=t.select(e.fingerprints),!e.publicKey)throw new Error("[MT] No public key found");console.log(dT(),"PQ factorization start",e.pq),a.factorize(e.pq).then(function(t){e.p=t[0],e.q=t[1],console.log(dT(),"PQ factorization done",t[2]),d(e)},function(e){console.log("Worker error",e,e.stack),n.reject(e)})},function(e){console.error(dT(),"req_pq error",e.message),n.reject(e)}),s(function(){t.prepare()})}function d(e){var t=e.deferred;e.newNonce=new Array(32),n.nextBytes(e.newNonce);var i=new TLSerialization({mtproto:!0});i.storeObject({_:"p_q_inner_data",pq:e.pq,p:e.p,q:e.q,nonce:e.nonce,server_nonce:e.serverNonce,new_nonce:e.newNonce},"P_Q_inner_data","DECRYPTED_DATA");var a=sha1BytesSync(i.getBuffer()).concat(i.getBytes()),r=new TLSerialization({mtproto:!0});r.storeMethod("req_DH_params",{nonce:e.nonce,server_nonce:e.serverNonce,p:e.p,q:e.q,public_key_fingerprint:e.publicKey.fingerprint,encrypted_data:rsaEncrypt(e.publicKey,a)}),console.log(dT(),"Send req_DH_params"),l(e.dcID,r.getBuffer()).then(function(n){var i=n.fetchObject("Server_DH_Params","RESPONSE");if("server_DH_params_fail"!=i._&&"server_DH_params_ok"!=i._)return t.reject(new Error("[MT] Server_DH_Params response invalid: "+i._)),!1;if(!bytesCmp(e.nonce,i.nonce))return t.reject(new Error("[MT] Server_DH_Params nonce mismatch")),!1;if(!bytesCmp(e.serverNonce,i.server_nonce))return t.reject(new Error("[MT] Server_DH_Params server_nonce mismatch")),!1;if("server_DH_params_fail"==i._){var a=sha1BytesSync(e.newNonce).slice(-16);return bytesCmp(a,i.new_nonce_hash)?(t.reject(new Error("[MT] server_DH_params_fail")),!1):(t.reject(new Error("[MT] server_DH_params_fail new_nonce_hash mismatch")),!1)}try{u(e,i.encrypted_answer)}catch(r){return t.reject(r),!1}f(e)},function(e){t.reject(e)})}function u(e,t){e.localTime=tsNow(),e.tmpAesKey=sha1BytesSync(e.newNonce.concat(e.serverNonce)).concat(sha1BytesSync(e.serverNonce.concat(e.newNonce)).slice(0,12)),e.tmpAesIv=sha1BytesSync(e.serverNonce.concat(e.newNonce)).slice(12).concat(sha1BytesSync([].concat(e.newNonce,e.newNonce)),e.newNonce.slice(0,4));var n=aesDecryptSync(t,e.tmpAesKey,e.tmpAesIv),a=n.slice(0,20),r=n.slice(20),o=bytesToArrayBuffer(r),s=new TLDeserialization(o,{mtproto:!0}),l=s.fetchObject("Server_DH_inner_data");if("server_DH_inner_data"!=l._)throw new Error("[MT] server_DH_inner_data response invalid: "+constructor);if(!bytesCmp(e.nonce,l.nonce))throw new Error("[MT] server_DH_inner_data nonce mismatch");if(!bytesCmp(e.serverNonce,l.server_nonce))throw new Error("[MT] server_DH_inner_data serverNonce mismatch");console.log(dT(),"Done decrypting answer"),e.g=l.g,e.dhPrime=l.dh_prime,e.gA=l.g_a,e.serverTime=l.server_time,e.retry=0,p(e.g,e.dhPrime,e.gA);var c=s.getOffset();if(!bytesCmp(a,sha1BytesSync(r.slice(0,c))))throw new Error("[MT] server_DH_inner_data SHA1-hash mismatch");i.applyServerTime(e.serverTime,e.localTime)}function p(e,t,n){console.log(dT(),"Verifying DH params");var i=bytesToHex(t);if(3!=e||"c71caeb9c6b1c9048e6c522f70f13f73980d40238e3e21c14934d037563d930f48198a0aa7c14058229493d22530f4dbfa336f6e0ac925139543aed44cce7c3720fd51f69458705ac68cd4fe6b6b13abdc9746512969328454f18faf8c595f642477fe96bb2a941d5bcd1d4ac8cc49880708fa9b378e3c4f3a9060bee67cf9a4a4a695811051907e162753b56b0f6b410dba74d8a84b2a14b3144e0ef1284754fd17ed950d5965b4b9dd46582db1178d169c6bc465b0d6ff9ca3928fef5b9ae4e418fc15e83ebea0f87fa9ff5eed70050ded2849f47bf959d956850ce929851f0d8115f635b105ee2e4e15d04b2454bf6f4fadf034b10403119cd8e3b92fcc5b"!==i)throw new Error("[MT] DH params are not verified: unknown dhPrime");console.log(dT(),"dhPrime cmp OK");var a=new BigInteger(bytesToHex(n),16),r=new BigInteger(i,16);if(a.compareTo(BigInteger.ONE)<=0)throw new Error("[MT] DH params are not verified: gA <= 1");if(a.compareTo(r.subtract(BigInteger.ONE))>=0)throw new Error("[MT] DH params are not verified: gA >= dhPrime - 1");console.log(dT(),"1 < gA < dhPrime-1 OK");var o=new BigInteger(null);o.fromInt(2);var s=o.pow(1984);if(a.compareTo(s)<0)throw new Error("[MT] DH params are not verified: gA < 2^{2048-64}");if(a.compareTo(r.subtract(s))>=0)throw new Error("[MT] DH params are not verified: gA > dhPrime - 2^{2048-64}");return console.log(dT(),"2^{2048-64} < gA < dhPrime-2^{2048-64} OK"),!0}function f(e){var t=e.deferred,i=bytesFromHex(e.g.toString(16));e.b=new Array(256),n.nextBytes(e.b),a.modPow(i,e.b,e.dhPrime).then(function(n){var i=new TLSerialization({mtproto:!0});i.storeObject({_:"client_DH_inner_data",nonce:e.nonce,server_nonce:e.serverNonce,retry_id:[0,e.retry++],g_b:n},"Client_DH_Inner_Data");var r=sha1BytesSync(i.getBuffer()).concat(i.getBytes()),o=aesEncryptSync(r,e.tmpAesKey,e.tmpAesIv),s=new TLSerialization({mtproto:!0});s.storeMethod("set_client_DH_params",{nonce:e.nonce,server_nonce:e.serverNonce,encrypted_data:o}),console.log(dT(),"Send set_client_DH_params"),l(e.dcID,s.getBuffer()).then(function(n){var i=n.fetchObject("Set_client_DH_params_answer");return"dh_gen_ok"!=i._&&"dh_gen_retry"!=i._&&"dh_gen_fail"!=i._?(t.reject(new Error("[MT] Set_client_DH_params_answer response invalid: "+i._)),!1):bytesCmp(e.nonce,i.nonce)?bytesCmp(e.serverNonce,i.server_nonce)?void a.modPow(e.gA,e.b,e.dhPrime).then(function(n){var a=sha1BytesSync(n),r=a.slice(0,8),o=a.slice(-8);switch(console.log(dT(),"Got Set_client_DH_params_answer",i._),i._){case"dh_gen_ok":var s=sha1BytesSync(e.newNonce.concat([1],r)).slice(-16);if(!bytesCmp(s,i.new_nonce_hash1))return t.reject(new Error("[MT] Set_client_DH_params_answer new_nonce_hash1 mismatch")),!1;var l=bytesXor(e.newNonce.slice(0,8),e.serverNonce.slice(0,8));e.authKeyID=o,e.authKey=n,e.serverSalt=l,t.resolve(e);break;case"dh_gen_retry":var c=sha1BytesSync(e.newNonce.concat([2],r)).slice(-16);return bytesCmp(c,i.new_nonce_hash2)?f(e):(t.reject(new Error("[MT] Set_client_DH_params_answer new_nonce_hash2 mismatch")),!1);case"dh_gen_fail":var d=sha1BytesSync(e.newNonce.concat([3],r)).slice(-16);return bytesCmp(d,i.new_nonce_hash3)?(t.reject(new Error("[MT] Set_client_DH_params_answer fail")),!1):(t.reject(new Error("[MT] Set_client_DH_params_answer new_nonce_hash3 mismatch")),!1)}},function(e){t.reject(e)}):(t.reject(new Error("[MT] Set_client_DH_params_answer server_nonce mismatch")),!1):(t.reject(new Error("[MT] Set_client_DH_params_answer nonce mismatch")),!1)},function(e){t.reject(e)})},function(e){t.reject(e)})}function m(t){if(void 0!==v[t])return v[t];for(var n=[],i=0;i<16;i++)n.push(nextRandomInt(255));if(!e.chooseServer(t))return o.reject(new Error("[MT] No server found for dc "+t));var a={dcID:t,nonce:n,deferred:o.defer()};return s(function(){c(a)}),v[t]=a.deferred.promise,v[t]["catch"](function(){delete v[t]}),v[t]}var h=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),g=h&&parseFloat(h[1])||!1,_=!("ArrayBufferView"in window)&&g>0&&g<30;delete r.defaults.headers.post["Content-Type"],delete r.defaults.headers.common.Accept;var v={};return{auth:m}}]).factory("MtpNetworkerFactory",["MtpDcConfigurator","MtpTimeManager","MtpSecureRandom","Storage","CryptoWorker","AppRuntimeManager","$http","$q","$timeout","$interval","$rootScope",function(e,t,n,i,a,r,o,s,l,c,d){function u(e,t,n,i){i=i||{},this.dcID=e,this.authKey=t,this.authKeyUint8=convertToUint8Array(t),this.authKeyID=sha1BytesSync(t).slice(-8),this.serverSalt=n,this.upload=i.fileUpload||i.fileDownload||!1,
this.updateSession(),this.lastServerMessages=[],this.checkConnectionPeriod=0,this.sentMessages={},this.pendingMessages={},this.pendingAcks=[],this.pendingResends=[],this.connectionInited=!1,this.longPollInt=c(this.checkLongPoll.bind(this),1e4),this.checkLongPoll(),h||(h=!0,d.offline=!0,d.offlineConnecting=!0),Config.Navigator.mobile&&this.setupMobileSleep()}function p(){g&&(g=!1,m({_:"new_session_created"},!0))}function f(){g=!0}var m,h=!1,g=!1,_=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),v=_&&parseFloat(_[1])||!1,y=!("ArrayBufferView"in window)&&v>0&&v<30;return delete o.defaults.headers.post["Content-Type"],delete o.defaults.headers.common.Accept,d.retryOnline=function(){$(document.body).trigger("online")},u.prototype.updateSession=function(){this.seqNo=0,this.prevSessionID=this.sessionID,this.sessionID=new Array(8),n.nextBytes(this.sessionID)},u.prototype.setupMobileSleep=function(){var e=this;d.$watch("idle.isIDLE",function(t){t?e.sleepAfter=tsNow()+3e4:(delete e.sleepAfter,e.checkLongPoll())}),d.$on("push_received",function(){e.sleepAfter&&(e.sleepAfter=tsNow()+3e4,e.checkLongPoll())})},u.prototype.updateSentMessage=function(e){var n=this.sentMessages[e];if(!n)return!1;var i=this;if(n.container){var a=[];angular.forEach(n.inner,function(e){var t=i.updateSentMessage(e);t&&a.push(t.msg_id)}),n.inner=a}return n.msg_id=t.generateID(),n.seq_no=this.generateSeqNo(n.notContentRelated||n.container),this.sentMessages[n.msg_id]=n,delete i.sentMessages[e],n},u.prototype.generateSeqNo=function(e){var t=2*this.seqNo;return e||(t++,this.seqNo++),t},u.prototype.wrapMtpCall=function(e,n,i){var a=new TLSerialization({mtproto:!0});a.storeMethod(e,n);var r=t.generateID(),o=this.generateSeqNo(),s={msg_id:r,seq_no:o,body:a.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT call",e,n,r,o),this.pushMessage(s,i)},u.prototype.wrapMtpMessage=function(e,n){n=n||{};var i=new TLSerialization({mtproto:!0});i.storeObject(e,"Object");var a=t.generateID(),r=this.generateSeqNo(n.notContentRelated),o={msg_id:a,seq_no:r,body:i.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT message",e,a,r),this.pushMessage(o,n)},u.prototype.wrapApiCall=function(e,n,i){var a=new TLSerialization(i);this.connectionInited||(a.storeInt(3667594509,"invokeWithLayer"),a.storeInt(Config.Schema.API.layer,"layer"),a.storeInt(3343392166,"initConnection"),a.storeInt(Config.App.id,"api_id"),a.storeString(navigator.userAgent||"Unknown UserAgent","device_model"),a.storeString(navigator.platform||"Unknown Platform","system_version"),a.storeString(Config.App.version,"app_version"),a.storeString(navigator.language||"en","system_lang_code"),a.storeString("","lang_pack"),a.storeString(navigator.language||"en","lang_code")),i.afterMessageID&&(a.storeInt(3416209197,"invokeAfterMsg"),a.storeLong(i.afterMessageID,"msg_id")),i.resultType=a.storeMethod(e,n);var r=t.generateID(),o=this.generateSeqNo(),s={msg_id:r,seq_no:o,body:a.getBytes(!0),isAPI:!0};return Config.Modes.debug?console.log(dT(),"Api call",e,n,r,o,i):console.log(dT(),"Api call",e),this.pushMessage(s,i)},u.prototype.checkLongPoll=function(e){var t=this.cleanupSent();if(this.longPollPending&&tsNow()<this.longPollPending||this.offline||g)return!1;var n=this;i.get("dc").then(function(e){t&&(e!=n.dcID||n.upload||n.sleepAfter&&tsNow()>n.sleepAfter)||n.sendLongPoll()})},u.prototype.sendLongPoll=function(){var e=25e3,t=this;this.longPollPending=tsNow()+e,this.wrapMtpCall("http_wait",{max_delay:500,wait_after:150,max_wait:e},{noResponse:!0,longPoll:!0}).then(function(){delete t.longPollPending,setZeroTimeout(t.checkLongPoll.bind(t))},function(e){console.log("Long-poll failed",e)})},u.prototype.pushMessage=function(e,t){var n=s.defer();return this.sentMessages[e.msg_id]=angular.extend(e,t||{},{deferred:n}),this.pendingMessages[e.msg_id]=0,t&&t.noShedule||this.sheduleRequest(),angular.isObject(t)&&(t.messageID=e.msg_id),n.promise},u.prototype.pushResend=function(e,t){var n=t?tsNow()+t:0,i=this.sentMessages[e];if(i.container)for(var a=0;a<i.inner.length;a++)this.pendingMessages[i.inner[a]]=n;else this.pendingMessages[e]=n;this.sheduleRequest(t)},u.prototype.getMsgKey=function(e,t){var n=this.authKeyUint8,i=t?0:8,r=bufferConcat(n.subarray(88+i,88+i+32),e);return a.sha256Hash(r).then(function(e){var t=new Uint8Array(e).subarray(8,24);return t})},u.prototype.getAesKeyIv=function(e,t){var n=this.authKeyUint8,i=t?0:8,r=new Uint8Array(52),o=new Uint8Array(52),l={};return r.set(e,0),r.set(n.subarray(i,i+36),16),l.sha2a=a.sha256Hash(r),o.set(n.subarray(40+i,40+i+36),0),o.set(e,36),l.sha2b=a.sha256Hash(o),s.all(l).then(function(e){var t=new Uint8Array(32),n=new Uint8Array(32),i=new Uint8Array(e.sha2a),a=new Uint8Array(e.sha2b);return t.set(i.subarray(0,8)),t.set(a.subarray(8,24),8),t.set(i.subarray(24,32),24),n.set(a.subarray(0,8)),n.set(i.subarray(8,24),8),n.set(a.subarray(24,32),24),[t,n]})},u.prototype.checkConnection=function(e){d.offlineConnecting=!0,console.log(dT(),"Check connection",e),l.cancel(this.checkConnectionPromise);var n=new TLSerialization({mtproto:!0}),i=[nextRandomInt(4294967295),nextRandomInt(4294967295)];n.storeMethod("ping",{ping_id:i});var a={msg_id:t.generateID(),seq_no:this.generateSeqNo(!0),body:n.getBytes()},r=this;this.sendEncryptedRequest(a,{timeout:15e3}).then(function(e){delete d.offlineConnecting,r.toggleOffline(!1)},function(){console.log(dT(),"Delay ",1e3*r.checkConnectionPeriod),r.checkConnectionPromise=l(r.checkConnection.bind(r),parseInt(1e3*r.checkConnectionPeriod)),r.checkConnectionPeriod=Math.min(60,1.5*r.checkConnectionPeriod),l(function(){delete d.offlineConnecting},1e3)})},u.prototype.toggleOffline=function(e){return(void 0===this.offline||this.offline!=e)&&(this.offline=e,d.offline=e,d.offlineConnecting=!1,void(this.offline?(l.cancel(this.nextReqPromise),delete this.nextReq,this.checkConnectionPeriod<1.5&&(this.checkConnectionPeriod=0),this.checkConnectionPromise=l(this.checkConnection.bind(this),parseInt(1e3*this.checkConnectionPeriod)),this.checkConnectionPeriod=Math.min(30,1.5*(1+this.checkConnectionPeriod)),this.onOnlineCb=this.checkConnection.bind(this),$(document.body).on("online focus",this.onOnlineCb)):(delete this.longPollPending,this.checkLongPoll(),this.sheduleRequest(),this.onOnlineCb&&$(document.body).off("online focus",this.onOnlineCb),l.cancel(this.checkConnectionPromise))))},u.prototype.performSheduledRequest=function(){if(this.offline||g)return console.log(dT(),"Cancel sheduled"),!1;if(delete this.nextReq,this.pendingAcks.length){for(var e=[],n=0;n<this.pendingAcks.length;n++)e.push(this.pendingAcks[n]);this.wrapMtpMessage({_:"msgs_ack",msg_ids:e},{notContentRelated:!0,noShedule:!0})}if(this.pendingResends.length){for(var i=[],a={noShedule:!0,notContentRelated:!0},n=0;n<this.pendingResends.length;n++)i.push(this.pendingResends[n]);this.wrapMtpMessage({_:"msg_resend_req",msg_ids:i},a),this.lastResendReq={req_msg_id:a.messageID,resend_msg_ids:i}}var r,o=[],s=0,l=tsNow(),c=!1,d=!1,u=!1,p=0,f=this;if(angular.forEach(this.pendingMessages,function(e,t){if(!e||e>=l){if(r=f.sentMessages[t]){var n=(r.body.byteLength||r.body.length)+32;if(!r.notContentRelated&&u)return;if(!r.notContentRelated&&s&&s+n>655360)return void(u=!0);if(r.singleInRequest&&(p++,p>1))return;o.push(r),s+=n,r.isAPI?c=!0:r.longPoll&&(d=!0)}delete f.pendingMessages[t]}}),c&&!d){var m=new TLSerialization({mtproto:!0});m.storeMethod("http_wait",{max_delay:500,wait_after:150,max_wait:3e3}),o.push({msg_id:t.generateID(),seq_no:this.generateSeqNo(),body:m.getBytes()})}if(o.length){var h=[];if(o.length>1){var _=new TLSerialization({mtproto:!0,startMaxLength:s+64});_.storeInt(1945237724,"CONTAINER[id]"),_.storeInt(o.length,"CONTAINER[count]");for(var v=[],n=0;n<o.length;n++)_.storeLong(o[n].msg_id,"CONTAINER["+n+"][msg_id]"),v.push(o[n].msg_id),_.storeInt(o[n].seq_no,"CONTAINER["+n+"][seq_no]"),_.storeInt(o[n].body.length,"CONTAINER["+n+"][bytes]"),_.storeRawBytes(o[n].body,"CONTAINER["+n+"][body]"),o[n].noResponse&&h.push(o[n].msg_id);var y={msg_id:t.generateID(),seq_no:this.generateSeqNo(!0),container:!0,inner:v};r=angular.extend({body:_.getBytes(!0)},y),this.sentMessages[r.msg_id]=y,Config.Modes.debug&&console.log(dT(),"Container",v,r.msg_id,r.seq_no)}else r.noResponse&&h.push(r.msg_id),this.sentMessages[r.msg_id]=r;this.pendingAcks=[],this.sendEncryptedRequest(r).then(function(e){f.toggleOffline(!1),f.parseResponse(e.data).then(function(e){Config.Modes.debug&&console.log(dT(),"Server response",f.dcID,e),f.processMessage(e.response,e.messageID,e.sessionID),angular.forEach(h,function(e){if(f.sentMessages[e]){var t=f.sentMessages[e].deferred;delete f.sentMessages[e],t.resolve()}}),f.checkLongPoll(),this.checkConnectionPeriod=Math.max(1.1,Math.sqrt(this.checkConnectionPeriod))})},function(e){console.error("Encrypted request failed",e),r.container?(angular.forEach(r.inner,function(e){f.pendingMessages[e]=0}),delete f.sentMessages[r.msg_id]):f.pendingMessages[r.msg_id]=0,angular.forEach(h,function(e){if(f.sentMessages[e]){var t=f.sentMessages[e].deferred;delete f.sentMessages[e],delete f.pendingMessages[e],t.reject()}}),f.toggleOffline(!0)}),(u||p>1)&&this.sheduleRequest()}},u.prototype.getEncryptedMessage=function(e){var t=this;return t.getMsgKey(e,!0).then(function(n){return t.getAesKeyIv(n,!0).then(function(t){return a.aesEncrypt(e,t[0],t[1]).then(function(e){return{bytes:e,msgKey:n}})})})},u.prototype.getDecryptedMessage=function(e,t){return this.getAesKeyIv(e,!1).then(function(e){return a.aesDecrypt(t,e[0],e[1])})},u.prototype.sendEncryptedRequest=function(t,i){var a=this;i=i||{};var r=new TLSerialization({startMaxLength:t.body.length+2048});r.storeIntBytes(this.serverSalt,64,"salt"),r.storeIntBytes(this.sessionID,64,"session_id"),r.storeLong(t.msg_id,"message_id"),r.storeInt(t.seq_no,"seq_no"),r.storeInt(t.body.length,"message_data_length"),r.storeRawBytes(t.body,"message_data");var l=r.getBuffer(),c=16-r.offset%16+16*(1+nextRandomInt(5)),d=new Array(c);n.nextBytes(d);var u=bufferConcat(l,d);return this.getEncryptedMessage(u).then(function(t){var n=new TLSerialization({startMaxLength:t.bytes.byteLength+256});n.storeIntBytes(a.authKeyID,64,"auth_key_id"),n.storeIntBytes(t.msgKey,128,"msg_key"),n.storeRawBytes(t.bytes,"encrypted_data");var r,l=y?n.getBuffer():n.getArray(),c=e.chooseServer(a.dcID,a.upload),d={code:406,type:"NETWORK_BAD_RESPONSE",url:c};try{i=angular.extend(i||{},{responseType:"arraybuffer",transformRequest:null}),r=o.post(c,l,i)}catch(u){r=s.reject(u)}return r.then(function(e){return e.data&&e.data.byteLength?e:s.reject(d)},function(e){return e.message||e.type||(e=angular.extend(d,{type:"NETWORK_BAD_REQUEST",originalError:e})),s.reject(e)})})},u.prototype.parseResponse=function(e){var t=this,n=new TLDeserialization(e),i=n.fetchIntBytes(64,!1,"auth_key_id");if(!bytesCmp(i,this.authKeyID))throw new Error("[MT] Invalid server auth_key_id: "+bytesToHex(i));var a=n.fetchIntBytes(128,!0,"msg_key"),r=n.fetchRawBytes(e.byteLength-n.getOffset(),!0,"encrypted_data");return t.getDecryptedMessage(a,r).then(function(e){return t.getMsgKey(e,!1).then(function(n){if(!bytesCmp(a,n))throw console.warn("[MT] msg_keys",a,bytesFromArrayBuffer(n)),new Error("[MT] server msgKey mismatch");var i=new TLDeserialization(e,{mtproto:!0}),r=(i.fetchIntBytes(64,!1,"salt"),i.fetchIntBytes(64,!1,"session_id")),o=i.fetchLong("message_id");if(!(bytesCmp(r,t.sessionID)||t.prevSessionID&&bytesCmp(r,t.prevSessionID)))throw console.warn("Sessions",r,t.sessionID,t.prevSessionID),new Error("[MT] Invalid server session_id: "+bytesToHex(r));var s=i.fetchInt("seq_no"),l=e.byteLength,c=i.fetchInt("message_data[length]"),d=i.getOffset();if(c%4||c>l-d)throw new Error("[MT] Invalid body length: "+c);var u=i.fetchRawBytes(c,!0,"message_data"),d=i.getOffset(),p=l-d;if(p<12||p>1024)throw new Error("[MT] Invalid padding length: "+p);var f=bytesToArrayBuffer(u),m={mtproto:!0,override:{mt_message:function(e,t){e.msg_id=this.fetchLong(t+"[msg_id]"),e.seqno=this.fetchInt(t+"[seqno]"),e.bytes=this.fetchInt(t+"[bytes]");var n=this.getOffset();try{e.body=this.fetchObject("Object",t+"[body]")}catch(i){console.error(dT(),"parse error",i.message,i.stack),e.body={_:"parse_error",error:i}}this.offset!=n+e.bytes&&(this.offset=n+e.bytes)},mt_rpc_result:function(e,n){e.req_msg_id=this.fetchLong(n+"[req_msg_id]");var i=t.sentMessages[e.req_msg_id],a=i&&i.resultType||"Object";e.req_msg_id&&!i||(e.result=this.fetchObject(a,n+"[result]"))}}},i=new TLDeserialization(f,m),h=i.fetchObject("","INPUT");return{response:h,messageID:o,sessionID:r,seqNo:s}})})},u.prototype.applyServerSalt=function(e){var t=longToBytes(e),n={};return n["dc"+this.dcID+"_server_salt"]=bytesToHex(t),i.set(n),this.serverSalt=t,!0},u.prototype.sheduleRequest=function(e){this.offline&&this.checkConnection("forced shedule");var t=tsNow()+e;return!(e&&this.nextReq&&this.nextReq<=t)&&(l.cancel(this.nextReqPromise),e>0?this.nextReqPromise=l(this.performSheduledRequest.bind(this),e||0):setZeroTimeout(this.performSheduledRequest.bind(this)),void(this.nextReq=t))},u.prototype.ackMessage=function(e){this.pendingAcks.push(e),this.sheduleRequest(3e4)},u.prototype.reqResendMessage=function(e){console.log(dT(),"Req resend",e),this.pendingResends.push(e),this.sheduleRequest(100)},u.prototype.cleanupSent=function(){var e=this,t=!1;return angular.forEach(this.sentMessages,function(n,i){if(n.notContentRelated&&void 0===e.pendingMessages[i])delete e.sentMessages[i];else if(n.container){for(var a=0;a<n.inner.length;a++)if(void 0!==e.sentMessages[n.inner[a]])return void(t=!0);delete e.sentMessages[i]}else t=!0}),!t},u.prototype.processMessageAck=function(e){var t=this.sentMessages[e];return!(!t||t.acked)&&(delete t.body,t.acked=!0,!0)},u.prototype.processError=function(e){var t=(e.error_message||"").match(/^([A-Z_0-9]+\b)(: (.+))?/)||[];return e.error_code=uintToInt(e.error_code),{code:!e.error_code||e.error_code<=0?500:e.error_code,type:t[1]||"UNKNOWN",description:t[3]||"CODE#"+e.error_code+" "+e.error_message,originalError:e}},u.prototype.processMessage=function(e,n,a){var r=parseInt(n.toString(10).substr(0,-10),10);if(r%2)return void console.warn("[MT] Server even message id: ",n,e);switch(e._){case"msg_container":for(var o=e.messages.length,s=0;s<o;s++)this.processMessage(e.messages[s],e.messages[s].msg_id,a);break;case"bad_server_salt":console.log(dT(),"Bad server salt",e);var l=this.sentMessages[e.bad_msg_id];if(!l||l.seq_no!=e.bad_msg_seqno)throw console.log(e.bad_msg_id,e.bad_msg_seqno),new Error("[MT] Bad server salt for invalid message");this.applyServerSalt(e.new_server_salt),this.pushResend(e.bad_msg_id),this.ackMessage(n);break;case"bad_msg_notification":console.log(dT(),"Bad msg notification",e);var l=this.sentMessages[e.bad_msg_id];if(!l||l.seq_no!=e.bad_msg_seqno)throw console.log(e.bad_msg_id,e.bad_msg_seqno),new Error("[MT] Bad msg notification for invalid message");if(16==e.error_code||17==e.error_code){t.applyServerTime(bigStringInt(n).shiftRight(32).toString(10))&&(console.log(dT(),"Update session"),this.updateSession());var c=this.updateSentMessage(e.bad_msg_id);this.pushResend(c.msg_id),this.ackMessage(n)}break;case"message":if(this.lastServerMessages.indexOf(n)!=-1)return void this.ackMessage(n);this.lastServerMessages.push(n),this.lastServerMessages.length>100&&this.lastServerMessages.shift(),this.processMessage(e.body,e.msg_id,a);break;case"new_session_created":this.ackMessage(n),this.processMessageAck(e.first_msg_id),this.applyServerSalt(e.server_salt);var d=this;i.get("dc").then(function(t){t==d.dcID&&!d.upload&&m&&m(e,!0)});break;case"msgs_ack":for(var s=0;s<e.msg_ids.length;s++)this.processMessageAck(e.msg_ids[s]);break;case"msg_detailed_info":if(!this.sentMessages[e.msg_id]){this.ackMessage(e.answer_msg_id);break}case"msg_new_detailed_info":if(this.pendingAcks.indexOf(e.answer_msg_id))break;this.reqResendMessage(e.answer_msg_id);break;case"msgs_state_info":if(this.ackMessage(e.answer_msg_id),this.lastResendReq&&this.lastResendReq.req_msg_id==e.req_msg_id&&this.pendingResends.length){var s,u,p;for(s=0;s<this.lastResendReq.resend_msg_ids.length;s++)u=this.lastResendReq.resend_msg_ids[s],p=this.pendingResends.indexOf(u),p!=-1&&this.pendingResends.splice(p,1)}break;case"rpc_result":this.ackMessage(n);var f=e.req_msg_id,l=this.sentMessages[f];if(this.processMessageAck(f),l){var h=l.deferred;if("rpc_error"==e.result._){var g=this.processError(e.result);console.log(dT(),"Rpc error",g),h&&h.reject(g)}else{if(h){if(Config.Modes.debug)console.log(dT(),"Rpc response",e.result);else{var _=e.result._;_||(_=e.result.length>5?"[.."+e.result.length+"..]":e.result),console.log(dT(),"Rpc response",_)}l.deferred.resolve(e.result)}l.isAPI&&(this.connectionInited=!0)}delete this.sentMessages[f]}break;default:this.ackMessage(n),m&&m(e,!0)}},{getNetworker:function(e,t,n,i){return new u(e,t,n,i)},setUpdatesProcessor:function(e){m=e},stopAll:f,startAll:p}}]),angular.module("izhukov.mtproto.wrapper",["izhukov.utils","izhukov.mtproto"]).factory("MtpApiManager",["Storage","MtpAuthorizer","MtpNetworkerFactory","MtpSingleInstanceService","AppRuntimeManager","ErrorService","qSync","$rootScope","$q","WebPushApiManager","TelegramMeWebService",function(e,t,n,i,a,r,o,s,l,c,d){function u(e){y!==e&&(y=e,d.setAuthorized(y))}function p(t,n){var i=angular.extend({dcID:t},n);e.set({dc:t,user_auth:i}),u(!0),s.$broadcast("user_auth",i),M=t}function f(){for(var t=[],n=1;n<=5;n++)t.push("dc"+n+"_auth_key");return c.forceUnsubscribe(),e.get(t).then(function(n){for(var i=[],a=0;a<n.length;a++)n[a]&&i.push(g("auth.logOut",{},{dcID:a+1,ignoreErrors:!0}));return l.all(i).then(function(){return e.remove("dc","user_auth"),M=!1,u(!1),m()},function(n){return t.push("dc","user_auth"),e.remove(t),M=!1,n.handled=!0,u(!1),m()})})}function m(){for(var t=["user_auth","t_user_auth","dc","t_dc"],n=1;n<=5;n++)t.push("dc"+n+"_auth_key"),t.push("t_dc"+n+"_auth_key");e.noPrefix(),e.get(t).then(function(n){e.clear().then(function(){var i={};return angular.forEach(t,function(e,t){var a=n[t];a!==!1&&void 0!==a&&(i[e]=a)}),e.noPrefix(),e.set(i)})})}function h(i,a){a=a||{};var r=a.fileUpload||a.fileDownload?w:b;if(!i)throw new Exception("get Networker without dcID");if(void 0!==r[i])return o.when(r[i]);var s="dc"+i+"_auth_key",c="dc"+i+"_server_salt";return e.get(s,c).then(function(o){if(void 0!==r[i])return r[i];var d=o[0],u=o[1];if(d&&512==d.length){u&&16==u.length||(u="AAAAAAAAAAAAAAAA");var p=bytesFromHex(d),f=bytesFromHex(u);return r[i]=n.getNetworker(i,p,f,a)}return a.createNetworker?t.auth(i).then(function(t){var o={};return o[s]=bytesToHex(t.authKey),o[c]=bytesToHex(t.serverSalt),e.set(o),r[i]=n.getNetworker(i,t.authKey,t.serverSalt,a)},function(e){return console.log("Get networker error",e,e.stack),l.reject(e)}):l.reject({type:"AUTH_KEY_EMPTY",code:401})})}function g(t,n,i){i=i||{};var o,s,c=l.defer(),d=function(e){e?angular.isObject(e)||(e={message:e}):e={type:"ERROR_EMPTY"},c.reject(e),i.ignoreErrors||(406==e.code&&(e.handled=!0),i.noErrorBox||(e.input=t,e.stack=p||e.originalError&&e.originalError.stack||e.stack||(new Error).stack,setTimeout(function(){e.handled||(401==e.code?f()["finally"](function(){"http:"!=location.protocol||Config.Modes.http||Config.App.domains.indexOf(location.hostname)==-1?(location.hash="/login",a.reload()):location.href=location.href.replace(/^http:/,"https:")}):r.show({error:e}),e.handled=!0)},100)))},p=(new Error).stack||"empty stack",m=function(a){return(s=a).wrapApiCall(t,n,i).then(function(e){c.resolve(e)},function(r){if(console.error(dT(),"Error",r.code,r.type,M,o),401==r.code&&M==o)e.remove("dc","user_auth"),u(!1),d(r);else if(401==r.code&&M&&o!=M){if(void 0===k[o]){var p=l.defer();g("auth.exportAuthorization",{dc_id:o},{noErrorBox:!0}).then(function(e){g("auth.importAuthorization",{id:e.id,bytes:e.bytes},{dcID:o,noErrorBox:!0}).then(function(){p.resolve()},function(e){p.reject(e)})},function(e){p.reject(e)}),k[o]=p.promise}k[o].then(function(){(s=a).wrapApiCall(t,n,i).then(function(e){c.resolve(e)},d)},d)}else if(303==r.code){var f=r.type.match(/^(PHONE_MIGRATE_|NETWORK_MIGRATE_|USER_MIGRATE_)(\d+)/)[2];f!=o&&(i.dcID?i.dcID=f:e.set({dc:M=f}),h(f,i).then(function(e){e.wrapApiCall(t,n,i).then(function(e){c.resolve(e)},d)},d))}else if(i.rawError||420!=r.code)if(i.rawError||500!=r.code&&"MSG_WAIT_FAILED"!=r.type)d(r);else{var _=tsNow();if(i.stopTime){if(_>=i.stopTime)return d(r)}else i.stopTime=_+1e3*(void 0!==i.timeout?i.timeout:10);i.waitTime=i.waitTime?Math.min(60,1.5*i.waitTime):1,setTimeout(function(){m(s)},1e3*i.waitTime)}else{var v=r.type.match(/^FLOOD_WAIT_(\d+)/)[1]||10;if(v>(i.timeout||60))return d(r);setTimeout(function(){m(s)},1e3*v)}})};return(o=i.dcID||M)?h(o,i).then(m,d):e.get("dc").then(function(e){h(o=e||2,i).then(m,d)}),c.promise}function _(){return e.get("user_auth").then(function(e){return u(e&&e.id>0||!1),e.id||0})}function v(){return M||!1}var y,b={},w={},k={},M=!1;return i.start(),e.get("dc").then(function(e){e&&(M=e)}),{getBaseDcID:v,getUserID:_,invokeApi:g,getNetworker:h,setUserAuth:p,logOut:f}}]).factory("MtpApiFileManager",["MtpApiManager","$q","qSync","FileManager","IdbFileStorage","TmpfsFileStorage","MemoryFileStorage","WebpManager",function(e,t,n,i,a,r,o,s){function l(e,n,i){void 0===w[e]&&(w[e]=[],k[e]=0);var a=w[e],r=t.defer();return a.push({cb:n,deferred:r,activeDelta:i}),setZeroTimeout(function(){c(e)}),r.promise}function c(e){var t=w[e],n="upload"==e?11:5;if(k[e]>=n||!t||!t.length)return!1;var i=t.shift(),a=i.activeDelta||1;k[e]+=a;M++;i.cb().then(function(t){k[e]-=a,c(e),i.deferred.resolve(t)},function(t){k[e]-=a,c(e),i.deferred.reject(t)})}function d(e){switch(e._){case"inputDocumentFileLocation":var t=(e.file_name||"").split(".",2),n=t[1]||"";e.sticker&&!s.isWebpSupported()&&(n+=".png");var i=e.version?"v"+e.version:"";return t[0]+"_"+e.id+i+"."+n;default:e.volume_id||console.trace("Empty location",e);var n="jpg";return e.sticker&&(n=s.isWebpSupported()?"webp":"png"),e.volume_id+"_"+e.local_id+"_"+e.secret+"."+n}}function u(e){if(!e)return!1;var t=d(e);return b[t]||!1}function p(){if(!Config.Modes.memory_only){if(r.isAvailable())return r;if(a.isAvailable())return a}return o}function f(e,t){var n=d(e);return v[n]||(v[n]=p().saveFile(n,t).then(function(e){return b[n]=e},function(e){delete v[n]})),v[n]}function m(a){if(!i.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});var r=d(a),o=a.sticker?"image/webp":"image/jpeg",c=v[r]||y[r];if(c)return c;var u=p();return y[r]=u.getFile(r).then(function(e){return b[r]=e},function(){var t=l(a.dc_id,function(){var t=a;return t._&&"fileLocation"!=t._||(t=angular.extend({},a,{_:"inputFileLocation"})),e.invokeApi("upload.getFile",{location:t,offset:0,limit:1048576},{dcID:a.dc_id,fileDownload:!0,createNetworker:!0,noErrorBox:!0})}),c=function(e){return!a.sticker||s.isWebpSupported()?n.when(e):s.getPngBlobFromWebp(e)};return u.getFileWriter(r,o).then(function(e){return t.then(function(t){return c(t.bytes).then(function(t){return i.write(e,t).then(function(){return b[r]=e.finalize()})})})})})}function h(e,t){var n=p(),i=d(e);return n.getFile(i,t)}function g(a,r,o,c){if(!i.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});c=c||{};var u=!1;r.sticker&&!s.isWebpSupported()&&(c.toFileEntry||o>524288?delete r.sticker:(u=!0,c.mime="image/png"));var f=d(r),m=c.toFileEntry||null,h=v[f]||y[f],g=p();if(h)return m?h.then(function(e){return i.copy(e,m)}):h;var _,w=t.defer(),k=!1,M=!1,S=c.mime||"image/jpeg",A=function(e){w.reject(e),A=angular.noop,!_||e&&"DOWNLOAD_CANCELED"==e.type||_.truncate(0)};return g.getFile(f,o).then(function(e){m?i.copy(e,m).then(function(){w.resolve()},A):w.resolve(b[f]=e)},function(){var c=m?i.getFileWriter(m):g.getFileWriter(f,S),d=function(e){return u?s.getPngBlobFromWebp(e):n.when(e)};c.then(function(n){_=n;var s,c,u=524288,p=0,h=t.when();if(n.length){if(p=n.length,p>=o)return void(m?w.resolve():w.resolve(b[f]=n.finalize()));n.seek(p),w.notify({done:p,total:o})}for(s=p;s<o;s+=u)c=t.defer(),function(s,c,p,h){return l(a,function(){return k?t.when():e.invokeApi("upload.getFile",{location:r,offset:c,limit:u},{dcID:a,fileDownload:!0,singleInRequest:void 0!==window.safari,createNetworker:!0})},2).then(function(e){h.then(function(){return k?t.when():d(e.bytes).then(function(e){return i.write(n,e).then(function(){p.resolve()},A).then(function(){s?(M=!0,m?w.resolve():w.resolve(b[f]=n.finalize())):w.notify({done:c+u,total:o})})})})})}(s+u>=o,s,c,h),h=c.promise})}),w.promise.cancel=function(){k||M||(k=!0,delete y[f],A({type:"DOWNLOAD_CANCELED"}))},m||(y[f]=w.promise),w.promise}function _(n){var i=n.size,a=i>=10485760,r=!1,o=!1,s=0,c=262144,d=2;i>67108864?(c=524288,d=4):i<102400&&(c=32768,d=1);var u=Math.ceil(i/c);if(u>3e3)return t.reject({type:"FILE_TOO_BIG"});var p,f=[nextRandomInt(4294967295),nextRandomInt(4294967295)],m=t.defer(),h=function(e){m.reject(e),r=!0,h=angular.noop},g=0,_={_:a?"inputFileBig":"inputFile",id:f,parts:u,name:n.name,md5_checksum:""};for(p=0;p<i;p+=c)!function(p,g){l("upload",function(){var l=t.defer(),d=new FileReader,v=n.slice(p,p+c);return d.onloadend=function(t){return r?void l.reject():void(t.target.readyState==FileReader.DONE&&e.invokeApi(a?"upload.saveBigFilePart":"upload.saveFilePart",{file_id:f,file_part:g,file_total_parts:u,bytes:t.target.result},{startMaxLength:c+256,fileUpload:!0,singleInRequest:!0}).then(function(e){s++,l.resolve(),s>=u?(m.resolve(_),o=!0):(console.log(dT(),"Progress",s*c/i),m.notify({done:s*c,total:i}))},h))},d.readAsArrayBuffer(v),l.promise},d)}(p,g++);return m.promise.cancel=function(){console.log("cancel upload",r,o),r||o||(r=!0,h({type:"UPLOAD_CANCELED"}))},m.promise}var v={},y={},b={},w={},k={},M=0;return{getCachedFile:u,getDownloadedFile:h,downloadFile:g,downloadSmallFile:m,saveSmallFile:f,uploadFile:_}}]).service("MtpSingleInstanceService",["_","$rootScope","$compile","$timeout","$interval","$modalStack","Storage","AppRuntimeManager","IdleManager","ErrorService","MtpNetworkerFactory",function(e,t,n,i,a,r,o,s,l,c,d){function u(){if(!g&&!Config.Navigator.mobile&&!Config.Modes.packed){g=!0,l.start(),t.$watch("idle.isIDLE",m),a(m,5e3),m();try{$($window).on("beforeunload",p)}catch(e){}}}function p(){_&&!y&&(console.warn("clear master instance"),o.remove("xt_instance"))}function f(){if(_||y)return!1;console.log(dT(),"deactivate"),v=!1,y=!0,p(),r.dismissAll(),document.title=e("inactive_tab_title_raw");var i=n("<ng-include src=\"'partials/desktop/inactive.html'\"></ng-include>"),a=t.$new(!0);a.close=function(){s.close()},a.reload=function(){s.reload()},i(a,function(e){$(".page_wrap").hide(),$(e).appendTo($("body"))}),t.idle.deactivated=!0}function m(){if(y)return!1;var e=tsNow(),n=t.idle&&t.idle.isIDLE,a={id:h,idle:n,time:e};o.get("xt_instance").then(function(t){!n||!t||t.id==h||t.time<e-2e4?(o.set({xt_instance:a}),_||(d.startAll(),b?console.warn(dT(),"now master instance",a):b=!0,_=!0),v&&(i.cancel(v),v=!1)):_&&(d.stopAll(),console.warn(dT(),"now idle instance",a),v||(v=i(f,3e4)),_=!1)})}var h=nextRandomInt(4294967295),g=!1,_=!1,v=!1,y=!1,b=!1;return{start:u}}]);var extraModules=[];Config.Modes.animations&&extraModules.push("ngAnimate"),angular.module("myApp",["ngRoute","ngSanitize","ngTouch","ui.bootstrap","mediaPlayer","toaster","izhukov.utils","izhukov.mtproto","izhukov.mtproto.wrapper","myApp.filters","myApp.services","myApp.templates","myApp.directives","myApp.controllers"].concat(extraModules)).config(["$locationProvider","$routeProvider","$compileProvider","StorageProvider",function(e,t,n,i){n.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|blob|filesystem|chrome-extension|app):|data:image\//),n.aHrefSanitizationWhitelist(/^\s*(https?|ftp|file|tg|mailto|blob|filesystem|chrome-extension|app):|data:/),n.debugInfoEnabled(!1),Config.Modes.test&&i.setPrefix("t_"),t.when("/",{template:"",controller:"AppWelcomeController"}),t.when("/login",{templateUrl:templateUrl("login"),controller:"AppLoginController"}),t.when("/im",{templateUrl:templateUrl("im"),controller:"AppIMController",reloadOnSearch:!1}),t.otherwise({redirectTo:"/"})}]),angular.module("myApp.services",["myApp.i18n","izhukov.utils"]).service("AppUsersManager",["$rootScope","$modal","$modalStack","$filter","$q","qSync","MtpApiManager","RichTextProcessor","ServerTimeManager","Storage","_",function(e,t,n,i,a,r,o,s,l,c,d){function u(){return N?N:N=o.invokeApi("contacts.getContacts",{hash:0}).then(function(e){var t,n;L=[],h(e.users);for(var n=0;n<e.contacts.length;n++)t=e.contacts[n].user_id,L.push(t),SearchIndexManager.indexObject(t,p(t),V);return L})}function p(e){var t=U[e];if(!t)return!1;var n="";return t.pFlags.self&&(n=d("user_name_saved_msgs_raw")),(t.first_name||"")+" "+(t.last_name||"")+" "+(t.phone||"")+" "+(t.username||"")+" "+n}function f(e){return u().then(function(t){if(angular.isString(e)&&e.length){for(var n=SearchIndexManager.search(e,V),i=[],a=0;a<t.length;a++)n[t[a]]&&i.push(t[a]);t=i}return t.sort(function(e,t){var n=U[e]||{}.sortName||"",i=U[t]||{}.sortName||"";return n==i?0:n>i?1:-1}),t})}function m(e){return B[e]||0}function h(e){angular.forEach(e,g)}function g(t,n){if(angular.isObject(t)&&!(n&&angular.isObject(U[t.id])&&U[t.id].first_name)){var a=t.id,r=U[a];if(void 0===t.pFlags&&(t.pFlags={}),!t.pFlags.min||void 0===r){if(t.phone&&(t.rPhone=i("phoneNumber")(t.phone)),t.num=Math.abs(a)%8+1,t.first_name?(t.rFirstName=s.wrapRichText(t.first_name,{noLinks:!0,noLinebreaks:!0}),t.rFullName=t.last_name?s.wrapRichText(t.first_name+" "+(t.last_name||""),{noLinks:!0,noLinebreaks:!0}):t.rFirstName):(t.rFirstName=s.wrapRichText(t.last_name,{noLinks:!0,noLinebreaks:!0})||t.rPhone||d("user_first_name_deleted"),t.rFullName=s.wrapRichText(t.last_name,{noLinks:!0,noLinebreaks:!0})||t.rPhone||d("user_name_deleted")),t.username){var o=SearchIndexManager.cleanUsername(t.username);B[o]=a}t.sortName=t.pFlags.deleted?"":SearchIndexManager.cleanSearchText(t.first_name+" "+(t.last_name||""));var c=t.sortName.split(" "),u=c.shift(),p=c.pop();t.initials=u.charAt(0)+(p?p.charAt(0):u.charAt(1)),t.status&&(t.status.expires&&(t.status.expires-=l.serverTimeOffset),t.status.was_online&&(t.status.was_online-=l.serverTimeOffset)),t.pFlags.bot?t.sortStatus=-1:t.sortStatus=v(t.status);var r=U[a];void 0===r?r=U[a]=t:safeReplaceObject(r,t),e.$broadcast("user_update",a),void 0!==j[a]&&safeReplaceObject(j[a],t&&t.photo&&t.photo.photo_small||{empty:!0})}}}function _(e,t){H[e]=t}function v(e){if(e){var t=e.expires||e.was_online;if(t)return t;var n=tsNow(!0);switch(e._){case"userStatusRecently":return n-259200;case"userStatusLastWeek":return n-604800;case"userStatusLastMonth":return n-2592e3}}return 0}function y(e){return angular.isObject(e)?e:U[e]||{id:e,deleted:!0,num:1,access_hash:H[e]}}function b(){return y(F)}function w(e){return U[e]&&U[e].pFlags.bot}function k(e,t){var n=U[e];return angular.isObject(n)&&(t||!n.pFlags.min)}function M(e){var t=y(e);return 333e3==e?{placeholder:"img/placeholders/DialogListAvatarSystem@2x.png"}:(void 0===j[e]&&(j[e]=t&&t.photo&&t.photo.photo_small||{empty:!0}),{num:t.num,placeholder:"img/placeholders/UserAvatar"+t.num+"@2x.png",location:j[e]})}function S(e){var t=y(e);return"u"+e+(t.access_hash?"_"+t.access_hash:"")}function A(e){var t=y(e);return t.pFlags.self?{_:"inputUserSelf"}:{_:"inputUser",user_id:e,access_hash:t.access_hash||0}}function C(){var t=tsNow(!0);angular.forEach(U,function(n){n.status&&"userStatusOnline"==n.status._&&n.status.expires<t&&(n.status=n.status.wasStatus||{_:"userStatusOffline",was_online:n.status.expires},delete n.status.wasStatus,e.$broadcast("user_update",n.id))})}function T(t){if(!w(t)){var n=y(t);if(n&&n.status&&"userStatusOnline"!=n.status._&&"userStatusEmpty"!=n.status._){var i;"userStatusOffline"!=n.status._&&(delete n.status.wasStatus,i=angular.copy(n.status)),n.status={_:"userStatusOnline",expires:tsNow(!0)+60,wasStatus:i},n.sortStatus=v(n.status),e.$broadcast("user_update",t)}}}function E(e){var t=y(e);return t}function $(n,i){var a=e.$new();a.userID=n,a.override=i||{};t.open({templateUrl:templateUrl("user_modal"),
controller:"UserModalController",scope:a,windowClass:"user_modal_window mobile_modal",backdrop:"single"})}function I(e,t,n){return o.invokeApi("contacts.importContacts",{contacts:[{_:"inputPhoneContact",client_id:"1",phone:e,first_name:t,last_name:n}],replace:!1}).then(function(e){h(e.users);var t=!1;return angular.forEach(e.imported,function(e){D(t=e.user_id,!0)}),t||!1})}function x(e){var t,n,i=[];for(t=0;t<e.length;t++)for(n=0;n<e[t].phones.length;n++)i.push({_:"inputPhoneContact",client_id:(t<<16|n).toString(10),phone:e[t].phones[n],first_name:e[t].first_name,last_name:e[t].last_name});return o.invokeApi("contacts.importContacts",{contacts:i,replace:!1}).then(function(e){h(e.users);var t=[];return angular.forEach(e.imported,function(e){D(e.user_id,!0),t.push(e.user_id)}),t})}function P(e){var t=[];return angular.forEach(e,function(e){t.push(A(e))}),o.invokeApi("contacts.deleteContacts",{id:t}).then(function(){angular.forEach(e,function(e){D(e,!1)})})}function D(t,n){if(t=parseInt(t),angular.isArray(L)){var i=a=L.indexOf(t),a=i!=-1;n!=a&&(n?(L.push(t),SearchIndexManager.indexObject(t,p(t),V)):L.splice(i,1),e.$broadcast("contacts_update",t))}}function R(){return t.open({templateUrl:templateUrl("import_contact_modal"),controller:"ImportContactModalController",windowClass:"md_simple_modal_window mobile_modal"}).result.then(function(e){return e?e:a.reject()})}function O(t,n){if(!w(t)){var i=U[t];if(i){var a=n?{_:"userStatusOffline",was_online:tsNow(!0)}:{_:"userStatusOnline",expires:tsNow(!0)+500};i.status=a,i.sortStatus=v(i.status),e.$broadcast("user_update",t)}}}var N,L,F,U={},B={},H={},j={},V=SearchIndexManager.createIndex();return o.getUserID().then(function(e){F=e}),e.$on("apiUpdate",function(t,n){switch(n._){case"updateUserStatus":var i=n.user_id,a=U[i];a&&(a.status=n.status,a.status&&(a.status.expires&&(a.status.expires-=l.serverTimeOffset),a.status.was_online&&(a.status.was_online-=l.serverTimeOffset)),a.sortStatus=v(a.status),e.$broadcast("user_update",i));break;case"updateUserPhoto":var i=n.user_id,a=U[i];a&&(T(i),a.photo?safeReplaceObject(a.photo,n.photo):a.photo=n.photo,void 0!==j[i]&&safeReplaceObject(j[i],n.photo&&n.photo.photo_small||{empty:!0}),e.$broadcast("user_update",i));break;case"updateContactLink":D(n.user_id,"contactLinkContact"==n.my_link._)}}),e.$on("user_auth",function(e,t){F=t&&t.id||0}),setInterval(C,6e4),e.$on("stateSynchronized",C),{getContacts:f,saveApiUsers:h,saveApiUser:g,saveUserAccess:_,getUser:y,getSelf:b,getUserInput:A,setUserStatus:O,forceUserOnline:T,getUserPhoto:M,getUserString:S,getUserSearchText:p,hasUser:k,isBot:w,importContact:I,importContacts:x,deleteContacts:P,wrapForFull:E,openUser:$,resolveUsername:m,openImportContact:R}}]).service("PhonebookContactsService",["$q","$modal","$sce","FileManager",function(e,t,n,i){function a(){if(Config.Mobile&&Config.Navigator.ffos&&Config.Modes.packed)try{return navigator.mozContacts&&navigator.mozContacts.getAll}catch(e){return console.error(dT(),"phonebook n/a",e),!1}return!1}function r(){return t.open({templateUrl:templateUrl("phonebook_modal"),controller:"PhonebookModalController",windowClass:"phonebook_modal_window mobile_modal"})}function o(){try{var t=window.navigator.mozContacts.getAll({})}catch(a){return e.reject(a)}var r=e.defer(),o=[],s=0;return t.onsuccess=function(){if(this.result){var e={id:s,first_name:(this.result.givenName||[]).join(" "),last_name:(this.result.familyName||[]).join(" "),phones:[]};if(void 0!=this.result.tel)for(var t=0;t<this.result.tel.length;t++)e.phones.push(this.result.tel[t].value);if(this.result.photo&&this.result.photo[0])try{e.photo=i.getUrl(this.result.photo[0])}catch(a){}e.photo||(e.photo="img/placeholders/UserAvatar"+(Math.abs(s)%8+1)+"@2x.png"),e.photo=n.trustAsResourceUrl(e.photo),s++,o.push(e)}return!this.result||s>=1e3?void r.resolve(o):void this["continue"]()},t.onerror=function(e){console.log("phonebook error",e,e.type,e.message),r.reject(e)},r.promise}return{isAvailable:a,openPhonebookImport:r,getPhonebookContacts:o}}]).service("AppChatsManager",["$q","$rootScope","$modal","_","MtpApiManager","AppUsersManager","AppPhotosManager","RichTextProcessor",function(e,t,n,i,a,r,o,s){function l(e){angular.forEach(e,c)}function c(e){if(angular.isObject(e)){e.rTitle=s.wrapRichText(e.title,{noLinks:!0,noLinebreaks:!0})||i("chat_title_deleted");var n=C[e.id],a=SearchIndexManager.cleanSearchText(e.title||"").split(" "),r=a.shift(),o=a.pop();if(e.initials=r.charAt(0)+(o?o.charAt(0):r.charAt(1)),e.num=Math.abs(e.id>>1)%8+1,void 0===e.pFlags&&(e.pFlags={}),!e.pFlags.min||void 0===n){if("channel"==e._&&void 0===e.participants_count&&void 0!==n&&n.participants_count&&(e.participants_count=n.participants_count),e.username){var l=SearchIndexManager.cleanUsername(e.username);T[l]=e.id}void 0===n?n=C[e.id]=e:(safeReplaceObject(n,e),t.$broadcast("chat_update",e.id)),void 0!==I[e.id]&&safeReplaceObject(I[e.id],e&&e.photo&&e.photo.photo_small||{empty:!0})}}}function d(e){return C[e]||{id:e,deleted:!0,access_hash:E[e]}}function u(e,t){if(void 0===C[e])return!1;var n=d(e);if("chatForbidden"==n._||"channelForbidden"==n._||n.pFlags.kicked||n.pFlags.left)return!1;if(n.pFlags.creator)return!0;switch(t){case"send":if("channel"==n._&&!n.pFlags.megagroup&&!n.pFlags.editor)return!1;break;case"edit_title":case"edit_photo":case"invite":if("channel"==n._){if(!n.pFlags.megagroup)return!1;if(!(n.pFlags.editor||"invite"==t&&n.pFlags.democracy))return!1}else if(n.pFlags.admins_enabled&&!n.pFlags.admin)return!1}return!0}function p(e){return T[e]||0}function f(e,t){E[e]=t}function m(e){$[e]=!0}function h(e){var t=C[e];return!((!t||"channel"!=t._&&"channelForbidden"!=t._)&&!E[e])}function g(e){if($[e])return!0;var t=C[e];return!(!t||"channel"!=t._||!t.pFlags.megagroup)}function _(e){return h(e)&&!g(e)}function v(e){return e||0}function y(e){return e?{_:"inputChannel",channel_id:e,access_hash:d(e).access_hash||E[e]||0}:{_:"inputChannelEmpty"}}function b(e,t){var n=C[e];return angular.isObject(n)&&(t||!n.pFlags.min)}function w(e){var t=d(e);return void 0===I[e]&&(I[e]=t&&t.photo&&t.photo.photo_small||{empty:!0}),{placeholder:"img/placeholders/GroupAvatar"+Math.ceil(t.num/2)+"@2x.png",location:I[e]}}function k(e){var t=d(e);return h(e)?(g(e)?"s":"c")+e+"_"+t.access_hash:"g"+e}function M(e,t){var n=angular.copy(t),i=d(e);return n.participants_count||(n.participants_count=i.participants_count),n.participants&&"chatParticipants"==n.participants._&&(n.participants.participants=S(e,n.participants.participants)),n.about&&(n.rAbout=s.wrapRichText(n.about,{noLinebreaks:!0})),n.peerString=k(e),n.chat=i,n}function S(e,t){var n=d(e),i=r.getSelf().id;if(h(e)){var a=n.pFlags.creator||n.pFlags.editor||n.pFlags.moderator;angular.forEach(t,function(e){e.canLeave=i==e.user_id,e.canKick=a&&"channelParticipant"==e._,e.user=r.getUser(e.user_id)})}else{var a=n.pFlags.creator||n.pFlags.admins_enabled&&n.pFlags.admin;angular.forEach(t,function(e){e.canLeave=i==e.user_id,e.canKick=!e.canLeave&&(n.pFlags.creator||"chatParticipant"==e._&&(a||i==e.inviter_id)),e.user=r.getUser(e.user_id)})}return t}function A(e,i){var a=t.$new();if(a.chatID=e,h(e)){n.open({templateUrl:templateUrl("channel_modal"),controller:"ChannelModalController",scope:a,windowClass:"chat_modal_window channel_modal_window mobile_modal"})}else{n.open({templateUrl:templateUrl("chat_modal"),controller:"ChatModalController",scope:a,windowClass:"chat_modal_window mobile_modal"})}}var C={},T={},E={},$={},I={};return t.$on("apiUpdate",function(e,n){switch(n._){case"updateChannel":var i=n.channel_id;t.$broadcast("channel_settings",{channelID:i})}}),{saveApiChats:l,saveApiChat:c,getChat:d,isChannel:h,isMegagroup:g,isBroadcast:_,hasRights:u,saveChannelAccess:f,saveIsMegagroup:m,getChatInput:v,getChannelInput:y,getChatPhoto:w,getChatString:k,resolveUsername:p,hasChat:b,wrapForFull:M,wrapParticipants:S,openChat:A}}]).service("AppPeersManager",["$q","qSync","AppUsersManager","AppChatsManager","MtpApiManager",function(e,t,n,i,a){function r(e){var t=e.charAt(0),a=e.substr(1).split("_");return"u"==t?(n.saveUserAccess(a[0],a[1]),{_:"inputPeerUser",user_id:a[0],access_hash:a[1]}):"c"==t||"s"==t?(i.saveChannelAccess(a[0],a[1]),"s"==t&&i.saveIsMegagroup(a[0]),{_:"inputPeerChannel",channel_id:a[0],access_hash:a[1]||0}):{_:"inputPeerChat",chat_id:a[0]}}function o(e){if(!e)return{_:"inputPeerEmpty"};if(e<0){var t=-e;return i.isChannel(t)?{_:"inputPeerChannel",channel_id:t,access_hash:i.getChat(t).access_hash||0}:{_:"inputPeerChat",chat_id:t}}return{_:"inputPeerUser",user_id:e,access_hash:n.getUser(e).access_hash||0}}function s(e){var t;if(e>0)t="%pu "+n.getUserSearchText(e);else if(e<0){var a=i.getChat(-e);t="%pg "+(a.title||"")}return t}function l(e){return e>0?n.getUserString(e):i.getChatString(-e)}function c(e){if(e>0)return{_:"peerUser",user_id:e};var t=-e;return i.isChannel(t)?{_:"peerChannel",channel_id:t}:{_:"peerChat",chat_id:t}}function d(e){var r=SearchIndexManager.cleanUsername(e);if(r.match(/^\d+$/))return t.when(!1);var o,s,l;return(o=n.resolveUsername(r))&&(l=n.getUser(o).username,SearchIndexManager.cleanUsername(l)==r)?t.when(o):(s=i.resolveUsername(r))&&(l=i.getChat(s).username,SearchIndexManager.cleanUsername(l)==r)?t.when(-s):a.invokeApi("contacts.resolveUsername",{username:e}).then(function(e){return n.saveApiUsers(e.users),i.saveApiChats(e.chats),u(e.peer)})}function u(e){if(angular.isObject(e))return e.user_id?e.user_id:-(e.channel_id||e.chat_id);var t="u"==e.charAt(0),n=e.substr(1).split("_");return t?n[0]:-n[0]||0}function p(e){return e>0?n.getUser(e):i.getChat(-e)}function f(e){return e>0?n.getUserPhoto(e):i.getChatPhoto(-e)}function m(e){if(e>=0)return!1;var t=i.getChat(-e);return!!(t&&t.migrated_to&&t.pFlags.deactivated)&&u(t.migrated_to)}function h(e){return e<0&&i.isChannel(-e)}function g(e){return e<0&&i.isMegagroup(-e)}function _(e){return e<0&&!i.isBroadcast(-e)}function v(e){return h(e)&&!g(e)}function y(e){return e>0&&n.isBot(e)}return{getInputPeer:r,getInputPeerByID:o,getPeerSearchText:s,getPeerString:l,getOutputPeer:c,getPeerID:u,getPeer:p,getPeerPhoto:f,getPeerMigratedTo:m,resolveUsername:d,isChannel:h,isAnyGroup:_,isMegagroup:g,isBroadcast:v,isBot:y}}]).service("AppProfileManager",["$q","$rootScope","AppUsersManager","AppChatsManager","AppMessagesIDsManager","AppPeersManager","AppPhotosManager","NotificationsManager","MtpApiManager","ApiUpdatesManager","RichTextProcessor","Storage",function(e,t,n,i,a,r,o,s,l,c,d,u){function p(e){var t=e&&e.user_id;if(!t)return!1;var n={};return angular.forEach(e.commands,function(e){n[e.command]=e.description}),k[t]={id:t,version:e.version,shareText:e.share_text,description:e.description,commands:n}}function f(e,t){return l.invokeApi("users.getFullUser",{id:n.getUserInput(e)}).then(function(i){return t&&t.phone_number?(i.user.phone=t.phone_number,(t.first_name||t.last_name)&&(i.user.first_name=t.first_name,i.user.last_name=t.last_name),n.saveApiUser(i.user)):n.saveApiUser(i.user,!0),i.profile_photo&&o.savePhoto(i.profile_photo,{user_id:e}),void 0!==i.about&&(i.rAbout=d.wrapRichText(i.about,{noLinebreaks:!0})),s.savePeerSettings(e,i.notify_settings),i.bot_info&&(i.bot_info=p(i.bot_info)),i})}function m(t){var i=[];return t>=0&&!n.isBot(t)||r.isChannel(t)&&!r.isMegagroup(t)?e.when(i):t>=0?f(t).then(function(e){var t=e.bot_info;return t&&"botInfoEmpty"!=t._&&i.push(t),i}):h(-t).then(function(e){return angular.forEach(e.bot_info,function(e){i.push(p(e))}),i})}function h(a){if(i.isChannel(a))return v(a);if(void 0!==M[a]){var r=i.getChat(a);if(r.version==M[a].participants.version||r.pFlags.left)return e.when(M[a])}return void 0!==S[a]?S[a]:S[a]=l.invokeApi("messages.getFullChat",{chat_id:i.getChatInput(a)}).then(function(e){i.saveApiChats(e.chats),n.saveApiUsers(e.users);var r=e.full_chat;return r&&r.chat_photo.id&&o.savePhoto(r.chat_photo),s.savePeerSettings(-a,r.notify_settings),delete S[a],M[a]=r,t.$broadcast("chat_full_update",a),r})}function g(e,t){return h(e).then(function(n){if(!t&&n.exported_invite&&"chatInviteExported"==n.exported_invite._)return n.exported_invite.link;var a;return a=i.isChannel(e)?l.invokeApi("channels.exportInvite",{channel:i.getChannelInput(e)}):l.invokeApi("messages.exportChatInvite",{chat_id:i.getChatInput(e)}),a.then(function(t){return void 0!==M[e]&&(M[e].exported_invite=t),t.link})})}function _(t,a,r,o){a=a||{_:"channelParticipantsRecent"},r=r||200,o=o||0;var s=[t,a._,o,r].join("_"),c=A[s];if("channelParticipantsRecent"==a._){var d=i.getChat(t);if(d&&d.pFlags&&(d.pFlags.kicked||d.pFlags.broadcast&&!d.pFlags.creator&&!d.admin_rights))return e.reject()}var u=function(e){var s=0;if(e){var c=[];angular.forEach(e,function(e){c.push(e.user_id)}),c.sort(),angular.forEach(c,function(e){s=(20261*s+2147483648+e)%2147483648})}return l.invokeApi("channels.getParticipants",{channel:i.getChannelInput(t),filter:a,offset:o,limit:r,hash:s}).then(function(t){return"channels.channelParticipantsNotModified"==t._?e:(n.saveApiUsers(t.users),t.participants)})},p=function(e){var r=i.getChat(t),s="channelParticipantsRecent"==a._&&!o&&!r.pFlags.kicked&&!r.pFlags.left;if(s){e=angular.copy(e);for(var l,c=n.getSelf().id,d=!1,u=0,p=e.length;u<p;u++)if(e[u].user_id==c){d=u;break}d!==!1?(l=e[u],e.splice(u,1)):l={_:"channelParticipantSelf",user_id:c},e.unshift(l)}return e},f=tsNow();if(void 0!==c){var m=c[1];if(c[0]>f-6e4)return m;var h=m.then(function(e){return u(e).then(p)});return A[s]=[f,h],h}var h=u().then(p);return A[s]=[f,h],h}function v(r,d){return void 0===M[r]||d?void 0!==S[r]?S[r]:S[r]=l.invokeApi("channels.getFullChannel",{channel:i.getChannelInput(r)}).then(function(e){i.saveApiChats(e.chats),n.saveApiUsers(e.users);var l=e.full_chat;return l&&l.chat_photo.id&&o.savePhoto(l.chat_photo),s.savePeerSettings(-r,l.notify_settings),l.pinned_msg_id&&(l.pinned_msg_id=a.getFullMessageID(l.pinned_msg_id,r)),delete S[r],M[r]=l,t.$broadcast("chat_full_update",r),l},function(t){switch(t.type){case"CHANNEL_PRIVATE":var n=i.getChat(r);n={_:"channelForbidden",access_hash:n.access_hash,title:n.title},c.processUpdateMessage({_:"updates",updates:[{_:"updateChannel",channel_id:r}],chats:[n],users:[]})}return e.reject(t)}):e.when(M[r])}function y(e){delete M[e],delete S[e],angular.forEach(A,function(t,n){n.split("_")[0]==e&&delete A[n]}),t.$broadcast("chat_full_update",e)}function b(e){return v(e).then(function(t){var n=t&&t.pinned_msg_id;return!!n&&u.get("pinned_hidden"+e).then(function(e){return a.getMessageLocalID(n)!=e&&n})})}function w(e,n){var i={};i["pinned_hidden"+e]=a.getMessageLocalID(n),u.set(i),t.$broadcast("peer_pinned_message",-e)}var k={},M={},S={},A={};return t.$on("apiUpdate",function(e,n){switch(n._){case"updateChatParticipants":var i=n.participants,r=M[i.id];void 0!==r&&(r.participants=n.participants,t.$broadcast("chat_full_update",chatID));break;case"updateChatParticipantAdd":var r=M[n.chat_id];if(void 0!==r){for(var i=r.participants.participants||[],o=0,s=i.length;o<s;o++)if(i[o].user_id==n.user_id)return;i.push({_:"chatParticipant",user_id:n.user_id,inviter_id:n.inviter_id,date:tsNow(!0)}),r.participants.version=n.version,t.$broadcast("chat_full_update",n.chat_id)}break;case"updateChatParticipantDelete":var r=M[n.chat_id];if(void 0!==r)for(var i=r.participants.participants||[],o=0,s=i.length;o<s;o++)if(i[o].user_id==n.user_id)return i.splice(o,1),r.participants.version=n.version,void t.$broadcast("chat_full_update",n.chat_id);break;case"updateChannelPinnedMessage":var l=n.channel_id,c=M[l];void 0!==c&&(c.pinned_msg_id=a.getFullMessageID(n.id,l),t.$broadcast("peer_pinned_message",-l))}}),t.$on("chat_update",function(e,n){var a=M[n],r=i.getChat(n);if(r.photo&&a){var s="chatPhotoEmpty"==r.photo._;if(s!=("photoEmpty"==a.chat_photo._))return delete M[n],void t.$broadcast("chat_full_update",n);if(!s){var l=r.photo.photo_small,c=o.choosePhotoSize(a.chat_photo,0,0);angular.equals(l,c.location)||(delete M[n],t.$broadcast("chat_full_update",n))}}}),{getPeerBots:m,getProfile:f,getChatInviteLink:g,getChatFull:h,getChannelFull:v,getChannelParticipants:_,invalidateChannelParticipants:y,getChannelPinnedMessage:b,hideChannelPinnedMessage:w}}]).service("AppPhotosManager",["$modal","$window","$rootScope","MtpApiManager","MtpApiFileManager","AppUsersManager","FileManager",function(e,t,n,i,a,r,o){function s(e,t){t&&angular.extend(e,t),g[e.id]=e,angular.forEach(e.sizes,function(e){"photoCachedSize"==e._&&(a.saveSmallFile(e.location,e.bytes),e.size=e.bytes.length,delete e.bytes,e._="photoSize")})}function l(e,t,n){Config.Navigator.retina&&(t*=2,n*=2);var i={_:"photoSizeEmpty"},a=16777215;return angular.forEach(e.sizes,function(e){var r=Math.abs(e.w*e.h-t*n);r<a&&(i=e,a=r)}),i}function c(e,t,n){var a=r.getUserInput(e);return i.invokeApi("photos.getUserPhotos",{user_id:a,offset:0,limit:n||20,max_id:t||0}).then(function(t){r.saveApiUsers(t.users);for(var n=[],i={user_id:e},a=0;a<t.photos.length;a++)s(t.photos[a],i),n.push(t.photos[a].id);return{count:t.count||t.photos.length,photos:n}})}function d(e){if(g[e]){var n=g[e],i=$(window).width()-(Config.Mobile?20:32),r=$(t).height()-(Config.Mobile?150:116);i>800&&(i-=208);var o=l(n,i,r);o&&!o.preloaded&&(o.preloaded=!0,o.size?a.downloadFile(o.location.dc_id,{_:"inputFileLocation",volume_id:o.location.volume_id,local_id:o.location.local_id,secret:o.location.secret},o.size):a.downloadSmallFile(o.location))}}function u(e){return g[e]||{_:"photoEmpty"}}function p(e,t){t=t||{};var n=angular.copy(g[e])||{_:"photoEmpty"},i=t.website?64:Math.min(_-80,Config.Mobile?210:260),a=t.website?64:Math.min(v-100,Config.Mobile?210:260),r=l(n,i,a),o={placeholder:"img/placeholders/PhotoThumbConversation.gif",width:i,height:a};if(t.website&&Config.Mobile&&(i=50,a=50),r&&"photoSizeEmpty"!=r._){var s=calcImageInBox(r.w,r.h,i,a);o.width=s.w,o.height=s.h,o.location=r.location,o.size=r.size}else o.width=100,o.height=100;return n.thumb=o,n}function f(e){var n=p(e),i=$(window).width()-(Config.Mobile?0:32),a=$(t).height()-(Config.Mobile?0:116);!Config.Mobile&&i>800&&(i-=208);var r=l(n,i,a),o={placeholder:"img/placeholders/PhotoThumbModal.gif"};if(o.width=i,o.height=a,r&&"photoSizeEmpty"!=r._){var s=calcImageInBox(r.w,r.h,i,a,!0);o.width=s.w,o.height=s.h,o.modalWidth=Math.max(o.width,Math.min(400,i)),o.location=r.location,o.size=r.size}return n.full=o,n}function m(t,i){if(!t||"0"===t)return!1;var a=n.$new(!0);a.photoID=t;var r="PhotoModalController";i&&i.p>0?(r="UserpicModalController",a.userID=i.p):i&&i.p<0?(r="ChatpicModalController",a.chatID=-i.p):i&&i.m>0&&(a.messageID=i.m,i.w&&(a.webpageID=i.w));e.open({templateUrl:templateUrl("photo_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:r,scope:a,windowClass:"photo_modal_window"})}function h(e){var n=g[e],i="jpg",r="image/jpeg",s="photo"+e+"."+i,c=Math.max(screen.width||0,$(window).width()-36,800),d=Math.max(screen.height||0,$(t).height()-150,800),u=l(n,c,d),p={_:"inputFileLocation",volume_id:u.location.volume_id,local_id:u.location.local_id,secret:u.location.secret};o.chooseSave(s,i,r).then(function(e){e&&a.downloadFile(u.location.dc_id,p,u.size,{mime:r,toFileEntry:e}).then(function(){},function(e){console.log("photo download failed",e)})},function(){var e=a.getCachedFile(p);return e?o.download(e,r,s):void a.downloadFile(u.location.dc_id,p,u.size,{mime:r}).then(function(e){o.download(e,r,s)},function(e){console.log("photo download failed",e)})})}var g={},_=$(window).width(),v=$(window).height();return n.preloadPhoto=d,n.openPhoto=m,{savePhoto:s,preloadPhoto:d,getUserPhotos:c,getPhoto:u,choosePhotoSize:l,wrapForHistory:p,wrapForFull:f,openPhoto:m,downloadPhoto:h}}]).service("AppWebPagesManager",["$modal","$sce","$window","$rootScope","MtpApiManager","AppPhotosManager","AppDocsManager","RichTextProcessor",function(e,t,n,i,a,r,o,s){function l(e,t,n){e.photo&&"photo"===e.photo._?r.savePhoto(e.photo,n):delete e.photo,e.document&&"document"===e.document._?o.saveDoc(e.document,n):("document"==e.type&&delete e.type,delete e.document);var a=e.site_name,l=e.title||e.author||a||"";a&&l==a&&delete e.site_name,l.length>100&&(l=l.substr(0,80)+"..."),e.rTitle=s.wrapRichText(l,{noLinks:!0,noLinebreaks:!0});var c="";if("GitHub"==a){var d=e.url.match(/(https?:\/\/github\.com\/[^\/]+\/[^\/]+)/);d&&(c=d[0]+"/issues/{1}")}var u=e.description||"";if(u.length>180&&(u=u.substr(0,150).replace(/(\n|\s)+$/,"")+"..."),e.rDescription=s.wrapRichText(u,{contextSite:a||"external",contextHashtag:c}),"photo"!=e.type&&"video"!=e.type&&"gif"!=e.type&&"document"!=e.type&&!e.description&&e.photo&&(e.type="photo"),t&&(void 0===f[e.id]&&(f[e.id]={}),f[e.id][t]=!0,p[e.id]=e),void 0===p[e.id]?p[e.id]=e:safeReplaceObject(p[e.id],e),!t&&void 0!==f[e.id]){var m=[];angular.forEach(f[e.id],function(e,t){m.push(t)}),i.$broadcast("webpage_updated",{id:e.id,msgs:m})}}function c(t,n){var a=i.$new(!0);a.webpageID=t,a.messageID=n,e.open({templateUrl:templateUrl("embed_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"EmbedModalController",scope:a,windowClass:"photo_modal_window"})}function d(e){var t=angular.copy(p[e])||{_:"webPageEmpty"};return t.photo&&t.photo.id&&(t.photo=r.wrapForHistory(t.photo.id,{website:"photo"!=t.type&&"video"!=t.type})),t.document&&t.document.id&&(t.document=o.wrapForHistory(t.document.id)),t}function u(e){var i=d(e);if(!i.embed_url)return i;var a=$(window).width()-(Config.Mobile?0:10),r=$(n).height()-(Config.Mobile?92:150);!Config.Mobile&&a>800&&(a-=208);var o={width:a,height:r};if(i.embed_width&&i.embed_height){var s=calcImageInBox(i.embed_width,i.embed_height,a,r);o.width=s.w,o.height=s.h}else o.height=o.width=Math.min(a,r);var l=Config.Modes.chrome_packed?"webview":"iframe",c="iframe"!=i.embed_type?i.embed_type||"text/html":"text/html",u="<"+l+' src="'+encodeEntities(i.embed_url)+'" type="'+encodeEntities(c)+'" frameborder="0" border="0" webkitallowfullscreen mozallowfullscreen allowfullscreen width="'+o.width+'" height="'+o.height+'" style="width: '+o.width+"px; height: "+o.height+'px;"></'+l+">";return o.html=t.trustAs("html",u),i.full=o,i}var p={},f={};return i.$on("apiUpdate",function(e,t){switch(t._){case"updateWebPage":l(t.webpage)}}),{saveWebPage:l,openEmbed:c,wrapForFull:u,wrapForHistory:d}}]).service("AppGamesManager",["$modal","$sce","$window","$rootScope","MtpApiManager","AppPhotosManager","AppDocsManager","RichTextProcessor",function(e,t,n,i,a,r,o,s){function l(e,t,n){e.photo&&"photo"===e.photo._?r.savePhoto(e.photo,n):delete e.photo,e.document&&"document"===e.document._?o.saveDoc(e.document,n):delete e.document,e.rTitle=s.wrapRichText(e.title,{noLinks:!0,noLinebreaks:!0}),e.rDescription=s.wrapRichText(e.description||"",{}),void 0===p[e.id]?p[e.id]=e:safeReplaceObject(p[e.id],e)}function c(t,n,a){var r=i.$new(!0);r.gameID=t,r.messageID=n,r.embedUrl=a,e.open({templateUrl:templateUrl("game_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"GameModalController",scope:r,windowClass:"photo_modal_window mobile_modal"})}function d(e){var t=angular.copy(p[e])||{_:"gameEmpty"};return t.photo&&t.photo.id&&(t.photo=r.wrapForHistory(t.photo.id)),t.document&&t.document.id&&(t.document=o.wrapForHistory(t.document.id)),t}function u(e,i,a){var r=d(e),o=$(window).width()-(Config.Mobile?0:10),s=$(n).height()-(Config.Mobile?51:150);!Config.Mobile&&o>800&&(o-=208);var l={width:o,height:s},c=Config.Modes.chrome_packed?"webview":"iframe",u="text/html",p="<"+c+' src="'+encodeEntities(a)+'" type="'+encodeEntities(u)+'" frameborder="0" border="0" webkitallowfullscreen mozallowfullscreen allowfullscreen width="'+l.width+'" height="'+l.height+'" style="width: '+l.width+"px; height: "+l.height+'px;" sandbox="allow-scripts allow-same-origin"></'+c+">";return l.html=t.trustAs("html",p),r.full=l,r}var p={};return{saveGame:l,openGame:c,wrapForFull:u,wrapForHistory:d}}]).service("AppDocsManager",["$sce","$rootScope","$modal","$window","$q","$timeout","RichTextProcessor","MtpApiFileManager","FileManager","qSync",function(e,t,n,i,a,r,o,s,l,c){function d(e,t){if(w[e.id]=e,t&&angular.extend(e,t),e.thumb&&"photoCachedSize"==e.thumb._&&(s.saveSmallFile(e.thumb.location,e.thumb.bytes),e.thumb.size=e.thumb.bytes.length,delete e.thumb.bytes,e.thumb._="photoSize"),e.thumb&&"photoSizeEmpty"==e.thumb._&&delete e.thumb,angular.forEach(e.attributes,function(t){switch(t._){case"documentAttributeFilename":e.file_name=t.file_name;break;case"documentAttributeAudio":e.duration=t.duration,e.audioTitle=t.title,e.audioPerformer=t.performer,e.type=t.pFlags.voice?"voice":"audio";break;case"documentAttributeVideo":e.duration=t.duration,e.w=t.w,e.h=t.h,e.thumb&&t.pFlags.round_message?e.type="round":e.thumb&&(e.type="video");break;case"documentAttributeSticker":e.sticker=!0,void 0!==t.alt&&(e.stickerEmojiRaw=t.alt,e.stickerEmoji=o.wrapRichText(e.stickerEmojiRaw,{noLinks:!0,noLinebreaks:!0})),t.stickerset&&("inputStickerSetEmpty"==t.stickerset._?delete t.stickerset:"inputStickerSetID"==t.stickerset._&&(e.stickerSetInput=t.stickerset)),e.thumb&&"image/webp"==e.mime_type&&(e.type="sticker");break;case"documentAttributeImageSize":e.w=t.w,e.h=t.h;break;case"documentAttributeAnimated":"image/gif"!=e.mime_type&&"video/mp4"!=e.mime_type||!e.thumb||(e.type="gif"),e.animated=!0}}),!e.mime_type)switch(e.type){case"gif":e.mime_type="video/mp4";break;case"video":case"round":e.mime_type="video/mp4";break;case"sticker":e.mime_type="image/webp";break;case"audio":e.mime_type="audio/mpeg";break;case"voice":e.mime_type="audio/ogg";break;default:e.mime_type="application/octet-stream"}e.file_name||(e.file_name=""),"documentEmpty"==e._&&(e.size=0)}function u(e){return w[e]||{_:"documentEmpty"}}function p(e){return void 0!==w[e]}function f(e){if(e.file_name)return e.file_name;var t="."+e.mime_type.split("/")[1];return".octet-stream"==t&&(t=""),"t_"+(e.type||"file")+e.id+t}function m(e){if(void 0!==k[e])return k[e];var t,n,i,a,r=angular.copy(w[e]),o=r.thumb,s=!1;switch(r.type){case"video":t=Math.min(M-80,Config.Mobile?210:150),n=Math.min(S-100,Config.Mobile?210:150);break;case"sticker":s=!0,t=Math.min(M-80,Config.Mobile?128:192),n=Math.min(S-100,Config.Mobile?128:192);break;case"gif":s=!0,t=Math.min(M-80,Config.Mobile?210:260),n=Math.min(S-100,Config.Mobile?210:260);break;case"round":s=!0,t=Math.min(M-80,200),n=Math.min(S-100,200);break;default:t=n=100}return s&&r.w&&r.h?a=calcImageInBox(r.w,r.h,t,n):o&&(a=calcImageInBox(o.w,o.h,t,n)),a?(i={width:a.w,height:a.h},o&&(i.location=o.location,i.size=o.size)):i=!1,r.thumb=i,r.withPreview=!Config.Mobile&&r.mime_type.match(/^image\/(gif|png|jpeg|jpg|bmp|tiff)/)?1:0,k[e]=r}function h(e){var t=w[e],n=k[e]||t||{},i={_:"inputDocumentFileLocation",id:e,access_hash:t.access_hash,version:t.version,file_name:f(t)};void 0===n.downloaded&&s.getDownloadedFile(i,t.size).then(function(){n.downloaded=!0},function(){n.downloaded=!1})}function g(n,i){var o=w[n],d=k[n]||o||{},u={_:"inputDocumentFileLocation",id:n,access_hash:o.access_hash,version:o.version,file_name:f(o)};if("documentEmpty"==o._)return a.reject();if(d.downloaded&&!i){var p=s.getCachedFile(u);if(p)return c.when(p)}d.progress={enabled:!d.downloaded,percent:1,total:o.size};var m=s.downloadFile(o.dc_id,u,o.size,{mime:o.mime_type||"application/octet-stream",toFileEntry:i});return m.then(function(t){t&&(l.getFileCorrectUrl(t,o.mime_type).then(function(t){var n=e.trustAsResourceUrl(t);d.url=n,o.url=n}),d.downloaded=!0),d.progress.percent=100,r(function(){delete d.progress})},function(e){console.log("document download failed",e),d.progress.enabled=!1},function(e){console.log("dl progress",e),d.progress.enabled=!0,d.progress.done=e.done,d.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update")}),d.progress.cancel=m.cancel,m}function _(e,i){var a=t.$new(!0);a.docID=e,a.messageID=i;n.open({templateUrl:templateUrl("document_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"DocumentModalController",scope:a,windowClass:"document_modal_window"})}function v(e){var t=w[e],n=(k[e]||t||{},t.mime_type,f(t)),i=(n.split(".",2)||[])[1]||"";l.chooseSave(f(t),i,t.mime_type).then(function(t){t&&g(e,t)},function(){g(e).then(function(e){l.download(e,t.mime_type,n)})})}function y(e){var t=m(e),n=Math.min($(window).width()-(Config.Mobile?0:60),542),i=$(window).height()-(Config.Mobile?92:150),a={placeholder:"img/placeholders/docThumbModal.gif",width:n,height:i};if(t.w&&t.h){var r=calcImageInBox(t.w,t.h,n,i);a.width=r.w,a.height=r.h}else a.height=a.width=Math.min(n,i);return t.full=a,t.fullThumb=angular.copy(t.thumb),t.fullThumb.width=a.width,t.fullThumb.height=a.height,t}function b(e,i){var a=t.$new(!0);return a.docID=e,a.messageID=i,n.open({templateUrl:templateUrl("video_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"VideoModalController",scope:a,windowClass:"video_modal_window"})}var w={},k={},M=$(window).width(),S=$(window).height();return{saveDoc:d,getDoc:u,hasDoc:p,wrapForHistory:m,wrapVideoForFull:y,updateDocDownloaded:h,downloadDoc:g,openDoc:_,openVideo:b,saveDocFile:v}}]).service("AppStickersManager",["$q","$rootScope","$modal","_","FileManager","MtpApiManager","AppDocsManager","Storage","ApiUpdatesManager",function(e,t,n,i,a,r,o,s,l){function c(){k||(k=!0,setTimeout(d,1e3))}function d(e){return s.get("all_stickers").then(function(t){var n=Config.Schema.API.layer;return t.layer==n&&void 0!==t.emojiIndex||(t=!1),t&&t.date>tsNow(!0)&&!e?(A=t.emojiIndex,u(t)):r.invokeApi("messages.getAllStickers",{hash:t&&t.hash||""}).then(function(e){var i="messages.allStickersNotModified"==e._;return i&&(e=t),e.date=tsNow(!0)+3600,e.layer=n,delete e._,i?(s.set({all_stickers:e}),A=e.emojiIndex,u(e)):m(e,t&&t.fullSets).then(function(){return s.set({all_stickers:e}),u(e)})})})}function u(e){if(M!==e.hash){M=e.hash;var t,n,a,r,s,l,c,d;for(S=[],a=e.sets.length,t=0;t<a;t++)if(l=e.sets[t],!l.pFlags.disabled){for(d=e.fullSets[l.id].documents,r=d.length,c=[],n=0;n<r;n++)s=d[n],o.saveDoc(s),c.push(s.id);l.docIDs=c,S.push(l)}}return h().then(function(e){var t=S;if(e.length){t=S.slice();var n,a,r=[];for(n=0,a=e.length;n<a;n++)r.push(e[n].id);t.unshift({id:0,title:i("im_stickers_tab_recent_raw"),short_name:"",docIDs:r})}return t})}function p(e){angular.forEach(e.packs,function(e){for(var t=e.emoticon,n=!1;t.length&&(n=EmojiHelper.emojiMap[t],void 0===n);)t=t.substr(0,-1);if(void 0!==n){var i=A[n];void 0===i&&(A[n]=i=[]),angular.forEach(e.documents,function(e){i.indexOf(e)===-1&&i.push(e)})}})}function f(e){return h().then(function(){var t=A[e],n=[];if(void 0===t)return n;var i=[];return angular.forEach(S,function(e){i.push(e.id)}),angular.forEach(t,function(e){var t=o.getDoc(e);if(t&&t.stickerSetInput){var a=t.stickerSetInput.id;i.indexOf(a)!=-1&&n.push(t)}}),n.sort(function(e,t){return i.indexOf(e.stickerSetInput.id)-i.indexOf(t.stickerSetInput.id)}),n})}function m(t,n){var i=[],a=n||t.fullSets||{};return t.fullSets={},A=t.emojiIndex={},angular.forEach(t.sets,function(e){var n=a[e.id];if(n&&n.set.hash==e.hash)t.fullSets[e.id]=n,p(n);else{var o=r.invokeApi("messages.getStickerSet",{stickerset:{_:"inputStickerSetID",id:e.id,access_hash:e.access_hash}}).then(function(n){t.fullSets[e.id]=n,p(n)});i.push(o)}}),e.all(i)}function h(){return s.get("stickers_popular").then(function(e){var t,n,i,a=[];if(e&&e.length)for(t=0,n=e.length;t<n;t++)i=e[t][0],o.hasDoc(i)&&a.push({id:i,rate:e[t][1]});return a})}function g(e){h().then(function(t){for(var n=!1,i=t.length,a=[],r=0;r<i;r++)t[r].id==e&&(n=!0,t[r].rate++),a.push([t[r].id,t[r].rate]);n?a.sort(function(e,t){return t[1]-e[1]}):(a.length>15&&(a=a.slice(0,15)),a.push([e,1])),ConfigStorage.set({stickers_popular:a})})}function _(e){return r.invokeApi("messages.getStickerSet",{stickerset:e}).then(function(e){for(var t=0;t<e.documents.length;t++)o.saveDoc(e.documents[t]);return e})}function v(e,t){var n=t?"messages.uninstallStickerSet":"messages.installStickerSet",i={_:"inputStickerSetID",id:e.set.id,access_hash:e.set.access_hash};return r.invokeApi(n,{stickerset:i,disabled:!1}).then(function(n){var i;i=t?{_:"updateDelStickerSet",id:e.set.id
}:{_:"updateNewStickerSet",stickerset:e},l.processUpdateMessage({_:"updateShort",update:i})})}function y(e){return b({_:"inputStickerSetShortName",short_name:e})}function b(e){var i=t.$new(!0);i.inputStickerset=e;n.open({templateUrl:templateUrl("stickerset_modal"),controller:"StickersetModalController",scope:i,windowClass:"stickerset_modal_window mobile_modal"})}function w(e){for(var t,n=0,i=0;i<e.length;i++)t=e[i],!t.pFlags.disabled&&t.pFlags.installed&&(n=(20261*n+2147483648+t.hash)%2147483648);return n}var k=!1,M=!1,S=[],A={};return t.$on("apiUpdate",function(e,n){return("updateStickerSets"==n._||"updateNewStickerSet"==n._||"updateDelStickerSet"==n._||"updateStickerSetsOrder"==n._)&&s.get("all_stickers").then(function(e){switch(e&&e.layer==Config.Schema.API.layer||t.$broadcast("stickers_changed"),n._){case"updateNewStickerSet":var i=n.stickerset,a=i.set;if(a.pFlags.masks)return!1;for(var r=!1,o=0,l=e.sets.length;o<l;o++)if(e.sets[o].id==a.id){r=o;break}r!==!1&&e.sets.splice(r,1),a.pFlags.installed=!0,e.sets.unshift(a),e.fullSets[a.id]=i,p(i);break;case"updateDelStickerSet":for(var a,o=0,l=e.sets.length;o<l;o++)if(a=e.sets[o],a.id==n.id){a.pFlags.installed=!1,e.sets.splice(o,1);break}delete e.fullSets[n.id];break;case"updateStickerSetsOrder":if(n.pFlags.masks)return;var c=n.order;e.sets.sort(function(e,t){return c.indexOf(e.id)-c.indexOf(t.id)})}e.hash=w(e.sets),e.date=0,s.set({all_stickers:e}).then(function(){t.$broadcast("stickers_changed")})})}),{start:c,getStickers:d,openStickersetLink:y,openStickerset:b,installStickerset:v,pushPopularSticker:g,searchStickers:f,getStickerset:_}}]).service("AppInlineBotsManager",["qSync","$q","$rootScope","toaster","Storage","ErrorService","MtpApiManager","AppMessagesManager","AppMessagesIDsManager","AppDocsManager","AppPhotosManager","AppGamesManager","RichTextProcessor","AppUsersManager","AppPeersManager","LocationParamsService","PeersSelectService","GeoLocationManager",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_){function v(){return a.get("inline_bots_popular").then(function(e){var t,n,i,a=[];if(e&&e.length){var r=tsNow(!0);for(t=0,n=e.length;t<n;t++)r-e[t][3]>1209600||(i=e[t][0],f.hasUser(i)||f.saveApiUser(e[t][1]),a.push({id:i,rate:e[t][2],date:e[t][3]}))}return a})}function y(e){v().then(function(t){for(var i=!1,a=t.length,r=[],o=0;o<a;o++){t[o].id==e&&(i=!0,t[o].rate++,t[o].date=tsNow(!0));var s=f.getUser(t[o].id);r.push([t[o].id,s,t[o].rate,t[o].date])}i?r.sort(function(e,t){return t[2]-e[2]}):(r.length>15&&(r=r.slice(0,15)),r.push([e,f.getUser(e),1,tsNow(!0)])),ConfigStorage.set({inline_bots_popular:r}),n.$broadcast("inline_bots_popular")})}function b(n){return m.resolveUsername(n).then(function(i){if(i>0){var a=f.getUser(i);if(a.pFlags.bot&&void 0!==a.bot_inline_placeholder){var r={username:n,id:i,placeholder:a.bot_inline_placeholder};return a.pFlags.bot_inline_geo&&_.isAvailable()?x(i).then(function(){return _.getPosition().then(function(t){return r.geo=t,e.when(r)})})["catch"](function(){return e.when(r)}):e.when(r)}}return t.reject()},function(e){return e.handled=!0,t.reject(e)})}function w(e,t,n,i,a){return o.invokeApi("messages.getInlineBotResults",{flags:0|(i?1:0),bot:f.getUserInput(t),peer:m.getInputPeerByID(e),query:n,geo_point:i&&{_:"inputGeoPoint",lat:i.lat,"long":i["long"]},offset:a},{timeout:1,stopTime:-1,noErrorBox:!0}).then(function(e){var n=e.query_id;return delete e._,delete e.flags,delete e.query_id,e.switch_pm&&(e.switch_pm.rText=p.wrapRichText(e.switch_pm.text,{noLinebreaks:!0,noLinks:!0})),angular.forEach(e.results,function(e){var i=n+"_"+e.id;e.qID=i,e.botID=t,e.rTitle=p.wrapRichText(e.title,{noLinebreaks:!0,noLinks:!0}),e.rDescription=p.wrapRichText(e.description,{noLinebreaks:!0,noLinks:!0}),e.initials=(e.url||e.title||e.type||"").substr(0,1),e.document&&c.saveDoc(e.document),e.photo&&d.savePhoto(e.photo),P[i]=e}),e})}function k(e,t,n){if(e&&e[0]&&["photo","gif","sticker"].indexOf(e[0].type)!=-1){var i=[];angular.forEach(e,function(e){var t,n,a,r;if("botInlineMediaResult"==e._){if(a=e.document)t=e.document.w,n=e.document.h;else if(r=e.photo){var o=(r.sizes||[])[0];t=o&&o.w,n=o&&o.h}}else t=e.w,n=e.h;t&&n||(t=n=1),i.push(t/n)});var a=[],r=0,o=0;angular.forEach(i,function(e){var i=e*n;o+=i,!r||r<4&&o<1.1*t?r++:(a.push(r),r=1,o=i)}),r&&a.push(r);var s=0,l=a.length-1;angular.forEach(a,function(a,r){var o=r==l,c=i.slice(s,s+a),d=0;angular.forEach(c,function(e){d+=e}),angular.forEach(c,function(i,a){var r=n,l=t*i/d,c=r*i;o&&l>c&&(l=c);var u=e[s+a];u.thumbW=Math.floor(l)-2,u.thumbH=Math.floor(r)-2}),s+=a})}}function M(e,t,i){var r=m.getPeerString(e),o={};o["inline_switch_pm"+t]={peer:r,time:tsNow()},a.set(o),n.$broadcast("history_focus",{peerString:m.getPeerString(t)}),s.startBot(t,0,i)}function S(t){var n=f.getUser(t);if(!n||!n.pFlags.bot||!n.bot_inline_placeholder)return e.when(!1);var i="inline_switch_pm"+t;return a.get(i).then(function(e){return!!(e&&(a.remove(i),tsNow()-e.time<36e5))&&e.peer})}function A(e,t,i){n.$broadcast("history_focus",{peerString:t,attachment:{_:"inline_query",mention:"@"+f.getUser(e).username,query:i}})}function C(e,t){var n=s.getMessage(e),i=n.viaBotID||n.fromID;if(t.pFlags&&t.pFlags.same_peer){var a=s.getMessagePeer(n),r=m.getPeerString(a);return void A(i,r,t.query)}return S(i).then(function(e){return e?A(i,e,t.query):void g.selectPeer({canSend:!0}).then(function(e){return A(i,e,t.query)})})}function T(e,t){var n=s.getMessage(e),i=(n.fromID,s.getMessagePeer(n));return o.invokeApi("messages.getBotCallbackAnswer",{flags:1,peer:m.getInputPeerByID(i),msg_id:l.getMessageLocalID(e),data:t.data},{timeout:1,stopTime:-1,noErrorBox:!0}).then(function(e){if("string"==typeof e.message&&e.message.length)$(e.message,e.pFlags.alert);else if("string"==typeof e.url){var t=p.wrapUrl(e.url,!0);h.openUrl(t)}})}function E(e){var t=s.getMessage(e),n=s.getMessagePeer(t);return o.invokeApi("messages.getBotCallbackAnswer",{flags:2,peer:m.getInputPeerByID(n),msg_id:l.getMessageLocalID(e)},{timeout:1,stopTime:-1,noErrorBox:!0}).then(function(n){"string"==typeof n.message&&n.message.length?$(n.message,n.pFlags.alert):"string"==typeof n.url&&u.openGame(t.media.game.id,e,n.url)})}function $(e,t){if("string"==typeof e&&e.length){var n=p.wrapRichText(e,{noLinks:!0,noLinebreaks:!0});t?r.show({title_html:n,alert:!0}):i.pop({type:"info",body:n.valueOf(),bodyOutputType:"trustedHtml",showCloseButton:!1})}}function I(e,t,n){var i=P[t];if(void 0===i)return!1;y(i.botID);var a=t.split("_"),r=a.shift(),o=a.join("_");if(n=n||{},n.viaBotID=i.botID,n.queryID=r,n.resultID=o,i.send_message.reply_markup&&(n.reply_markup=i.send_message.reply_markup),"botInlineMessageText"==i.send_message._)n.entities=i.send_message.entities,s.sendText(e,i.send_message.message,n);else{var l="",c=!1;switch(i.send_message._){case"botInlineMessageMediaAuto":if(l=i.send_message.caption,"botInlineMediaResult"==i._){var d=i.document,u=i.photo;c=d?{_:"inputMediaDocument",id:{_:"inputDocument",id:d.id,access_hash:d.access_hash},caption:l}:{_:"inputMediaPhoto",id:{_:"inputPhoto",id:u.id,access_hash:u.access_hash},caption:l}}break;case"botInlineMessageMediaGeo":c={_:"inputMediaGeoPoint",geo_point:{_:"inputGeoPoint",lat:i.send_message.geo.lat,"long":i.send_message.geo["long"]}};break;case"botInlineMessageMediaVenue":c={_:"inputMediaVenue",geo_point:{_:"inputGeoPoint",lat:i.send_message.geo.lat,"long":i.send_message.geo["long"]},title:i.send_message.title,address:i.send_message.address,provider:i.send_message.provider,venue_id:i.send_message.venue_id};break;case"botInlineMessageMediaContact":c={_:"inputMediaContact",phone_number:i.send_message.phone_number,first_name:i.send_message.first_name,last_name:i.send_message.last_name}}c||(c={_:"messageMediaPending",type:i.type,file_name:i.title||i.content_url||i.url,size:0,progress:{percent:30,total:0}}),s.sendOther(e,c,n)}}function x(e){var n="bot_access_geo"+e;return a.get(n).then(function(e){return!(!e||!e.granted)||r.confirm({type:"BOT_ACCESS_GEO_INLINE"}).then(function(){var e={};return e[n]={granted:!0,time:tsNow()},a.set(e),!0},function(){var e={};return e[n]={denied:!0,time:tsNow()},a.set(e),t.reject()})})}var P={};return{resolveInlineMention:b,getPopularBots:v,sendInlineResult:I,getInlineResults:w,regroupWrappedResults:k,switchToPM:M,checkSwitchReturn:S,switchInlineButtonClick:C,callbackButtonClick:T,gameButtonClick:E}}]).service("ApiUpdatesManager",["$rootScope","MtpNetworkerFactory","AppUsersManager","AppChatsManager","AppPeersManager","MtpApiManager",function(e,t,n,i,a,r){function o(){var e=_.seq+1,t=_.pendingSeqUpdates[e];if(!t)return!1;for(var n,i,a=t.updates,n=0,i=a.length;n<i;n++)h(a[n]);return _.seq=t.seq,t.date&&_.date<t.date&&(_.date=t.date),delete _.pendingSeqUpdates[e],!o()&&_.syncPending&&_.syncPending.seqAwaiting&&_.seq>=_.syncPending.seqAwaiting&&(_.syncPending.ptsAwaiting?delete _.syncPending.seqAwaiting:(clearTimeout(_.syncPending.timeout),_.syncPending=!1)),!0}function s(e){var t=e?f(e):_;if(!t.pendingPtsUpdates.length)return!1;t.pendingPtsUpdates.sort(function(e,t){return e.pts-t.pts});for(var n,i=t.pts,a=!1,r=!1,o=0,s=t.pendingPtsUpdates.length;o<s;o++)n=t.pendingPtsUpdates[o],i+=n.pts_count,i>=n.pts&&(a=n.pts,r=o);if(!a)return!1;for(console.log(dT(),"pop pending pts updates",a,t.pendingPtsUpdates.slice(0,r+1)),t.pts=a,o=0;o<=r;o++)n=t.pendingPtsUpdates[o],h(n);return t.pendingPtsUpdates.splice(0,r+1),!t.pendingPtsUpdates.length&&t.syncPending&&(t.syncPending.seqAwaiting?delete t.syncPending.ptsAwaiting:(clearTimeout(t.syncPending.timeout),t.syncPending=!1)),!0}function l(){_.syncLoading||d()}function c(e,t){var r={date:e.date,seq:e.seq,seqStart:e.seq_start};switch(e._){case"updatesTooLong":case"new_session_created":l();break;case"updateShort":m(e.update,r);break;case"updateShortMessage":case"updateShortChatMessage":var o=2&e.flags,s=e.from_id||(o?y:e.user_id),c=e.chat_id?-e.chat_id:o?e.user_id:y;m({_:"updateNewMessage",message:{_:"message",flags:e.flags,pFlags:e.pFlags,id:e.id,from_id:s,to_id:a.getOutputPeer(c),date:e.date,message:e.message,fwd_from:e.fwd_from,reply_to_msg_id:e.reply_to_msg_id,entities:e.entities},pts:e.pts,pts_count:e.pts_count},r);break;case"updatesCombined":case"updates":n.saveApiUsers(e.users),i.saveApiChats(e.chats),angular.forEach(e.updates,function(e){m(e,r)});break;default:console.warn(dT(),"Unknown update message",e)}}function d(){_.syncLoading||(_.syncLoading=!0,_.pendingSeqUpdates={},_.pendingPtsUpdates=[]),_.syncPending&&(clearTimeout(_.syncPending.timeout),_.syncPending=!1),r.invokeApi("updates.getDifference",{pts:_.pts,date:_.date,qts:-1},{timeout:2147483647}).then(function(t){if("updates.differenceEmpty"==t._)return console.log(dT(),"apply empty diff",t.seq),_.date=t.date,_.seq=t.seq,_.syncLoading=!1,e.$broadcast("stateSynchronized"),!1;n.saveApiUsers(t.users),i.saveApiChats(t.chats);angular.forEach(t.other_updates,function(e){switch(e._){case"updateChannelTooLong":case"updateNewChannelMessage":case"updateEditChannelMessage":return void m(e)}h(e)}),angular.forEach(t.new_messages,function(e){h({_:"updateNewMessage",message:e,pts:_.pts,pts_count:0})});var a=t.intermediate_state||t.state;_.seq=a.seq,_.pts=a.pts,_.date=a.date,"updates.differenceSlice"==t._?d():(e.$broadcast("stateSynchronized"),_.syncLoading=!1)},function(){_.syncLoading=!1})}function u(t){var a=f(t);a.syncLoading||(a.syncLoading=!0,a.pendingPtsUpdates=[]),a.syncPending&&(clearTimeout(a.syncPending.timeout),a.syncPending=!1),r.invokeApi("updates.getChannelDifference",{channel:i.getChannelInput(t),filter:{_:"channelMessagesFilterEmpty"},pts:a.pts,limit:30},{timeout:2147483647}).then(function(r){return a.pts=r.pts,"updates.channelDifferenceEmpty"==r._?(console.log(dT(),"apply channel empty diff",r),a.syncLoading=!1,e.$broadcast("stateSynchronized"),!1):"updates.channelDifferenceTooLong"==r._?(console.log(dT(),"channel diff too long",r),a.syncLoading=!1,delete v[t],h({_:"updateChannelReload",channel_id:t}),!1):(n.saveApiUsers(r.users),i.saveApiChats(r.chats),console.log(dT(),"applying",r.other_updates.length,"channel other updates"),angular.forEach(r.other_updates,function(e){h(e)}),console.log(dT(),"applying",r.new_messages.length,"channel new messages"),angular.forEach(r.new_messages,function(e){h({_:"updateNewChannelMessage",message:e,pts:a.pts,pts_count:0})}),console.log(dT(),"apply channel diff",a.pts),void("updates.channelDifference"!=r._||r.pFlags["final"]?(console.log(dT(),"finished channel get diff"),e.$broadcast("stateSynchronized"),a.syncLoading=!1):u(t)))},function(){a.syncLoading=!1})}function p(e,t){if(!t)throw new Error("Add channel state without pts "+e);return void 0===v[e]&&(v[e]={pts:t,pendingPtsUpdates:[],syncPending:!1,syncLoading:!1},!0)}function f(e,t){return void 0===v[e]&&p(e,t),v[e]}function m(e,t){t=t||{};var r=!1;switch(e._){case"updateNewChannelMessage":case"updateEditChannelMessage":r=-a.getPeerID(e.message.to_id);break;case"updateDeleteChannelMessages":r=e.channel_id;break;case"updateChannelTooLong":if(r=e.channel_id,void 0===v[r])return!1}var c=r?f(r,e.pts):_;if(c.syncLoading)return!1;if("updateChannelTooLong"==e._)return(!c.lastPtsUpdateTime||c.lastPtsUpdateTime<tsNow()-1e4)&&u(r),!1;if("updateNewMessage"==e._||"updateEditMessage"==e._||"updateNewChannelMessage"==e._||"updateEditChannelMessage"==e._){var p=e.message,m=a.getPeerID(p.to_id),g=p.fwd_from||{},y=!1;if(p.from_id&&!n.hasUser(p.from_id,p.pFlags.post)&&(y="author")||g.from_id&&!n.hasUser(g.from_id,!!g.channel_id)&&(y="fwdAuthor")||g.channel_id&&!i.hasChat(g.channel_id,!0)&&(y="fwdChannel")||m>0&&!n.hasUser(m)&&(y="toPeer User")||m<0&&!i.hasChat(-m)&&(y="toPeer Chat"))return console.warn(dT(),"Not enough data for message update",m,y,p),r&&i.hasChat(r)?u(r):l(),!1}else if(r&&!i.hasChat(r))return!1;var b,w;if(e.pts){var k=c.pts+(e.pts_count||0);if(k<e.pts)return console.warn(dT(),"Pts hole",c,e,r&&i.getChat(r)),c.pendingPtsUpdates.push(e),c.syncPending||(c.syncPending={timeout:setTimeout(function(){r?u(r):d()},5e3)}),c.syncPending.ptsAwaiting=!0,!1;if(e.pts>c.pts)c.pts=e.pts,b=!0,c.lastPtsUpdateTime=tsNow();else if(e.pts_count)return!1;r&&t.date&&_.date<t.date&&(_.date=t.date)}else if(!r&&t.seq>0){var M=t.seq,S=t.seqStart||M;if(S!=c.seq+1&&S>c.seq)return console.warn(dT(),"Seq hole",c,c.syncPending&&c.syncPending.seqAwaiting),void 0===c.pendingSeqUpdates[S]&&(c.pendingSeqUpdates[S]={seq:M,date:t.date,updates:[]}),c.pendingSeqUpdates[S].updates.push(e),c.syncPending||(c.syncPending={timeout:setTimeout(function(){d()},5e3)}),(!c.syncPending.seqAwaiting||c.syncPending.seqAwaiting<S)&&(c.syncPending.seqAwaiting=S),!1;c.seq!=M&&(c.seq=M,t.date&&c.date<t.date&&(c.date=t.date),w=!0)}h(e),b?s(r):w&&o()}function h(t){e.$broadcast("apiUpdate",t)}function g(){t.setUpdatesProcessor(c),r.invokeApi("updates.getState",{},{noErrorBox:!0}).then(function(e){_.seq=e.seq,_.pts=e.pts,_.date=e.date,setTimeout(function(){_.syncLoading=!1},1e3)})}var _={pendingPtsUpdates:[],pendingSeqUpdates:{},syncPending:!1,syncLoading:!0},v={},y=0;return r.getUserID().then(function(e){y=e}),{processUpdateMessage:c,addChannelState:p,attach:g}}]).service("StatusManager",["$timeout","$rootScope","MtpApiManager","AppUsersManager","IdleManager",function(e,t,n,i,a){function r(){u||(u=!0,t.$watch("idle.isIDLE",s),t.$watch("offline",s))}function o(e){var a=tsNow();if(!(e&&!d||!e&&a-d<5e4||t.offline))return d=e?0:a,i.setUserStatus(p,e),n.invokeApi("account.updateStatus",{offline:e},{noErrorBox:!0})}function s(){c&&e.cancel(c),t.idle.isIDLE?c=e(function(){o(!0)},5e3):(o(!1),c=e(s,6e4))}function l(){return!!f&&(!(tsNow()>f)||(f=!1,!1))}var c,d=0,u=!1,p=0,f=!1;return n.getUserID().then(function(e){p=e}),t.$on("apiUpdate",function(e,t){"updateUserStatus"==t._&&t.user_id==p&&(f=tsNow()+("userStatusOnline"==t.status._?3e5:0))}),{start:r,isOtherDeviceActive:l}}]).service("NotificationsManager",["$rootScope","$window","$interval","$q","$modal","_","toaster","MtpApiManager","AppPeersManager","AppChatsManager","AppUsersManager","IdleManager","Storage","AppRuntimeManager","FileManager","WebPushApiManager",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h){function g(){p.get("notify_nodesktop","notify_volume","notify_novibrate","notify_nopreview","notify_nopush").then(function(e){if(ee.nodesktop=e[0],ee.volume=e[1]===!1?.5:e[1],ee.novibrate=e[2],ee.nopreview=e[3],ee.nopush=e[4],ne){var t=!ee.nopush&&!ee.nodesktop&&h.isAvailable||!1,n=te!==!1;t!=n&&(t?h.subscribe():h.unsubscribe())}h.setSettings(ee)})}function _(){return ee}function v(e){return void 0!==K[e]?K[e]:K[e]=s.invokeApi("account.getNotifySettings",{peer:{_:"inputNotifyPeer",peer:l.getInputPeerByID(e)}})}function y(e){if(e=e||"favicon.ico",U!==e){var t=document.createElement("link");t.rel="shortcut icon",t.type="image/x-icon",t.href=e,Y.parentNode.replaceChild(t,Y),Y=t,U=e}}function b(t,n){K[t]=i.when(n),e.$broadcast("notify_settings",{peerID:t})}function w(e,t){b(e,t);var n=angular.copy(t);return n._="inputPeerNotifySettings",s.invokeApi("account.updateNotifySettings",{peer:{_:"inputNotifyPeer",peer:l.getInputPeerByID(e)},settings:n})}function k(e){return v(e).then(function(e){return"peerNotifySettings"==e._&&1e3*e.mute_until>tsNow()})}function M(){if(g(),e.$on("settings_changed",g),h.start(),!B)return!1;"Notification"in window&&"granted"!==Notification.permission&&"denied"!==Notification.permission&&$(t).on("click",A);try{"onbeforeunload"in window&&$(t).on("beforeunload",P)}catch(n){}}function S(){P(),n.cancel(F),y(),Q=!0}function A(){Notification.requestPermission(),$(t).off("click",A)}function C(t){if(console.log("notify",t,e.idle.isIDLE,B,Q),!Q){if(Config.Navigator.ffos&&!Config.Navigator.ffos2p)t.image="https://telegram.org/img/t_logo.png";else if(t.image&&!angular.isString(t.image)){if(Config.Navigator.ffos2p)return m.getDataUrl(t.image,"image/jpeg").then(function(e){t.image=e,C(t)}),!1;t.image=m.getUrl(t.image,"image/jpeg")}else t.image||(t.image="img/icons/icon60.png");V++;var n=tsNow();if(ee.volume>0&&(!t.tag||!q[t.tag]||n>q[t.tag]+6e4)&&(T(ee.volume),q[t.tag]=n),!B||"Notification"in window&&"granted"!==Notification.permission)return!1;if(ee.nodesktop){if(z&&!ee.novibrate)return void navigator.vibrate([200,100,200])}else{var i,a=++j,r=t.key||"k"+a;if("Notification"in window)try{t.tag&&angular.forEach(H,function(e){e&&e.tag==t.tag&&(e.hidden=!0)}),i=new Notification(t.title,{icon:t.image||"",body:t.message||"",tag:t.tag||"",silent:t.silent||!1})}catch(o){return B=!1,void h.setLocalNotificationsDisabled()}else if("mozNotification"in navigator)i=navigator.mozNotification.createNotification(t.title,t.message||"",t.image||"");else{if(!N)return;window.external.msSiteModeClearIconOverlay(),window.external.msSiteModeSetIconOverlay("img/icons/icon16.png",t.title),window.external.msSiteModeActivate(),i={index:a}}i.onclick=function(){i.close(),f.focus(),P(),t.onclick&&t.onclick()},i.onclose=function(){i.hidden||(delete H[r],P())},i.show&&i.show(),H[r]=i,Config.Navigator.mobile||setTimeout(function(){I(r)},8e3)}}}function T(e){var t=tsNow();if(!(W&&t<W&&G==e)){W=t+1e3,G=e;var n="img/sound_a.mp3",i=$("#notify_sound").html('<audio autoplay="autoplay" mozaudiochannel="notification"><source src="'+n+'" type="audio/mpeg" /><embed hidden="true" autostart="true" loop="false" volume="'+100*e+'" src="'+n+'" /></audio>');i.find("audio")[0].volume=e}}function E(e){var t=H[e];if(t){V>0&&V--;try{t.close?(t.hidden=!0,t.close()):N&&t.index==j&&window.external.msSiteModeClearIconOverlay()}catch(n){}delete V[e]}}function I(e){var t=H[e];if(t){try{t.close&&(t.hidden=!0,t.close())}catch(n){}delete V[e]}}function x(e){delete q[e]}function P(){N?window.external.msSiteModeClearIconOverlay():angular.forEach(H,function(e){try{e.close&&e.close()}catch(t){}}),H={},V=0,h.hidePushNotifications()}function D(e){return(!te||!angular.equals(te,e))&&void s.invokeApi("account.registerDevice",{token_type:e.tokenType,token:e.tokenValue,other_uids:[]}).then(function(){te=e},function(e){e.handled=!0})}function R(e){return!!te&&void s.invokeApi("account.unregisterDevice",{token_type:e.tokenType,token:e.tokenValue,other_uids:[]}).then(function(){te=!1},function(e){e.handled=!0})}function O(){return z}navigator.vibrate=navigator.vibrate||navigator.mozVibrate||navigator.webkitVibrate;var N=!1;try{window.external&&window.external.msIsSiteMode()&&(N=!0)}catch(L){}var F,U,B=N||"Notification"in window||"mozNotification"in navigator,H={},j=0,V=0,q={},z=!!navigator.vibrate,W=!1,G=!1,K={},Y=$('link[rel="icon"]:first')[0],X=r.pluralize("page_title_pluralize_notifications"),J=document.title,Z=!1,Q=!1,ee={};e.$watch("idle.deactivated",function(e){e&&S()}),e.$watch("idle.isIDLE",function(e){Q||(e||P(),Config.Navigator.mobile||(n.cancel(F),e?(J=document.title,F=n(function(){Z||!V?(Z=!1,document.title=J,y()):(Z=!0,document.title=X(V),y("favicon_unread.ico"))},1e3)):(Z=!1,document.title=J,y())))}),e.$on("apiUpdate",function(e,t){switch(t._){case"updateNotifySettings":if("notifyPeer"==t.peer._){var n=l.getPeerID(t.peer.peer);b(n,t.notify_settings)}}});var te=!1,ne=!1;e.$on("push_init",function(e,t){ne=!0,ee.nodesktop||ee.nopush?R(t):t?D(t):h.subscribe()}),e.$on("push_subscribe",function(e,t){D(t)}),e.$on("push_unsubscribe",function(e,t){R(t)});var ie=i.defer(),ae=e.$on("dialogs_multiupdate",function(){ae(),ie.resolve()}),re=ie.promise;return e.$on("push_notification_click",function(t,n){if("push_settings"==n.action)return void re.then(function(){a.open({templateUrl:templateUrl("settings_modal"),controller:"SettingsModalController",windowClass:"settings_modal_window mobile_modal",backdrop:"single"})});if("mute1d"==n.action)return void s.invokeApi("account.updateDeviceLocked",function(){}).then(function(){var e=o.pop({type:"info",body:r("push_action_mute1d_success"),bodyOutputType:"trustedHtml",clickHandler:function(){o.clear(e)},showCloseButton:!1})});var i=n.custom&&n.custom.peerID;console.log("click",n,i),i&&re.then(function(){n.custom.channel_id&&!c.hasChat(n.custom.channel_id)||i>0&&!d.hasUser(i)||e.$broadcast("history_focus",{peerString:l.getPeerString(i)})})}),{start:M,notify:C,cancel:E,clear:P,soundReset:x,getPeerSettings:v,getPeerMuted:k,savePeerSettings:b,updatePeerSettings:w,updateNotifySettings:g,getNotifySettings:_,getVibrateSupport:O,testSound:T}}]).service("PasswordManager",["$timeout","$q","$rootScope","MtpApiManager","CryptoWorker","MtpSecureRandom",function(e,t,n,i,a,r){function o(e){return i.invokeApi("account.getPassword",{},e).then(function(e){return e})}function s(e,n){var a,o,s={new_settings:{_:"account.passwordInputSettings",flags:0,hint:n.hint||""}};if(a="string"==typeof n.cur_password&&n.cur_password.length>0?u(e.current_salt,n.cur_password):t.when([]),"string"==typeof n.new_password&&n.new_password.length>0){var l=new Array(8),c=bufferConcat(e.new_salt,l);r.nextBytes(l),o=u(c,n.new_password),s.new_settings.new_salt=c,s.new_settings.flags|=1}else"string"==typeof n.new_password&&(s.new_settings.flags|=1,s.new_settings.new_salt=[]),o=t.when([]);return"string"==typeof n.email&&(s.new_settings.flags|=2,s.new_settings.email=n.email||""),t.all([a,o]).then(function(e){return s.current_password_hash=e[0],s.new_settings.new_password_hash=e[1],i.invokeApi("account.updatePasswordSettings",s)})}function l(e,t,n){return u(e.current_salt,t).then(function(e){return i.invokeApi("auth.checkPassword",{password_hash:e},n)})}function c(e,t){return i.invokeApi("auth.requestPasswordRecovery",{},t)}function d(e,t){return i.invokeApi("auth.recoverPassword",{code:e},t)}function u(e,t){for(var n=unescape(encodeURIComponent(t)),i=new ArrayBuffer(n.length),r=new Uint8Array(i),o=0,s=n.length;o<s;o++)r[o]=n.charCodeAt(o);return i=bufferConcat(bufferConcat(e,r),e),a.sha256Hash(i)}return{check:l,getState:o,requestRecovery:c,recover:d,updateSettings:s}}]).service("ErrorService",["$rootScope","$modal","$window",function(e,t,n){function i(n,i){if(o>=1)return console.log("Skip error box, too many open",o,n,i),!1;i=i||{};var a=e.$new();angular.extend(a,n),o++;var r=t.open({templateUrl:templateUrl("error_modal"),scope:a,windowClass:i.windowClass||"error_modal_window"});return r.result["finally"](function(){o--}),r}function a(e,t){return i({title:e,description:t})}function r(n,i,a){i=i||{},a=a||{};var r=e.$new();angular.extend(r,n),angular.extend(r,{data:a});var o=t.open({templateUrl:templateUrl("confirm_modal"),scope:r,windowClass:i.windowClass||"confirm_modal_window"});return o.result}var o=0;return n.safeConfirm=function(e,t){"string"==typeof e&&(e={message:e}),r(e).then(function(e){t(e||!0)},function(){t(!1)})},{show:i,alert:a,confirm:r}}]).service("PeersSelectService",["$rootScope","$modal",function(e,t){function n(n){var i=e.$new();return i.multiSelect=!1,i.noMessages=!0,i.forPeerSelect=!0,n&&angular.extend(i,n),t.open({templateUrl:templateUrl("peer_select"),controller:"PeerSelectController",scope:i,windowClass:"peer_select_window mobile_modal",backdrop:"single"}).result}function i(i){if(Config.Mobile)return n(i).then(function(e){return[e]});var a=e.$new();return a.multiSelect=!0,a.noMessages=!0,a.forPeerSelect=!0,i&&angular.extend(a,i),t.open({templateUrl:templateUrl("peer_select"),controller:"PeerSelectController",scope:a,windowClass:"peer_select_window mobile_modal",backdrop:"single"}).result}return{selectPeer:n,selectPeers:i}}]).service("ContactsSelectService",["$rootScope","$modal",function(e,t){function n(n,i){i=i||{};var a=e.$new();return a.multiSelect=n,angular.extend(a,i),!a.action&&n&&(a.action="select"),t.open({templateUrl:templateUrl("contacts_modal"),controller:"ContactsModalController",scope:a,windowClass:"contacts_modal_window mobile_modal",backdrop:"single"}).result}return{selectContacts:function(e){return n(!0,e)},selectContact:function(e){return n(!1,e)}}}]).service("ChangelogNotifyService",["Storage","$rootScope","$modal","$timeout","MtpApiManager","ApiUpdatesManager",function(e,t,n,i,a,r){function o(){l||(l=!0,a.getUserID().then(function(t){t&&i(function(){e.get("last_version").then(function(t){t!=Config.App.version&&(t?a.invokeApi("help.getAppChangelog",{prev_app_version:t},{noErrorBox:!0}).then(function(t){return!("updates"==t._&&!t.updates.length)&&(r.processUpdateMessage(t),void e.set({last_version:Config.App.version}))}):e.set({last_version:Config.App.version}))})},5e3)}))}function s(e){var i=t.$new();i.lastVersion=e,n.open({controller:"ChangelogModalController",templateUrl:templateUrl("changelog_modal"),scope:i,windowClass:"changelog_modal_window mobile_modal"})}var l=!1;return{checkUpdate:o,showChangelog:s}}]).service("HttpsMigrateService",["ErrorService","Storage",function(e,t){function n(){t.get("https_dismiss").then(function(n){(!n||tsNow()>n+432e5)&&e.confirm({type:"MIGRATE_TO_HTTPS"}).then(function(){var e;try{e=window.open("https://web.telegram.org","_blank")}catch(t){}e||(location.href="https://web.telegram.org")},function(){t.set({https_dismiss:tsNow()})})})}function i(){a||"http:"!=location.protocol||Config.Modes.http||Config.App.domains.indexOf(location.hostname)==-1||(a=!0,setTimeout(n,12e4))}var a=!1;return{start:i,check:n}}]).service("LayoutSwitchService",["ErrorService","Storage","AppRuntimeManager","$window",function(e,t,n,i){function a(e){ConfigStorage.noPrefix(),t.set({layout_selected:e?"mobile":"desktop",layout_width:$(window).width()}).then(function(){n.reload()})}function r(n){if(!l){var i=$(window).width(),r=i<600;!i||!n&&(Config.Navigator.mobile?i<=800:r)||r!=Config.Mobile&&(ConfigStorage.noPrefix(),t.get("layout_width").then(function(n){return i!=n&&(l=!0,void e.confirm({type:r?"SWITCH_MOBILE_VERSION":"SWITCH_DESKTOP_VERSION"}).then(function(){a(r)},function(){ConfigStorage.noPrefix(),t.set({layout_width:i}),l=!1}))}))}}function o(){s||Config.Navigator.mobile||(s=!0,r(),$(i).on("resize",r))}var s=!1,l=!1;return{start:o,switchLayout:a}}]).service("TelegramMeWebService",["Storage",function(e){function t(t){return!n&&void e.get("tgme_sync").then(function(n){var i=tsNow(!0);if(t&&n&&n.canRedirect==t&&n.ts+86400>i)return!1;e.set({tgme_sync:{canRedirect:t,ts:i}});var a=$("<script>").appendTo("body").on("load error",function(){a.remove()}).attr("src","//telegram.me/_websync_?authed="+(t?"1":"0")),r=$("<script>").appendTo("body").on("load error",function(){r.remove()}).attr("src","//t.me/_websync_?authed="+(t?"1":"0"))})}var n=Config.Modes.test||Config.App.domains.indexOf(location.hostname)==-1||"http:"!=location.protocol&&"https:"!=location.protocol||"https:"==location.protocol&&"web.telegram.org"!=location.hostname;return{setAuthorized:t}}]).service("LocationParamsService",["qSync","$rootScope","$routeParams","AppPeersManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppMessagesIDsManager","MtpApiManager","ApiUpdatesManager","PeersSelectService","AppStickersManager","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u,p){function f(){var e=n.tgaddr;if(e){if(!e.match(/[=&?]/))try{e=decodeURIComponent(e)}catch(t){}var i=e.match(b);i&&m(i[3])}}function m(e,n){var r;if(r=e.match(/^resolve\?domain=(.+?)(?:&(start|startgroup|post|game)=(.+))?$/))return i.resolveUsername(r[1]).then(function(e){if(e>0&&a.isBot(e)&&("startgroup"==r[2]||"game"==r[2])){var n="startgroup"==r[2];return d.selectPeer({confirm_type:n?"INVITE_TO_GROUP":"INVITE_TO_GAME",noUsers:n}).then(function(s){var l,c=i.getPeerID(s);if(n){var d=c<0?-c:0;l=o.startBot(e,d,r[3])}else inputGame={_:"inputGameShortName",bot_id:a.getUserInput(e),short_name:r[3]},l=o.shareGame(e,c,inputGame);l.then(function(){t.$broadcast("history_focus",{peerString:s})})}),!0}var l={peerString:i.getPeerString(e)};"start"==r[2]?l.startParam=r[3]:"post"==r[2]&&(l.messageID=s.getFullMessageID(parseInt(r[3]),-e)),t.$broadcast("history_focus",l)}),!0;if(r=e.match(/^join\?invite=(.+)$/))return y(r[1]),!0;if(r=e.match(/^addstickers\?set=(.+)$/))return u.openStickersetLink(r[1]),!0;if(r=e.match(/^msg_url\?url=([^&]+)(?:&text=(.*))?$/)){var e=decodeURIComponent(r[1]),l=r[2]?decodeURIComponent(r[2]):"";return v(e,l),!0}if(n&&(r=e.match(/^unsafe_url\?url=([^&]+)/))){var e=decodeURIComponent(r[1]);return p.confirm({type:"JUMP_EXT_URL",url:e}).then(function(){var t="_blank";0===e.search("https://telegram.me/")||0===e.search("https://t.me/")?t="_self":e.match(/^https?:\/\//)||(e="http://"+e);var n=window.open(e,t);try{n.opener=null}catch(i){}}),!0}if(r=e.match(/^search_hashtag\?hashtag=(.+?)$/))return t.$broadcast("dialogs_search",{query:"#"+decodeURIComponent(r[1])}),Config.Mobile&&t.$broadcast("history_focus",{peerString:""}),!0;if(n&&(r=e.match(/^bot_command\?command=(.+?)(?:&bot=(.+))?$/))){var c=t.selectedPeerID,l="/"+r[1];return c<0&&r[2]&&(l+="@"+r[2]),o.sendText(c,l),t.$broadcast("history_focus",{peerString:i.getPeerString(c)}),!0}return!1}function h(e,n){if(console.log(dT(),"Received activity",e,n),"share"==e&&n.url)v(n.url,"");else if("view"==e&&n.url){var r=n.url.match(b);r&&m(r[3])}else if("webrtc-call"==e&&n.contact){var s=n.contact,l=[];if(void 0!=s.tel)for(var c=0;c<s.tel.length;c++)l.push(s.tel[c].value);var u=(s.givenName||[]).join(" "),f=(s.familyName||[]).join(" ");l.length&&a.importContact(l[0],u,f).then(function(e){if(e){var n=i.getPeerString(e);t.$broadcast("history_focus",{peerString:n})}else p.show({error:{code:404,type:"USER_NOT_USING_TELEGRAM"}})})}else"share"===e&&n.blobs&&n.blobs.length>0&&d.selectPeers({confirm_type:"EXT_SHARE_PEER",canSend:!0}).then(function(e){angular.forEach(e,function(e){var t=i.getPeerID(e);angular.forEach(n.blobs,function(e){o.sendFile(t,e,{isMedia:!0})})}),1==e.length&&t.$broadcast("history_focus",{peerString:e[0]})})}function g(){w||(w=!0,window.navigator.mozSetMessageHandler&&(console.log(dT(),"Set activity message handler"),window.navigator.mozSetMessageHandler("activity",function(e){h(e.source.name,e.source.data)})),$(document).on("click",function(e){var t=e.target;if(t&&"A"==t.tagName&&!t.onclick&&!t.onmousedown){var n=$(t).attr("href")||t.href||"",i=n.match(b);if(i&&m(i[3],!0))return cancelEvent(e)}}),$(document).on("mousedown",function(e){var t=e.target;if(t&&"A"==t.tagName){var n=$(t).attr("href")||t.href||"";Config.Modes.chrome_packed&&n.length&&"_blank"==$(t).attr("target")&&$(t).attr("rel","");
}}),t.$on("$routeUpdate",f),f())}function _(e){var t=e.match(b);if(t&&m(t[3],!0))return!0;var n=window.open(e,"_blank");try{n.opener=null}catch(i){}return!!n}function v(n,i,a){var r={};a&&(r.shareLinkPromise=e.when(n)),d.selectPeer(r).then(function(e){t.$broadcast("history_focus",{peerString:e,attachment:{_:"share_url",url:n,text:i}})})}function y(e){return l.invokeApi("messages.checkChatInvite",{hash:e}).then(function(n){var i;if("chatInviteAlready"==n._){r.saveApiChat(n.chat);var a=!n.chat.pFlags.left||r.isChannel(n.chat.id)&&n.chat.username;if(a)return t.$broadcast("history_focus",{peerString:r.getChatString(n.chat.id)});i=n.chat.title}else i=n.title;p.confirm({type:n.pFlags.channel&&!n.pFlags.megagroup?"JOIN_CHANNEL_BY_LINK":"JOIN_GROUP_BY_LINK",title:i}).then(function(){return l.invokeApi("messages.importChatInvite",{hash:e}).then(function(e){if(c.processUpdateMessage(e),e.chats&&1==e.chats.length)t.$broadcast("history_focus",{peerString:r.getChatString(e.chats[0].id)});else if(e.updates&&e.updates.length)for(var n,i=0,a=e.updates.length;i<a;i++)if(n=e.updates[i],"updateNewMessage"==n._){t.$broadcast("history_focus",{peerString:r.getChatString(n.message.to_id.chat_id)});break}})})})}var b=/^(web\+)?tg:(\/\/)?(.+)/,w=!1;return{start:g,shareUrl:v,openUrl:_}}]).service("DraftsManager",["$rootScope","qSync","MtpApiManager","ApiUpdatesManager","AppMessagesIDsManager","AppChatsManager","AppPeersManager","RichTextProcessor","Storage","ServerTimeManager",function(e,t,n,i,a,r,o,s,l,c){function d(e,t){return l.get("draft"+e).then(function(n){"string"==typeof n&&(n=n.length>0&&{text:n}),n||t||(n=u(e));var i=n&&n.replyToMsgID;if(i){var r=!!o.isChannel(e)&&-e;n.replyToMsgID=a.getFullMessageID(i,r)}return n})}function u(e){var t=y[e];return void 0!==t&&t}function p(t,n,i){i=i||{};var a=_(n);return y[t]=a,i.notify&&(f(t,a),e.$broadcast("draft_updated",{peerID:t,draft:a,local:i.local})),a}function f(e,t){e||console.trace("empty peerID"),e<0&&!r.hasRights(-e,"send")&&(t=!1),t||(t={text:"",replyToMsgID:0}),t.replyToMsgID=t.replyToMsgID?a.getMessageLocalID(t.replyToMsgID):0;var n="draft"+e;if(g(t))l.remove(n);else{var i={};i[n]=t,l.set(i)}}function m(e,t){f(e),i.processUpdateMessage({_:"updateShort",update:{_:"updateDraftMessage",peer:o.getOutputPeer(e),draft:{_:"draftMessageEmpty"},local:!0}}),t&&v(e)}function h(e,t){var n=g(e),i=g(t);return!(!n||!i)||n==i&&(e.replyToMsgID==t.replyToMsgID&&e.text==t.text)}function g(e){return!e||!(e.replyToMsgID>0)&&("string"!=typeof e.text||!e.text.length)}function _(e){if(!e||"draftMessage"!=e._)return!1;var t=s.parseEntities(e.message),n=e.entities||[];t=s.mergeEntities(t,n);var i=s.wrapDraftText(e.message,{entities:t}),a=s.wrapRichText(e.message,{noLinks:!0,noLinebreaks:!0});return{text:i,richMessage:a,replyToMsgID:e.reply_to_msg_id||0,date:e.date-c.serverTimeOffset}}function v(e){d(e,!0).then(function(t){var i=y[e];if(!h(i,t)){var a,r={flags:0,peer:o.getInputPeerByID(e)};if(g(t))a={_:"draftMessageEmpty"},r.message="";else{a={_:"draftMessage"};var l=t.text,d=[];l=s.parseEmojis(l),l=s.parseMarkdown(l,d,!0),t.replyToMsgID>0&&(r.flags|=1,r.reply_to_msg_id=t.replyToMsgID,a.reply_to_msg_id=t.replyToMsgID),d.length&&(r.flags|=8,r.entities=d,a.entities=d),r.message=l,a.message=l}n.invokeApi("messages.saveDraft",r).then(function(){a.date=tsNow(!0)+c.serverTimeOffset,p(e,a,{notify:!0,local:!0})})}})}var y={};return e.$on("apiUpdate",function(e,t){if("updateDraftMessage"==t._){var n=o.getPeerID(t.peer);p(n,t.draft,{notify:!0,local:t.local})}}),{getDraft:d,getServerDraft:u,saveDraft:p,changeDraft:f,clearDraft:m,syncDraft:v}}]),angular.module("myApp.controllers",["myApp.i18n"]).controller("AppWelcomeController",["$scope","$location","MtpApiManager","ChangelogNotifyService","LayoutSwitchService",function(e,t,n,i,a){n.getUserID().then(function(e){return e?void t.url("/im"):"http:"!=location.protocol||Config.Modes.http||Config.App.domains.indexOf(location.hostname)==-1?void t.url("/login"):void(location.href=location.href.replace(/^http:/,"https:"))}),i.checkUpdate(),a.start()}]).controller("AppLoginController",["$scope","$rootScope","$location","$timeout","$modal","$modalStack","MtpApiManager","ErrorService","NotificationsManager","PasswordManager","ChangelogNotifyService","IdleManager","LayoutSwitchService","WebPushApiManager","TelegramMeWebService","_",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h){function g(){var t=(navigator.language||"").toLowerCase(),n=Config.LangCountries[t],i=!Config.Navigator.mobile;if(_(["en","en-us","en-uk"].indexOf(t)==-1?void 0!==n?n:t.indexOf("-")>0?t.split("-")[1].toUpperCase():"US":"US"),i){var a=e.credentials.phone_country;o.invokeApi("help.getNearestDc",{},{dcID:2,createNetworker:!0}).then(function(t){a==e.credentials.phone_country&&_(t.country),t.nearest_dc!=t.this_dc&&o.getNetworker(t.nearest_dc,{createNetworker:!0})})}}function _(e){if(e){var t,n;for(t=0;t<Config.CountryCodes.length;t++)if(n=Config.CountryCodes[t],n[0]==e)return v({name:h(n[1]+"_raw"),code:n[2]})}return v({name:h("country_select_modal_country_us_raw"),code:"+1"})}function v(t){A=t,e.credentials.phone_country!=t.code?e.credentials.phone_country=t.code:y(),e.$broadcast("country_selected"),e.$broadcast("value_updated")}function y(){var t,n,i,a=((e.credentials.phone_country||"")+(e.credentials.phone_number||"")).replace(/\D+/g,""),r=0,o=!1;if(a.length)if(A&&!a.indexOf(A.code.replace(/\D+/g,"")))o=A.name;else for(t=0;t<Config.CountryCodes.length;t++)for(n=2;n<Config.CountryCodes[t].length;n++)i=Config.CountryCodes[t][n].replace(/\D+/g,""),i.length>r&&!a.indexOf(i)&&(r=i.length,o=h(Config.CountryCodes[t][1]+"_raw"));e.credentials.phone_full=a,e.credentials.phone_country_name=o||h("login_controller_unknown_country_raw")}function b(e){o.setUserAuth(S.dcID,{id:e.user.id}),i.cancel(C),n.url("/im")}function w(t){e.credentials.type=t.type,e.nextPending.type=t.next_type||!1,e.nextPending.remaining=t.timeout||!1,delete e.nextPending.progress,k(),onContentLoaded(function(){e.$broadcast("ui_height")})}function k(){i.cancel(C),e.nextPending.type&&e.nextPending.remaining!==!1&&--e.nextPending.remaining>0&&(C=i(k,1e3))}function M(){return c.getState(S).then(function(t){return e.password=t})}r.dismissAll(),u.start(),o.getUserID().then(function(e){return e?void n.url("/im"):"http:"!=location.protocol||Config.Modes.http||Config.App.domains.indexOf(location.hostname)==-1?(m.setAuthorized(!1),void f.forceUnsubscribe()):void(location.href=location.href.replace(/^http:/,"https:"))});var S={dcID:2,createNetworker:!0},A=!1;e.credentials={phone_country:"",phone_country_name:"",phone_number:"",phone_full:""},e.progress={},e.nextPending={},e.about={},e.chooseCountry=function(){var e=a.open({templateUrl:templateUrl("country_select_modal"),controller:"CountrySelectModalController",windowClass:"countries_modal_window mobile_modal",backdrop:"single"});e.result.then(v)},e.$watch("credentials.phone_country",y),e.$watch("credentials.phone_number",y),g();var C;e.sendCode=function(){i.cancel(C);var n=(e.credentials.phone_country||"")+(e.credentials.phone_number||""),a=!n.match(/^[\d\-+\s]+$/);return a||(n=n.replace(/\D/g,""),n.length<7&&(a=!0)),a?(e.progress.enabled=!1,void(e.error={field:"phone"})):void s.confirm({type:"LOGIN_PHONE_CORRECT",country_code:e.credentials.phone_country,phone_number:e.credentials.phone_number}).then(function(){e.progress.enabled=!0,onContentLoaded(function(){e.$broadcast("ui_height")});var n=tsNow();o.invokeApi("auth.sendCode",{flags:0,phone_number:e.credentials.phone_full,api_id:Config.App.id,api_hash:Config.App.hash,lang_code:navigator.language||"en"},S).then(function(t){e.progress.enabled=!1,e.error={},e.about={},e.credentials.phone_code_hash=t.phone_code_hash,w(t)},function(t){switch(e.progress.enabled=!1,console.log("sendCode error",t),t.type){case"PHONE_NUMBER_INVALID":e.error={field:"phone"},t.handled=!0;break;case"PHONE_NUMBER_APP_SIGNUP_FORBIDDEN":e.error={field:"phone"}}})["finally"](function(){(t.idle.isIDLE||tsNow()-n>6e4)&&l.notify({title:"Telegram",message:"Your authorization key was successfully generated! Open the app to log in.",tag:"auth_key"})})})},e.sendNext=function(){!e.nextPending.type||e.nextPending.remaining>0||(e.nextPending.progress=!0,o.invokeApi("auth.resendCode",{phone_number:e.credentials.phone_full,phone_code_hash:e.credentials.phone_code_hash},S).then(w))},e.editPhone=function(){i.cancel(C),e.credentials.phone_full&&e.credentials.phone_code_hash&&o.invokeApi("auth.cancelCode",{phone_number:e.credentials.phone_full,phone_code_hash:e.credentials.phone_code_hash},S),delete e.credentials.phone_code_hash,delete e.credentials.phone_unoccupied,delete e.credentials.phone_code_valid,delete e.nextPending.remaining},e.$watch("credentials.phone_code",function(t){t&&t.match(/^\d+$/)&&e.credentials.type&&e.credentials.type.length&&t.length==e.credentials.type.length&&e.logIn()}),e.logIn=function(t){if(!e.progress.enabled||e.progress.forceSignUp!=t){var n="auth.signIn",i={phone_number:e.credentials.phone_full,phone_code_hash:e.credentials.phone_code_hash,phone_code:e.credentials.phone_code};t&&(n="auth.signUp",angular.extend(i,{first_name:e.credentials.first_name||"",last_name:e.credentials.last_name||""})),e.progress.forceSignUp=t,e.progress.enabled=!0,o.invokeApi(n,i,S).then(b,function(t){if(e.progress.enabled=!1,400==t.code&&"PHONE_NUMBER_UNOCCUPIED"==t.type)return t.handled=!0,e.credentials.phone_code_valid=!0,e.credentials.phone_unoccupied=!0,void(e.about={});if(400==t.code&&"PHONE_NUMBER_OCCUPIED"==t.type)return t.handled=!0,e.logIn(!1);if(401==t.code&&"SESSION_PASSWORD_NEEDED"==t.type)return e.progress.enabled=!0,M().then(function(){e.progress.enabled=!1,e.credentials.phone_code_valid=!0,e.credentials.password_needed=!0,e.about={}}),void(t.handled=!0);switch(t.type){case"FIRSTNAME_INVALID":e.error={field:"first_name"},t.handled=!0;break;case"LASTNAME_INVALID":e.error={field:"last_name"},t.handled=!0;break;case"PHONE_CODE_INVALID":e.error={field:"phone_code"},delete e.credentials.phone_code_valid,t.handled=!0;break;case"PHONE_CODE_EXPIRED":e.editPhone(),t.handled=!0}})}},e.checkPassword=function(){return e.progress.enabled=!0,c.check(e.password,e.credentials.password,S).then(b,function(t){switch(e.progress.enabled=!1,t.type){case"PASSWORD_HASH_INVALID":e.error={field:"password"},t.handled=!0}})},e.forgotPassword=function(n){return c.requestRecovery(e.password,S).then(function(n){var i=t.$new();i.recovery=n,i.options=S;var r=a.open({scope:i,templateUrl:templateUrl("password_recovery_modal"),controller:"PasswordRecoveryModalController",windowClass:"md_simple_modal_window mobile_modal"});r.result.then(function(t){t&&t.user?b(t):e.canReset=!0})},function(t){switch(t.type){case"PASSWORD_EMPTY":e.logIn(),t.handled=!0;break;case"PASSWORD_RECOVERY_NA":i(function(){e.canReset=!0},1e3),t.handled=!0}}),cancelEvent(n)},e.resetAccount=function(){s.confirm({type:"RESET_ACCOUNT"}).then(function(){e.progress.enabled=!0,o.invokeApi("account.deleteAccount",{reason:"Forgot password"},S).then(function(){delete e.progress.enabled,delete e.credentials.password_needed,e.credentials.phone_unoccupied=!0},function(t){t.type&&"2FA_CONFIRM_WAIT_"==t.type.substr(0,17)&&(t.waitTime=t.type.substr(17),t.type="2FA_CONFIRM_WAIT_TIME"),delete e.progress.enabled})})},d.checkUpdate(),p.start()}]).controller("AppIMController",["$q","qSync","$scope","$location","$routeParams","$modal","$rootScope","$modalStack","MtpApiManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppPeersManager","ContactsSelectService","ChangelogNotifyService","ErrorService","AppRuntimeManager","HttpsMigrateService","LayoutSwitchService","LocationParamsService","AppStickersManager",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v,y,b){function w(){s.dismissAll();var e=k||{};k=!1,e.messageID=parseInt(e.messageID)||!1,e.startParam=e.startParam;var i;a.p&&"@"==a.p.charAt(0)?(void 0===n.curDialog&&(n.curDialog={peer:"",peerID:0}),i=p.resolveUsername(a.p.substr(1)).then(function(e){return t.when(p.getPeerString(e))})):i=t.when(a.p),i.then(function(t){n.curDialog=angular.extend({peer:t,peerID:p.getPeerID(t||"")},e),M&&(n.$broadcast("peer_draft_attachment",M),M=!1)})}n.$on("$routeUpdate",w);var k=!1,M=!1;n.$on("history_focus",function(e,t){if(t.peerString!=n.curDialog.peer||(t.messageID?t.messageID!=n.curDialog.messageID:n.curDialog.messageID)||t.startParam||t.attachment){var r=p.getPeerID(t.peerString),o=p.getPeer(r).username,l=o?"@"+o:t.peerString;k=!(!t.messageID&&!t.startParam)&&{messageID:t.messageID,startParam:t.startParam},t.attachment&&(M=t.attachment),a.p!=l?i.url("/im?p="+l):w()}else t.messageID?n.$broadcast("ui_history_change_scroll",!0):n.$broadcast("ui_history_focus"),s.dismissAll()}),n.$on("esc_no_more",function(){o.$apply(function(){i.url("/im")})}),n.isLoggedIn=!0,n.isEmpty={},n.search={},n.historyFilter={mediaType:!1},n.historyPeer={},n.historyState={selectActions:!1,botActions:!1,channelActions:!1,canReply:!1,canDelete:!1,canEdit:!1,actions:function(){return n.historyState.selectActions?"selected":n.historyState.botActions?"bot":!!n.historyState.channelActions&&"channel"},typing:[],missedCount:0,skipped:!1},n.openSettings=function(){r.open({templateUrl:templateUrl("settings_modal"),controller:"SettingsModalController",windowClass:"settings_modal_window mobile_modal",backdrop:"single"})},n.isHistoryPeerGroup=function(){return n.historyPeer.id<0&&!p.isBroadcast(n.historyPeer.id)},n.openFaq=function(){var e="https://telegram.org/faq";switch(Config.I18n.locale){case"es-es":e+="/es";break;case"it-it":e+="/it";break;case"de-de":e+="/de";break;case"ko-ko":e+="/ko";break;case"pt-br":e+="/br"}var t=window.open(e,"_blank");try{t.opener=null}catch(n){}},n.openContacts=function(){f.selectContact().then(function(e){n.dialogSelect(c.getUserString(e))})},n.openGroup=function(){f.selectContacts({action:"new_group"}).then(function(e){if(e&&e.length){var t=o.$new();t.userIDs=e,r.open({templateUrl:templateUrl("chat_create_modal"),controller:"ChatCreateModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal",backdrop:"single"})}})},n.importContact=function(){c.openImportContact().then(function(e){e&&o.$broadcast("history_focus",{peerString:c.getUserString(e)})})},n.searchClear=function(){n.search.query="",n.$broadcast("search_clear")},n.dialogSelect=function(e,t){var i={peerString:e};t?i.messageID=t:n.search.query&&n.searchClear();var a=p.getPeerID(e),r=u.convertMigratedPeer(a);r&&(i.peerString=p.getPeerString(r)),o.$broadcast("history_focus",i)},n.logOut=function(){h.confirm({type:"LOGOUT"}).then(function(){l.logOut().then(function(){location.hash="/login",g.reload()})})},n.openChangelog=function(){m.showChangelog(!1)},n.showPeerInfo=function(){n.curDialog.peerID>0?c.openUser(n.curDialog.peerID):n.curDialog.peerID<0&&d.openChat(-n.curDialog.peerID)},n.toggleEdit=function(){n.$broadcast("history_edit_toggle")},n.selectedFlush=function(){n.$broadcast("history_edit_flush")},n.toggleMedia=function(e){n.$broadcast("history_media_toggle",e)},n.returnToRecent=function(){n.$broadcast("history_return_recent")},n.toggleSearch=function(){n.$broadcast("dialogs_search_toggle")},w(),m.checkUpdate(),_.start(),v.start(),y.start(),b.start()}]).controller("AppImDialogsController",["$scope","$location","$q","$timeout","$routeParams","MtpApiManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppProfileManager","AppPeersManager","PhonebookContactsService","ErrorService","AppRuntimeManager",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f){function m(t){for(var n=0;n<e.dialogs.length;n++)if(e.dialogs[n].peerID==t){e.dialogs.splice(n,1);break}}function h(){var t=!1;e.forPeerSelect&&(t=o.getSelf().id),e.dialogs.sort(function(e,n){return e.peerID==t?-1:n.peerID==t?1:n.index-e.index})}function g(t){var a=++A;if(i.cancel($),w)return $=t||M?n.when():i(angular.noop,500),$.then(function(){var t=e.searchPeer||!1;return l.getSearch(t,e.search.query,{_:"inputMessagesFilterEmpty"},M).then(function(e){if(a!=A)return n.reject();var t=[];return angular.forEach(e.history,function(e){var n=l.getMessage(e),i=l.getMessagePeer(n);t.push({peerID:i,top_message:e,unread_count:-1})}),{dialogs:t}})});var r=e.search.query||"";return e.noUsers&&(r="%pg "+r),l.getConversations(r,k).then(function(t){if(a!=A)return n.reject();if(!r&&!k&&e.forPeerSelect){var i=o.getSelf().id;return l.getConversation(i).then(function(e){return t.dialogs.unshift(e),t})}return t})}function _(t){k=0,M=0,S=!1,w||(T={},b=!1),g(t).then(function(t){w||(e.dialogs=[],e.myResults=[],e.foundPeers=[]),e.foundMessages=[];var n=w?e.foundMessages:e.dialogs;t.dialogs.length?(angular.forEach(t.dialogs,function(t){if(!e.canSend||!d.isChannel(t.peerID)||s.hasRights(-t.peerID,"send")){var i=w?void 0:t,a=l.wrapForDialog(t.top_message,i);if(w&&e.searchPeer){var r=l.getMessage(t.top_message);r.fromID>0&&(a.peerID=r.fromID,a.foundInHistory=!0)}if(w)a.unreadCount=-1;else{if(T[t.peerID])return;T[t.peerID]=!0}n.push(a)}}),w?M=t.dialogs[t.dialogs.length-1].top_message:(k=t.dialogs[t.dialogs.length-1].index,delete e.isEmpty.dialogs),S=!0):S=!1,e.$broadcast("ui_dialogs_change"),e.search.query?v():(l.getConversations("",k,100),t.dialogs.length||(e.isEmpty.dialogs=!0,v()))})}function v(){if(!b||S&&(k||M))return S||w||e.noUsers||!e.search.query&&e.dialogs.length?void g().then(function(t){if(t.dialogs.length){var n=w?e.foundMessages:e.dialogs;angular.forEach(t.dialogs,function(t){if(!e.canSend||!d.isChannel(t.peerID)||s.hasRights(-t.peerID,"send")){var i=w?void 0:t,a=l.wrapForDialog(t.top_message,i);if(w)a.unreadCount=-1;else{if(T[t.peerID])return;T[t.peerID]=!0}if(w&&e.searchPeer){var r=l.getMessage(t.top_message);r.fromID>0&&(a.peerID=r.fromID)}n.push(a)}}),w?M=t.dialogs[t.dialogs.length-1].top_message:k=t.dialogs[t.dialogs.length-1].index,e.$broadcast("ui_dialogs_append"),S=!0}else S=!1}):void y()}function y(){b=!0;var t=++C;o.getContacts(e.search.query).then(function(n){t==C&&(e.myResults=[],angular.forEach(n,function(t){void 0===T[t]&&e.myResults.push({id:t,peerString:o.getUserString(t)})}),n.length?delete e.isEmpty.contacts:e.search.query||(e.isEmpty.contacts=!0),e.$broadcast("ui_dialogs_append"))}),e.search.query&&e.search.query.length>=2&&i(function(){t==C&&r.invokeApi("contacts.search",{q:e.search.query,limit:10}).then(function(n){if(o.saveApiUsers(n.users),s.saveApiChats(n.chats),t==C){var i=[];angular.forEach(e.myResults,function(e){i.push(e.id)}),angular.forEach(n.my_results,function(t){var n=d.getPeerID(t);if(void 0===T[n]&&i.indexOf(n)==-1){if(i.push(n),e.canSend&&d.isChannel(n)&&!s.hasRights(-n,"send"))return;e.myResults.push({id:n,peerString:d.getPeerString(n)})}}),e.foundPeers=[],angular.forEach(n.results,function(t){var n=d.getPeerID(t);if(void 0===T[n]&&i.indexOf(n)==-1){if(e.canSend&&d.isChannel(n)&&!s.hasRights(-n,"send"))return;i.push(n),e.foundPeers.push({id:n,username:d.getPeer(n).username,peerString:o.getUserString(n)})}})}},function(e){400==e.code&&(e.handled=!0)})},500),e.search.query&&!e.noMessages&&(w=!0,_())}e.dialogs=[],e.myResults=[],e.foundPeers=[],e.foundMessages=[],void 0===e.search&&(e.search={}),void 0===e.isEmpty&&(e.isEmpty={}),e.phonebookAvailable=u.isAvailable();var b,w=!1,k=0,M=0,S=!1,A=0,C=0,T={},E={};e.$on("dialogs_need_more",function(){v()}),e.$on("dialog_unread",function(t,n){angular.forEach(e.dialogs,function(e){e.peerID==n.peerID&&(e.unreadCount=n.count)})}),e.$on("history_search",function(t,n){e.setSearchPeer(n)}),e.$on("esc_no_more",function(){e.setSearchPeer(!1)}),e.$on("dialogs_multiupdate",function(t,n){if(w)return!1;if(void 0!==e.search.query&&e.search.query.length)return!1;var i,a,r=!1,o=e.dialogs.length;for(i=0;i<o;i++)a=e.dialogs[i],n[a.peerID]&&(e.dialogs.splice(i,1),i--,o--,l.clearDialogCache(a.mid));angular.forEach(n,function(t,n){e.noUsers&&n>0||(T[n]||(T[n]=!0,r=!0),e.dialogs.unshift(l.wrapForDialog(t.top_message,t)))}),h(),r&&(delete e.isEmpty.dialogs,b&&y())}),e.$on("dialog_top",function(t,n){var i,a,r,o=e.dialogs.length;for(a=0;a<o;a++)if(i=e.dialogs[a],i.peerID==n.peerID){r=l.wrapForDialog(n.top_message,n),e.dialogs.splice(a,1,r);break}h(),r==e.dialogs[o-1]&&e.dialogs.splice(o-1,1)}),e.$on("dialog_flush",function(t,n){var i,a;for(a=0;a<e.dialogs.length;a++)if(i=e.dialogs[a],i.peerID==n.peerID){i.deleted=!0;break}}),e.$on("dialog_drop",function(e,t){m(t.peerID)}),e.$on("dialog_draft",function(t,n){var i,a;for(a=0;a<e.dialogs.length;a++)if(i=e.dialogs[a],i.peerID==n.peerID){i.draft=n.draft,n.index&&(i.index=n.index),h();break}}),e.$on("history_delete",function(t,n){for(var i=0;i<e.dialogs.length;i++)if(e.dialogs[i].peerID==n.peerID){n.msgs[e.dialogs[i].mid]&&(e.dialogs[i].deleted=!0);break}}),e.$on("apiUpdate",function(t,n){switch(n._){case"updateUserTyping":case"updateChatUserTyping":if(!o.hasUser(n.user_id))return void(n.chat_id&&s.hasChat(n.chat_id)&&!s.isChannel(n.chat_id)&&c.getChatFull(n.chat_id));var a="updateUserTyping"==n._?n.user_id:-n.chat_id;o.forceUserOnline(n.user_id);for(var r=0;r<e.dialogs.length;r++)if(e.dialogs[r].peerID==a){e.dialogs[r].typing=n.user_id,i.cancel(E[a]),E[a]=i(function(){for(var t=0;t<e.dialogs.length;t++)e.dialogs[t].peerID==a&&e.dialogs[t].typing==n.user_id&&delete e.dialogs[t].typing},6e3);break}}}),e.$watchCollection("search",function(){e.dialogs=[],e.foundMessages=[],w=!!e.searchPeer,C++,_()}),Config.Mobile&&e.$watch("curDialog.peer",function(){e.$broadcast("ui_dialogs_update")}),e.importPhonebook=function(){u.openPhonebookImport()},e.setSearchPeer=function(t){e.searchPeer=t||!1,e.searchClear(),t?(e.dialogs=[],e.foundPeers=[],w=!0,e.toggleSearch()):w=!1,_(!0)},e.$on("contacts_update",function(){b&&y()}),e.$on("ui_dialogs_search_clear",e.searchClear),e.noMessages||e.$on("dialogs_search",function(t,n){e.search.query=n.query||"",e.toggleSearch()});var $}]).controller("AppImHistoryController",["$scope","$location","$timeout","$modal","$rootScope","toaster","_","MtpApiManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","PeersSelectService","IdleManager","StatusManager","NotificationsManager","ErrorService","GeoLocationManager",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v){function y(t,n){G=a.selectedPeerID=t.peerID;var i=u.getPeerMigratedTo(G);return i?void a.$broadcast("history_focus",{peerString:u.getPeerString(i)}):(e.historyFilter.mediaType=!1,u.getInputPeer(t.peer||e.curDialog.peer||""),S(),L(!0),void(n.peer&&n.peer==t.peer&&t.messageID?C():G?(M(!0),$()):I()))}function b(t){var n,i,a,r=-1,o=10;for(n=0;n<e.peerHistories.length;n++)if(e.peerHistories[n].peerID==t){r=n;break}return r>-1?i=e.peerHistories[r]:(i={peerID:t,messages:[],ids:[]},e.peerHistories.unshift(i),a=e.peerHistories.length-o,a>0&&e.peerHistories.splice(o-1,a),i)}function w(t){var n;for(n=0;n<e.peerHistories.length;n++)if(e.peerHistories[n].peerID==t)return e.peerHistories[n];return!1}function k(t){var n;for(n=0;n<e.peerHistories.length;n++)if(e.peerHistories[n].peerID==t)return e.peerHistories.splice(n,1),!0;return!1}function M(t){var n=u.getPeer(G);return!n||n.deleted?(safeReplaceObject(e.state,{loaded:!1}),!1):(K=b(G),safeReplaceObject(e.historyPeer,{id:G,data:n}),s.getUserID().then(function(t){e.ownID=t}),void(t&&(e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_peer_change"),e.$broadcast("ui_history_change"),safeReplaceObject(e.state,{loaded:!0,empty:!K.messages.length,mayBeHasMore:!0}),S(),A())))}function S(){var t=e.historyState.botActions;!G||G<0||!l.isBot(G)||e.historyFilter.mediaType||e.curDialog.messageID?e.historyState.botActions=!1:e.state.empty||K&&1==K.messages.length&&K.messages[0].action&&"messageActionBotIntro"==K.messages[0].action._?e.historyState.botActions="start":e.curDialog.startParam?e.historyState.botActions="param":e.historyState.botActions=!1,t!=e.historyState.botActions&&e.$broadcast("ui_panel_update")}function A(){var t,n=e.historyState.channelActions;if(G&&u.isChannel(G)&&(t=c.getChat(-G))){var i=c.hasRights(-G,"send");i?e.historyState.channelActions=!1:t.pFlags.left?e.historyState.channelActions="join":(e.historyState.channelActions||(e.historyState.channelActions="mute"),g.getPeerMuted(G).then(function(t){e.historyState.channelActions=t?"unmute":"mute"})),e.historyState.canReply=i,e.historyState.canDelete=i||t.pFlags.moderator}else e.historyState.channelActions=!1,e.historyState.canReply=!0,e.historyState.canDelete=!0;n!=e.historyState.channelActions&&e.$broadcast("ui_panel_update")}function C(){var t=w(G);if(t&&t.ids.indexOf(e.curDialog.messageID)!=-1){e.historyUnread={};var n=e.curDialog.messageID||0;e.$broadcast("messages_focus",n),e.$broadcast("ui_history_change_scroll",!0)}else $()}function T(){if(J){if(ae)return void(le=!0);le=!1,e.state.lessActive=se=!0;var t=ne,n=++oe,i=0,a=20;d.getHistory(e.curDialog.peerID,Q,i,a).then(function(i){if(e.state.lessActive=se=!1,t==ne&&n==oe){var r,o;for(r=i.history.length-1;r>=0;r--)o=i.history[r],o>Q&&(K.messages.push(d.wrapForHistory(o)),K.ids.push(o));i.history.length?(Q=i.history.length>=a?i.history[0]:0,d.regroupWrappedHistory(K.messages,-a)&&e.$broadcast("messages_regroup"),delete e.state.empty,e.$broadcast("ui_history_append")):Q=0,e.historyState.skipped=J=Q>0,re&&E()}})}}function E(){if(X){if(se)return void(re=!0);re=!1,e.state.moreActive=ae=!0;var t=ne,n=++ie,i=e.historyFilter.mediaType&&{_:te[e.historyFilter.mediaType]},a=Config.Mobile?20:0,r=i?d.getSearch(e.curDialog.peerID,"",i,Z,a):d.getHistory(e.curDialog.peerID,Z,a);r.then(function(i){e.state.moreActive=ae=!1,t==ne&&n==ie&&(angular.forEach(i.history,function(e){K.messages.unshift(d.wrapForHistory(e)),K.ids.unshift(e)}),X=null===i.count||i.history.length&&K.messages.length<i.count,i.history.length&&(delete e.state.empty,Z=i.history[i.history.length-1],e.$broadcast("ui_history_prepend"),d.regroupWrappedHistory(K.messages,i.history.length+1)&&e.$broadcast("messages_regroup")),le&&T())})}}function $(t){e.historyState.missedCount=0,X=!1,e.historyState.skipped=J=!1,Z=0,Q=0,K=b(G);var n=0,i=0;e.curDialog.messageID?(Z=parseInt(e.curDialog.messageID),n=20,i=20):t&&(n=10),e.state.moreActive=ae=!1,re=!1,e.state.lessActive=se=!1,le=!1;var r=K.messages.length;r&&(Z||i)&&(r=0,K.messages=[],K.ids=[],e.state.empty=!0);var o=++ne,s=e.historyFilter.mediaType&&{_:te[e.historyFilter.mediaType]},l=s?d.getSearch(e.curDialog.peerID,"",s,Z):d.getHistory(e.curDialog.peerID,Z,n,i,r);e.state.mayBeHasMore=!0,l.then(function(t){if(o==ne){var n=t.history.length;Q=t.unreadSkip||Z&&t.history.indexOf(Z)>=i-1?t.history[0]:0,Z=t.history[t.history.length-1],e.historyState.skipped=J=Q>0,X=null===t.count||n&&n<t.count,M(),safeReplaceObject(e.state,{loaded:!0,empty:!n}),K.messages=[],K.ids=[],angular.forEach(t.history,function(n){var i=d.wrapForHistory(n);e.historyState.skipped&&delete i.pFlags.unread,t.unreadOffset&&(i.unreadAfter=!0),K.messages.push(i),K.ids.push(n)}),K.messages.reverse(),K.ids.reverse(),d.regroupWrappedHistory(K.messages)&&e.$broadcast("messages_regroup"),t.unreadOffset?e.historyUnreadAfter=t.history[t.unreadOffset-1]:e.historyUnreadAfter&&delete e.historyUnreadAfter,e.$broadcast("messages_unread_after");var r=e.curDialog.messageID||0;onContentLoaded(function(){e.$broadcast("messages_focus",r)}),e.$broadcast("ui_history_change"),a.idle.isIDLE||d.readHistory(e.curDialog.peerID),S(),A()}},function(){safeReplaceObject(e.state,{error:!0,loaded:!0})})}function I(){ne++,safeReplaceObject(e.historyPeer,{}),safeReplaceObject(e.state,{notSelected:!0}),K=!1,X=!1,e.$broadcast("ui_history_change")}function x(){d.startBot(G,0,e.curDialog.startParam),e.curDialog.startParam=!1}function P(){delete e.curDialog.startParam}function D(){s.invokeApi("channels.joinChannel",{channel:c.getChannelInput(-G)}).then(function(e){p.processUpdateMessage(e)})}function R(e){g.getPeerSettings(G).then(function(t){t.mute_until=e?2e9:0,g.updatePeerSettings(G,t)})}function O(t,n){if(e.historyState.botActions||a.idle.afterFocus)return!1;var r=d.getMessage(t);if("messageService"==r._)return!1;if(!e.historyState.selectActions){if(getSelectedText())return!1;for(var o=n.target;o;)if(o instanceof SVGElement)o=o.parentNode;else{if(o.className&&o.className.indexOf("im_message_outer_wrap")!=-1){if(Config.Mobile)return!1;break}if(o.className&&o.className.indexOf("im_message_date")!=-1)return e.historyFilter.mediaType?void a.$broadcast("history_focus",{peerString:e.curDialog.peer,messageID:t}):(u.isBroadcast(G)?B(t):j(t),!1);if(Config.Mobile&&o.className&&o.className.indexOf("im_message_body")!=-1)break;if("A"==o.tagName||hasOnclick(o))return!1;o=o.parentNode}if(Config.Mobile)return e.historyState.canEdit=d.canEditMessage(t),i.open({templateUrl:templateUrl("message_actions_modal"),windowClass:"message_actions_modal_window",scope:e.$new()}).result.then(function(n){switch(n){case"reply":j(t);break;case"edit":V(t);break;case"delete":U(t);break;case"forward":H(t);break;case"select":e.historyState.selectActions="selected",e.$broadcast("ui_panel_update"),O(t)}}),!1}var s=n&&n.shiftKey;if(s&&e.$broadcast("ui_selection_clear"),e.selectedMsgs[t])ee=!1,delete e.selectedMsgs[t],e.selectedCount--,e.selectedCount||(e.historyState.selectActions=!1,e.$broadcast("ui_panel_update"));else{if(s){if(ee!=t){var l,c,p,f=ee>t;for(l=0;l<K.messages.length;l++)if(K.messages[l].mid==ee){c=l;break}for(l=c;K.messages[l]&&(p=K.messages[l].mid)!=t;)e.selectedMsgs[p]||(e.selectedMsgs[p]=!0,e.selectedCount++),l+=f?-1:1}}else ee=t;e.selectedMsgs[t]=!0,e.selectedCount++,e.historyState.selectActions||(e.historyState.selectActions="selected",e.$broadcast("ui_panel_update"))}1==e.selectedCount&&angular.forEach(e.selectedMsgs,function(t,n){e.historyState.canEdit=d.canEditMessage(n)}),e.$broadcast("messages_select")}function N(t,n){return e.historyState.canReply&&e.$broadcast("inline_bot_select",t),cancelEvent(n)}function L(t){e.selectedMsgs={},e.selectedCount=0,e.historyState.selectActions=!1,ee=!1,t||e.$broadcast("ui_panel_update"),e.$broadcast("messages_select")}function F(){_.confirm({type:"HISTORY_FLUSH"}).then(function(){d.flushHistory(e.curDialog.peerID,!0).then(function(){L()})})}function U(t){var n=[];if(t?n.push(t):e.selectedCount>0&&angular.forEach(e.selectedMsgs,function(e,t){n.push(t)}),n.length){for(var i=e.curDialog.peerID,a=i>0,r=u.isChannel(i),o=u.isBroadcast(i),s=u.isMegagroup(i),c=!r&&!a,p=i==l.getSelf().id,f=!r,m=0;f&&m<n.length;m++){var h=n[m];d.canRevokeMessage(h)||(f=!1)}_.confirm({type:"MESSAGES_DELETE",count:n.length,revocable:f,isUser:a,peerID:i,isSavedMessages:p,isChannel:o,isSupergroup:s,isUsualGroup:c},{},{revoke:!1}).then(function(e){d.deleteMessages(n,e.revoke).then(function(){L()})})}}function B(e){f.selectPeers({canSend:!0,confirm_type:"FORWARD_PEER",shareLinkPromise:d.getMessageShareLink(e)}).then(function(t){angular.forEach(t,function(t){var n=u.getPeerID(t);d.forwardMessages(n,[e])});var n=r.pop({type:"info",body:o("confirm_modal_forward_to_peer_success"),bodyOutputType:"trustedHtml",clickHandler:function(){a.$broadcast("history_focus",{peerString:t[0]}),r.clear(n)},showCloseButton:!1})})}function H(t){var n=[];t?n.push(t):e.selectedCount>0&&angular.forEach(e.selectedMsgs,function(e,t){n.push(t)}),n.length&&f.selectPeer({canSend:!0}).then(function(e){if(L(),Array.isArray(e)&&e.length>1){angular.forEach(e,function(e){var t=u.getPeerID(e);d.forwardMessages(t,n)});var t=r.pop({type:"info",body:o("confirm_modal_forward_to_peer_success"),bodyOutputType:"trustedHtml",clickHandler:function(){a.$broadcast("history_focus",{peerString:e[0]}),r.clear(t)},showCloseButton:!1})}else a.$broadcast("history_focus",{peerString:e,attachment:{_:"fwd_messages",id:n}})})}function j(t){t||1!=e.selectedCount||angular.forEach(e.selectedMsgs,function(e,n){t=n}),t&&(L(),e.$broadcast("reply_selected",t))}function V(t){t||1!=e.selectedCount||angular.forEach(e.selectedMsgs,function(e,n){t=n}),t&&(L(),e.$broadcast("edit_selected",t))}function q(){e.historyState.selectActions?L():(e.historyState.selectActions="selected",e.$broadcast("ui_panel_update"))}function z(t){return"search"==t?void a.$broadcast("history_search",e.curDialog.peerID):(e.historyFilter.mediaType=t||!1,
t&&(e.curDialog.messageID=!1),K.messages=[],K.ids=[],e.state.empty=!0,void $())}function W(){e.historyFilter.mediaType?z():e.curDialog.messageID?a.$broadcast("history_focus",{peerString:e.curDialog.peer}):$(!0)}e.$watchCollection("curDialog",y),p.attach(),m.start(),h.start(),e.peerHistories=[],e.selectedMsgs={},e.selectedCount=0,e.historyState.selectActions=!1,e.historyState.botActions=!1,e.historyState.channelActions=!1,e.historyState.canDelete=!1,e.historyState.canReply=!1,e.historyState.missedCount=0,e.historyState.skipped=!1,e.state={},e.toggleMessage=O,e.selectedDelete=U,e.selectedForward=H,e.selectedReply=j,e.selectedEdit=V,e.selectedCancel=L,e.selectedFlush=F,e.selectInlineBot=N,e.startBot=x,e.cancelBot=P,e.joinChannel=D,e.togglePeerMuted=R,e.toggleEdit=q,e.toggleMedia=z,e.returnToRecent=W,e.$on("history_edit_toggle",q),e.$on("history_edit_flush",F),e.$on("history_media_toggle",function(e,t){z(t)}),e.$on("history_return_recent",W);var G,K=!1,Y=!1,X=!1,J=!1,Z=0,Q=0,ee=!1,te={photos:"inputMessagesFilterPhotos",video:"inputMessagesFilterVideo",documents:"inputMessagesFilterDocument",audio:"inputMessagesFilterVoice",round:"inputMessagesFilterRoundVideo",music:"inputMessagesFilterMusic",urls:"inputMessagesFilterUrl",mentions:"inputMessagesFilterMyMentions"},ne=0,ie=0,ae=!1,re=!1,oe=0,se=!1,le=!1;e.$on("history_update",angular.noop);var ce=!1;e.$on("stateSynchronized",function(){ce&&(ce==e.curDialog.peerID&&$(),ce=!1)}),e.$on("reply_button_press",function(t,n){var i=e.historyState.replyKeyboard;if(i){var a={replyToMsgID:G<0&&i.mid};switch(n._){case"keyboardButtonRequestPhone":_.confirm({type:"BOT_ACCESS_PHONE"}).then(function(){var e=l.getSelf();d.sendOther(G,{_:"inputMediaContact",phone_number:e.phone,first_name:e.first_name,last_name:e.last_name},a)});break;case"keyboardButtonRequestGeoLocation":_.confirm({type:"BOT_ACCESS_GEO"}).then(function(){return v.getPosition().then(function(e){d.sendOther(G,{_:"inputMediaGeoPoint",geo_point:{_:"inputGeoPoint",lat:e.lat,"long":e["long"]}},a)},function(e){_.alert(o("error_modal_bad_request_title_raw"),o("error_modal_gelocation_na_raw"))})});break;default:d.sendText(G,n.text,a)}}}),e.$on("history_reload",function(t,n){n==e.curDialog.peerID&&$()}),e.$on("history_forbidden",function(n,i){i==e.curDialog.peerID&&t.url("/im"),k(i)}),e.$on("dialog_migrate",function(t,n){if(n.migrateFrom==e.curDialog.peerID){var i=u.getPeerString(n.migrateTo);a.$broadcast("history_focus",{peerString:i})}k(n.migrateFrom)}),e.$on("notify_settings",function(t,n){n.peerID==e.curDialog.peerID&&A()}),e.$on("channel_settings",function(t,n){n.channelID==-e.curDialog.peerID&&A()});var de={};e.$on("history_append",function(t,i){var r=w(i.peerID);if(r){var o=i.peerID==e.curDialog.peerID;if(o){if(e.historyFilter.mediaType||e.historyState.skipped)return void(i.my?W():e.historyState.missedCount++);e.curDialog.messageID&&i.my&&W(),delete e.state.empty}var s=d.wrapForHistory(i.messageID);r.messages.push(s),r.ids.push(i.messageID),d.regroupWrappedHistory(r.messages,-3)&&e.$broadcast("messages_regroup"),o&&(e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_history_append_new",{my:i.my,idleScroll:Y&&!s.pFlags.out&&a.idle.isIDLE}),i.my&&e.historyUnreadAfter&&(delete e.historyUnreadAfter,e.$broadcast("messages_unread_after")),a.idle.isIDLE?!s.pFlags.unread||s.pFlags.out||(r.messages[r.messages.length-2]||{}).pFlags.unread||(e.historyUnreadAfter=s.mid,Y=!0,e.$broadcast("messages_unread_after")):n(function(){d.readHistory(e.curDialog.peerID)}),S(),A())}}),e.$on("history_multiappend",function(t,i){var r=!1,o=!1,s=a.idle.isIDLE;angular.forEach(i,function(t,i){var a=w(i);if(a){var l=i==e.curDialog.peerID,c=a.messages.length,u=t.length;if(l){if(e.historyFilter.mediaType||e.historyState.skipped)return void(e.historyState.missedCount+=u);delete e.state.empty}if((!l||s)&&c>(u>10?10:100))return console.warn(dT(),"Drop too many messages",u,c,s,l,i),void(l?(Q=a.messages[c-1].mid,e.historyState.skipped=J=Q>0,J&&(ce=i,e.$broadcast("ui_history_append"))):k(i));var p,f,m=!1,h=!1,g=a.messages[a.messages.length-1],_=!g||!g.pFlags.unread;for(f=0;f<u;f++)p=t[f],p>0&&p<Z||a.ids.indexOf(p)!==-1||(g=d.wrapForHistory(p),a.messages.push(g),a.ids.push(p),!h&&s&&(g.pFlags.unread&&!g.pFlags.out&&_?h=p:_=!g.pFlags.unread),!m&&g.pFlags.out&&(m=!0));d.regroupWrappedHistory(a.messages,-u-2)&&(r=!0),l&&(e.historyState.typing.length&&e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_history_append_new",{idleScroll:Y&&!m&&s}),s?h&&(e.historyUnreadAfter=h,Y=!0,o=!0):n(function(){d.readHistory(e.curDialog.peerID)}),S(),A())}}),r&&e.$broadcast("messages_regroup"),o&&e.$broadcast("messages_unread_after")}),e.$on("history_delete",function(t,n){var i=w(n.peerID);if(i){var a,r=[];for(a=0;a<i.messages.length;a++)n.msgs[i.messages[a].mid]||r.push(i.messages[a]);i.messages=r,d.regroupWrappedHistory(i.messages),e.$broadcast("messages_regroup"),n.peerID==e.curDialog.peerID&&(e.state.empty=!r.length,S())}}),e.$on("dialog_flush",function(t,n){var i=w(n.peerID);i&&(i.messages=[],i.ids=[],n.peerID==e.curDialog.peerID&&(e.state.empty=!0,S()))}),e.$on("history_focus",function(t,n){e.historyFilter.mediaType&&z()}),e.$on("apiUpdate",function(t,i){switch(i._){case"updateUserTyping":case"updateChatUserTyping":l.forceUserOnline(i.user_id),l.hasUser(i.user_id)&&e.curDialog.peerID==("updateUserTyping"==i._?i.user_id:-i.chat_id)&&(e.historyState.typing.indexOf(i.user_id)==-1&&e.historyState.typing.push(i.user_id),n.cancel(de[i.user_id]),de[i.user_id]=n(function(){var t=e.historyState.typing.indexOf(i.user_id);t!==-1&&e.historyState.typing.splice(t,1)},6e3))}}),e.$on("history_need_less",T),e.$on("history_need_more",E),a.$watch("idle.isIDLE",function(t){t||!e.curDialog||!e.curDialog.peerID||e.historyFilter.mediaType||e.historyState.skipped||d.readHistory(e.curDialog.peerID),t||(Y=!1,ce&&ce==e.curDialog.peerID&&($(),ce=!1))})}]).controller("AppImPanelController",["$scope",function(e){e.$on("user_update",angular.noop)}]).controller("AppImSendController",["$rootScope","$q","$scope","$timeout","MtpApiManager","Storage","AppProfileManager","AppChatsManager","AppUsersManager","AppPeersManager","AppDocsManager","AppStickersManager","AppMessagesManager","AppInlineBotsManager","MtpApiFileManager","DraftsManager","RichTextProcessor",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g){function _(e){return n.$broadcast("ui_message_before_send"),i(function(){V?y():v()}),cancelEvent(e)}function v(){var e=n.draftMessage.text;if(angular.isString(e)&&e.length>0){e=g.parseEmojis(e);var t={replyToMsgID:n.draftMessage.replyToMsgID,clearDraft:!0};do p.sendText(n.curDialog.peerID,e.substr(0,4096),t),e=e.substr(4096),t=angular.copy(t),delete t.clearDraft;while(e.length)}I(),j==n.curDialog.peer&&(j=!1),k(),n.$broadcast("ui_message_send")}function y(){var e=n.draftMessage.text;e=g.parseEmojis(e),p.editMessage(V,e).then(function(){V=!1,k(),n.$broadcast("ui_message_send"),i(function(){n.$broadcast("ui_peer_reply")})})}function b(){var e=n.curDialog.peerID;if(!e)return safeReplaceObject(n.mentions,{}),void n.$broadcast("mentions_update");var i,a=[],r=SearchIndexManager.createIndex(),s=f.getPopularBots().then(function(e){var t=[];return angular.forEach(e,function(e){t.push(e.id)}),t});e<0&&!c.isBroadcast(e)?(i=c.isChannel(e)?o.getChannelParticipants(-e):o.getChatFull(-e).then(function(e){return(e.participants||{}).participants||[]}),i=i.then(function(e){var t=[];return angular.forEach(e,function(e){t.push(e.user_id)}),t})):i=t.when([]),t.all({pop:s,chat:i}).then(function(e){var t={},i=e.pop.concat(e.chat);angular.forEach(i,function(e){t[e]||(t[e]=!0,a.push(l.getUser(e)),SearchIndexManager.indexObject(e,l.getUserSearchText(e),r))}),safeReplaceObject(n.mentions,{users:a,index:r}),n.$broadcast("mentions_update")})}function w(){var e=n.curDialog.peerID;return e?void o.getPeerBots(e).then(function(t){if(!t.length)return safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update");var i=e<0,a=[],r=SearchIndexManager.createIndex();angular.forEach(t,function(e){var t="";if(i){var n=l.getUser(e.id);n&&n.username&&(t+="@"+n.username)}var o=l.getUserSearchText(e.id);angular.forEach(e.commands,function(n,i){var s="/"+i+t;a.push({botID:e.id,value:s,rDescription:g.wrapRichText(n,{noLinks:!0,noLineBreaks:!0})}),SearchIndexManager.indexObject(s,o+" "+i+" "+n,r)})}),safeReplaceObject(n.commands,{list:a,index:r}),n.$broadcast("mentions_update")}):(safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update"))}function k(e,t){var a=t?c.getPeerID(t):0;if(e!=t&&a)return n.$broadcast("ui_message_before_send"),void i(function(){h.syncDraft(a),k()});if(V=!1,b(),w(),E(),P(),delete n.draftMessage.inlineProgress,n.$broadcast("inline_results",!1),j){if(j==n.curDialog.peer)return n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),void n.$broadcast("ui_peer_draft");j=!1}$(),M()}function M(){if(n.curDialog.peerID){var e;e=V?p.getMessageEditData(V).then(function(e){return e.replyToMsgID=V,e},function(e){return console.warn(e),V=!1,M(),t.reject()}):h.getDraft(n.curDialog.peerID),e.then(function(e){if(n.draftMessage.type=V?"edit":"new",n.draftMessage.text=e?e.text:"",n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),e.replyToMsgID){var t=e.replyToMsgID;A(t)}else E();n.$broadcast("ui_peer_draft")})}else n.draftMessage.text="",n.$broadcast("ui_peer_draft")}function S(e,t){if(console.log(dT(),"apply draft attach",t),t&&t._)if("share_url"==t._){var a=t.url,r=t.text||" ";j=n.curDialog.peer,i(function(){n.draftMessage.text=a+"\n"+r,n.$broadcast("ui_peer_draft",{customSelection:[a+"\n",r,""]})},1e3)}else if("fwd_messages"==t._)j=n.curDialog.peer,i(function(){n.draftMessage.fwdMessages=t.id,n.$broadcast("ui_peer_reply")},100);else if("inline_query"==t._){var o=t.mention,s=t.query;j=n.curDialog.peer,i(function(){n.draftMessage.text=o+" "+s,n.$broadcast("ui_peer_draft",{customSelection:[o+" "+s,"",""]})},1e3)}}function A(e,t){return V&&t?void E():(n.draftMessage.replyToMsgID=e,n.$broadcast("ui_peer_reply"),H=!1,void(t&&!V&&h.changeDraft(n.curDialog.peerID,{text:n.draftMessage.text,replyToMsgID:e})))}function C(e){V=e,M()}function T(){return!(V||!n.curDialog.peerID)&&void p.getHistory(n.curDialog.peerID).then(function(e){for(var t,n=0;n<e.history.length;n++)if(t=e.history[n],p.canEditMessage(t)){C(t);break}})}function E(e){if(V)return V=!1,void M();var t=n.draftMessage.replyToMsgID;t&&n.historyState.replyKeyboard&&n.historyState.replyKeyboard.mid==t&&!n.historyState.replyKeyboard.pFlags.hidden&&(n.historyState.replyKeyboard.pFlags.hidden=!0,n.$broadcast("ui_keyboard_update")),delete n.draftMessage.replyToMsgID,n.$broadcast("ui_peer_reply"),e&&h.changeDraft(n.curDialog.peerID,{text:n.draftMessage.text})}function $(){n.draftMessage.fwdMessages&&n.draftMessage.fwdMessages.length&&(delete n.draftMessage.fwdMessages,n.$broadcast("ui_peer_reply"),j==n.curDialog.peer&&(j=!1))}function I(){if(n.draftMessage.fwdMessages&&n.draftMessage.fwdMessages.length){var e=n.draftMessage.fwdMessages.slice();$(),setZeroTimeout(function(){p.forwardMessages(n.curDialog.peerID,e)})}}function x(e){return n.draftMessage.text&&"/"==n.draftMessage.text.charAt(0)?n.draftMessage.text="":n.draftMessage.text="/",n.$broadcast("ui_peer_draft",{focus:!0}),cancelEvent(e)}function P(){var e=n.curDialog.peerID,t=p.getReplyKeyboard(e);t&&(t=p.wrapReplyMarkup(t)),n.historyState.replyKeyboard=t;var i=t&&!t.pFlags.hidden&&("replyKeyboardForceReply"==t._||"replyKeyboardMarkup"==t._&&e<0);i?(A(t.mid),H=!0):H&&E();var a=t&&!t.pFlags.hidden&&"replyKeyboardMarkup"==t._;n.$broadcast("ui_keyboard_update",{enabled:a}),n.$emit("ui_panel_update",{blur:a})}function D(e){var t=n.historyState.replyKeyboard;return t&&(t.pFlags.hidden=!t.pFlags.hidden,P()),cancelEvent(e)}function R(e,t,i){if((""!==e||""!==t)&&(e&&e.length&&(n.historyFilter.mediaType||n.historyState.skipped||p.readHistory(n.curDialog.peerID)),n.curDialog.peerID)){if(!V){var a=n.draftMessage.replyToMsgID;a&&n.historyState.replyKeyboard&&n.historyState.replyKeyboard.mid==a&&(a=0),h.changeDraft(n.curDialog.peerID,{text:e,replyToMsgID:a})}O(e)}}function O(e){W&&i.cancel(W);var a=++K;if(!e||!e.length)return delete n.draftMessage.inlineProgress,void n.$broadcast("inline_results",!1);var r=e.match(q);if(!r){if(r=e.match(z)){var o=EmojiHelper.shortcuts[r[1]];if(!o)return delete n.draftMessage.inlineProgress,void n.$broadcast("inline_results",!1);n.draftMessage.inlineProgress=!0,u.searchStickers(o).then(function(t){var i=[];angular.forEach(t,function(e){i.push({_:"botInlineMediaResult",qID:"_sticker_"+e.id,pFlags:{sticker:!0},id:e.id,type:"sticker",document:e,send_message:{_:"botInlineMessageMediaAuto"}})});var a={pFlags:{gallery:!0},query_id:0,results:i};a.text=e,n.$broadcast("inline_results",a),delete n.draftMessage.inlineProgress})}return delete n.draftMessage.inlineProgress,void n.$broadcast("inline_results",!1)}var s,l=r[1];n.draftMessage.inlineProgress=!0,s=G&&G.username==l?t.when(G):f.resolveInlineMention(l),s.then(function(t){a==K&&(G=t,n.$broadcast("inline_placeholder",{prefix:"@"+l+r[2],placeholder:t.placeholder}),W&&i.cancel(W),W=i(function(){var i=g.parseEmojis(r[3]);f.getInlineResults(n.curDialog.peerID,t.id,i,t.geo,"").then(function(t){W=!1,a==K&&(t.text=e,n.$broadcast("inline_results",t),delete n.draftMessage.inlineProgress)},function(){n.$broadcast("inline_results",!1),delete n.draftMessage.inlineProgress})},500))},function(e){n.$broadcast("inline_results",!1),delete n.draftMessage.inlineProgress})}function N(){return!c.isBroadcast(n.curDialog.peerID)&&void a.invokeApi("messages.setTyping",{peer:c.getInputPeerByID(n.curDialog.peerID),action:{_:"sendMessageTypingAction"}})["catch"](function(e){e.handled=!0})}function L(e){if(angular.isArray(e)&&e.length){var t={replyToMsgID:n.draftMessage.replyToMsgID,isMedia:n.draftMessage.isMedia};delete n.draftMessage.replyToMsgID,e[0].lastModified&&e.sort(function(e,t){return e.lastModified-t.lastModified});for(var i=0;i<e.length;i++)p.sendFile(n.curDialog.peerID,e[i],t),n.$broadcast("ui_message_send");I()}}function F(e){if(e){var t=d.getDoc(e);if(t.id&&t.access_hash){var i={_:"inputMediaDocument",id:{_:"inputDocument",id:t.id,access_hash:t.access_hash}},a={replyToMsgID:n.draftMessage.replyToMsgID};p.sendOther(n.curDialog.peerID,i,a),n.$broadcast("ui_message_send"),I(),E(!0)}delete n.draftMessage.sticker}}function U(e){e&&(p.sendText(n.curDialog.peerID,e,{clearDraft:!0}),j==n.curDialog.peer&&(j=!1),I(),k(),delete n.draftMessage.sticker,delete n.draftMessage.text,delete n.draftMessage.command,delete n.draftMessage.inlineResultID,n.$broadcast("ui_message_send"),n.$broadcast("ui_peer_draft"))}function B(e){if(e){if("_switch_pm_"==e.substr(0,11)){var t=G.id,i=e.substr(11);return f.switchToPM(n.curDialog.peerID,t,i)}var a={replyToMsgID:n.draftMessage.replyToMsgID,clearDraft:!0};if("_sticker_"==e.substr(0,9)){var r=e.substr(9),o=d.getDoc(r);if(o.id&&o.access_hash){var s={_:"inputMediaDocument",id:{_:"inputDocument",id:o.id,access_hash:o.access_hash}};p.sendOther(n.curDialog.peerID,s,a)}}else f.sendInlineResult(n.curDialog.peerID,e,a);j==n.curDialog.peer&&(j=!1),I(),k(),delete n.draftMessage.sticker,delete n.draftMessage.text,delete n.draftMessage.command,delete n.draftMessage.inlineResultID,n.$broadcast("ui_message_send"),n.$broadcast("ui_peer_draft")}}n.$watch("curDialog.peer",k),n.$on("user_update",angular.noop),n.$on("peer_draft_attachment",S),n.$on("reply_selected",function(e,t){A(t,!0)}),n.$on("edit_selected",function(e,t){C(t,!0)}),n.$on("ui_typing",N),n.draftMessage={text:"",send:_,replyClear:E,fwdsClear:$,toggleSlash:x,replyKeyboardToggle:D,type:"new"},n.mentions={},n.commands={},n.$watch("draftMessage.text",R),n.$watch("draftMessage.files",L),n.$watch("draftMessage.sticker",F),n.$watch("draftMessage.command",U),n.$watch("draftMessage.inlineResultID",B),n.$on("history_reply_markup",function(e,t){t.peerID==n.curDialog.peerID&&P()}),n.$on("inline_bot_select",function(e,t){var i=l.getUser(t);n.draftMessage.text="@"+i.username+" ",n.$broadcast("ui_peer_draft",{focus:!0})}),n.$on("inline_bots_popular",b),n.$on("last_message_edit",T),e.$watch("idle.isIDLE",function(t){e.idle.initial||t&&n.curDialog.peerID&&(n.$broadcast("ui_message_before_send"),i(function(){h.syncDraft(n.curDialog.peerID)}))}),n.$on("draft_updated",function(t,i){i.peerID!=n.curDialog.peerID||i.local||n.draftMessage.text&&!e.idle.isIDLE||M()});var H=!1,j=!1,V=!1,q=/^@([a-zA-Z\d_]{1,32})( | )([\s\S]*)$/,z=/^\s*:(\S+):\s*$/,W=!1,G=!1,K=0}]).controller("AppLangSelectController",["$scope","_","Storage","ErrorService","AppRuntimeManager",function(e,t,n,i,a){e.supportedLocales=Config.I18n.supported,e.langNames=Config.I18n.languages,e.curLocale=Config.I18n.locale,e.form={locale:Config.I18n.locale},e.localeSelect=function(t){t=t||e.form.locale,e.curLocale!==t&&i.confirm({type:"APPLY_LANG_WITH_RELOAD"}).then(function(){n.set({i18n_locale:t}).then(function(){a.reload()})},function(){e.form.locale=e.curLocale})}}]).controller("AppFooterController",["$scope","LayoutSwitchService",function(e,t){e.switchLayout=function(e){t.switchLayout(e)}}]).controller("PhotoModalController",["$q","$scope","$rootScope","$modalInstance","AppPhotosManager","AppMessagesManager","AppPeersManager","AppWebPagesManager","PeersSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c){function d(e){var n=e<0?[-1,-2]:[1,2],i=_.indexOf(t.messageID);angular.forEach(n,function(e){var t=_[i+e];if(void 0!==t&&void 0===v[t]){v[t]=!0;var n=r.getMessage(t),o=n.media.photo.id;a.preloadPhoto(o)}})}function u(e){var n=_.indexOf(t.messageID);b?e&&(t.count=Math.max(e,_.length)):t.count=_.length,t.pos=t.count-n,t.nav.hasNext=n>0,t.nav.hasPrev=b||n<_.length-1,t.canForward=t.canDelete=t.messageID>0}function p(n){var i=_.indexOf(t.messageID),o=i>=0?i+n:0,s=++w,l=o>=_.length?f():e.when();l.then(function(){if(s==w){var e=_[o],i=r.getMessage(e),l=i&&i.media&&(i.media.photo&&i.media.photo.id||i.media.webpage&&i.media.webpage.photo&&i.media.webpage.photo.id);if(!l)return void console.error("Invalid photo message",o,_,e,i);t.messageID=e,t.photoID=l,t.photo=a.wrapForFull(t.photoID),v[t.messageID]=!0,u(),n>0&&b&&_.indexOf(e)+1>=_.length?f():d(n)}})}function f(){return k?k:k=r.getSearch(m,h,g,y).then(function(t){return t.history.length?(y=t.history[t.history.length-1],_=_.concat(t.history),b=_.length<t.count):b=!1,u(t.count),k=!1,t.history.length?e.reject():void d(1)})}if(t.photo=a.wrapForFull(t.photoID),t.nav={},t.download=function(){a.downloadPhoto(t.photoID)},t.messageID){t.forward=function(){var e=t.messageID;l.selectPeer({canSend:!0}).then(function(t){n.$broadcast("history_focus",{peerString:t,attachment:{_:"fwd_messages",id:[e]}})})},t.goToMessage=function(){var e=t.messageID,a=r.getMessagePeer(r.getMessage(e)),s=o.getPeerString(a);i.dismiss(),n.$broadcast("history_focus",{peerString:s,messageID:e})},t["delete"]=function(){var e=t.messageID;c.confirm({type:"MESSAGE_DELETE"}).then(function(){r.deleteMessages([e])})};var m=r.getMessagePeer(r.getMessage(t.messageID)),h=(o.getInputPeerByID(m),""),g={_:"inputMessagesFilterPhotos"},_=[t.messageID],v={},y=t.messageID,b=!0;if(v[t.messageID]=!0,u(),t.nav.next=function(){return!!t.nav.hasNext&&void p(-1)},t.nav.prev=function(){return!!t.nav.hasPrev&&void p(1)},t.$on("history_delete",function(e,n){if(n.peerID==m){if(n.msgs[t.messageID])if(t.nav.hasNext)t.nav.next();else{if(!t.nav.hasPrev)return i.dismiss();t.nav.prev()}for(var a=[],r=0;r<_.length;r++)n.msgs[_[r]]||a.push(_[r]);_=a}}),t.webpageID)return void(t.webpage=s.wrapForHistory(t.webpageID));r.getSearch(m,h,g,0,1e3).then(function(e){e.history.indexOf(t.messageID)>=0&&(_=e.history,y=_[_.length-1],u(),d(1)),f()},f);var w=0,k=!1}}]).controller("UserpicModalController",["$q","$scope","$rootScope","$modalInstance","MtpApiManager","AppPhotosManager","AppUsersManager","AppPeersManager","AppMessagesManager","ApiUpdatesManager","PeersSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u){function p(n,i){var a=g.indexOf(t.photoID),o=a>=0?a+n:0,s=++w,l=o>=g.length?m():e.when();l.then(function(){if(s==w){t.photoID=g[o],t.photo=r.wrapForFull(t.photoID),t.photo.thumb={location:r.choosePhotoSize(t.photo,0,0).location};var e;i&&(g.splice(a,1),e=t.count-1),h(e),v[t.photoID]=!0,h(),n>0&&b&&g.indexOf(t.photoID)+1>=g.length?m():f(n)}})}function f(e){var n=e<0?[-1,-2]:[1,2],i=g.indexOf(t.photoID);angular.forEach(n,function(e){var t=g[i+e];void 0!==t&&void 0===v[t]&&(v[t]=!0,r.preloadPhoto(t))})}function m(){return k?k:k=r.getUserPhotos(t.userID,_).then(function(t){return t.photos.length?(_=t.photos[t.photos.length-1],g=g.concat(t.photos),b=g.length<t.count):b=!1,h(t.count),k=!1,t.photos.length?e.reject():void f(1)})}function h(e){var n=g.indexOf(t.photoID);b?e&&(t.count=Math.max(e,g.length)):t.count=g.length,t.pos=t.count-n,t.nav.hasNext=n>0,t.nav.hasPrev=b||n<g.length-1,t.canDelete=t.photo.user_id==y}t.photo=r.wrapForFull(t.photoID),t.photo.thumb={location:r.choosePhotoSize(t.photo,0,0).location},t.nav={},t.canForward=!0;var g=[t.photoID],_=t.photoID,v={},y=0,b=!0;h(),r.getUserPhotos(t.userID,0,1e3).then(function(e){e.photos.indexOf(t.photoID)>=0&&(g=e.photos,_=g[g.length-1]),b=g.length<e.count,h()}),a.getUserID().then(function(e){y=e,t.canDelete=t.photo.user_id==y});var w=0,k=!1;t.nav.next=function(){return!!t.nav.hasNext&&void p(-1)},t.nav.prev=function(){return!!t.nav.hasPrev&&void p(1)},t.forward=function(){d.selectPeer({confirm_type:"FORWARD_PEER",canSend:!0}).then(function(e){var i=s.getPeerID(e);l.sendOther(i,{_:"inputMediaPhoto",id:{_:"inputPhoto",id:t.photoID,access_hash:t.photo.access_hash}}),n.$broadcast("history_focus",{peerString:e})})},t["delete"]=function(){var e=t.photoID,n=o.getUser(y),r=function(){return t.nav.hasNext||t.nav.hasPrev?void p(t.nav.hasNext?-1:1,!0):i.dismiss()};u.confirm({type:"PHOTO_DELETE"}).then(function(){n&&n.photo&&n.photo.photo_id==e?a.invokeApi("photos.updateProfilePhoto",{id:{_:"inputPhotoEmpty"}}).then(function(e){c.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:y,date:tsNow(!0),photo:e,previous:!0}}),r()}):a.invokeApi("photos.deletePhotos",{id:[{_:"inputPhoto",id:e,access_hash:0}]}).then(r)})},t.download=function(){r.downloadPhoto(t.photoID)}}]).controller("ChatpicModalController",["$q","$scope","$rootScope","$modalInstance","MtpApiManager","AppPhotosManager","AppChatsManager","AppPeersManager","AppMessagesManager","ApiUpdatesManager","PeersSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u){t.photo=r.wrapForFull(t.photoID),t.photo.thumb={location:r.choosePhotoSize(t.photo,0,0).location};var p=o.getChat(t.chatID),f=o.isChannel(t.chatID);t.canForward=!0,t.canDelete=!f||p.pFlags.creator,t.forward=function(){d.selectPeer({confirm_type:"FORWARD_PEER",canSend:!0}).then(function(e){var i=s.getPeerID(e);l.sendOther(i,{_:"inputMediaPhoto",id:{_:"inputPhoto",id:t.photoID,access_hash:t.photo.access_hash}}),n.$broadcast("history_focus",{peerString:e})})},t["delete"]=function(){u.confirm({type:"PHOTO_DELETE"}).then(function(){t.photo.updating=!0;var e;e=o.isChannel(t.chatID)?a.invokeApi("channels.editPhoto",{channel:o.getChannelInput(t.chatID),photo:{_:"inputChatPhotoEmpty"}}):a.invokeApi("messages.editChatPhoto",{chat_id:o.getChatInput(t.chatID),photo:{_:"inputChatPhotoEmpty"}}),e.then(function(e){c.processUpdateMessage(e),i.dismiss(),n.$broadcast("history_focus",{peerString:o.getChatString(t.chatID)})})["finally"](function(){t.photo.updating=!1})})},t.download=function(){r.downloadPhoto(t.photoID)}}]).controller("VideoModalController",["$scope","$rootScope","$modalInstance","PeersSelectService","AppMessagesManager","AppDocsManager","AppPeersManager","ErrorService",function(e,t,n,i,a,r,o,s){e.video=r.wrapVideoForFull(e.docID),e.progress={enabled:!1},e.player={},e.forward=function(){var n=e.messageID;i.selectPeer({canSend:!0}).then(function(e){t.$broadcast("history_focus",{peerString:e,attachment:{_:"fwd_messages",id:[n]}})})},e["delete"]=function(){var t=e.messageID;s.confirm({type:"MESSAGE_DELETE"}).then(function(){a.deleteMessages([t])})},e.download=function(){r.saveDocFile(e.docID)},e.$on("history_delete",function(t,i){i&&i.msgs&&i.msgs[e.messageID]&&n.dismiss()})}]).controller("DocumentModalController",["$scope","$rootScope","$modalInstance","PeersSelectService","AppMessagesManager","AppDocsManager","AppPeersManager","ErrorService",function(e,t,n,i,a,r,o,s){e.document=r.wrapForHistory(e.docID),e.forward=function(){var n=e.messageID;i.selectPeer({canSend:!0}).then(function(e){t.$broadcast("history_focus",{peerString:e,attachment:{_:"fwd_messages",id:[n]}})})},e["delete"]=function(){var t=e.messageID;s.confirm({type:"MESSAGE_DELETE"}).then(function(){a.deleteMessages([t])})},e.download=function(){r.saveDocFile(e.docID)},e.$on("history_delete",function(t,i){i&&i.msgs&&i.msgs[e.messageID]&&n.dismiss()})}]).controller("EmbedModalController",["$q","$scope","$rootScope","$modalInstance","AppPhotosManager","AppMessagesManager","AppPeersManager","AppWebPagesManager","PeersSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c){t.webpage=s.wrapForFull(t.webpageID),t.nav={},t.forward=function(){var e=t.messageID;l.selectPeer({canSend:!0}).then(function(t){n.$broadcast("history_focus",{peerString:t,attachment:{_:"fwd_messages",id:[e]}})})},t["delete"]=function(){var e=t.messageID;c.confirm({type:"MESSAGE_DELETE"}).then(function(){r.deleteMessages([e])})}}]).controller("GameModalController",["$q","$scope","$rootScope","$modalInstance","AppPhotosManager","AppMessagesManager","AppPeersManager","AppGamesManager","PeersSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c){t.game=s.wrapForFull(t.gameID,t.messageID,t.embedUrl);var d=t.messageID,u=r.getMessage(d);t.botID=u.viaBotID||u.fromID,t.nav={},t.forward=function(e){l.selectPeer({canSend:!0,confirm_type:"INVITE_TO_GAME"}).then(function(t){var i=o.getPeerID(t);r.forwardMessages(i,[d],{withMyScore:e}).then(function(){n.$broadcast("history_focus",{peerString:t})})})},t.$on("game_frame_event",function(e,n){"share_score"==n.eventType&&t.forward(!0)})}]).controller("UserModalController",["$scope","$location","$rootScope","$modalInstance","AppProfileManager","$modal","AppUsersManager","MtpApiManager","NotificationsManager","AppPhotosManager","AppMessagesManager","AppPeersManager","PeersSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f){var m=o.getUserString(e.userID);e.user=o.getUser(e.userID),e.blocked=!1,e.settings={notifications:!0},a.getProfile(e.userID,e.override).then(function(t){e.blocked=t.pFlags.blocked,e.bot_info=t.bot_info,e.rAbout=t.rAbout,l.getPeerMuted(e.userID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void l.getPeerSettings(e.userID).then(function(n){n.mute_until=t?0:2e9,l.updatePeerSettings(e.userID,n)})})})}),e.goToHistory=function(){n.$broadcast("history_focus",{peerString:m})},e.flushHistory=function(n){f.confirm({type:n?"HISTORY_FLUSH":"HISTORY_FLUSH_AND_DELETE"}).then(function(){d.flushHistory(e.userID,n).then(function(){n?e.goToHistory():(i.close(),t.url("/im"))})})},e.importContact=function(t){var i=n.$new();i.importContact={phone:e.user.phone,first_name:e.user.first_name,last_name:e.user.last_name},r.open({templateUrl:templateUrl(t?"edit_contact_modal":"import_contact_modal"),controller:"ImportContactModalController",windowClass:"md_simple_modal_window mobile_modal",scope:i}).result.then(function(t){e.userID==t&&(e.user=o.getUser(e.userID))})},e.deleteContact=function(){o.deleteContacts([e.userID]).then(function(){e.user=o.getUser(e.userID)})},e.inviteToGroup=function(){p.selectPeer({confirm_type:"INVITE_TO_GROUP",noUsers:!0}).then(function(t){var i=u.getPeerID(t),a=i<0?-i:0;d.startBot(e.user.id,a).then(function(){n.$broadcast("history_focus",{peerString:t})})})},e.sendCommand=function(t){d.sendText(e.userID,"/"+t),n.$broadcast("history_focus",{peerString:m})},e.toggleBlock=function(t){s.invokeApi(t?"contacts.block":"contacts.unblock",{id:o.getUserInput(e.userID)}).then(function(){e.blocked=t})},e.shareContact=function(){p.selectPeer({confirm_type:"SHARE_CONTACT_PEER",canSend:!0}).then(function(t){var i=u.getPeerID(t);d.sendOther(i,{_:"inputMediaContact",phone_number:e.user.phone,first_name:e.user.first_name,last_name:e.user.last_name,user_id:e.user.id}),n.$broadcast("history_focus",{peerString:t})})}}]).controller("ChatModalController",["$scope","$modalInstance","$location","$timeout","$rootScope","$modal","AppUsersManager","AppChatsManager","AppProfileManager","AppPhotosManager","MtpApiManager","MtpApiFileManager","NotificationsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","ContactsSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_){function v(t){h.processUpdateMessage(t),a.$broadcast("history_focus",{peerString:e.chatFull.peerString})}function y(t){t&&t.type&&0===t.type.indexOf("image")&&(e.photo.updating=!0,u.uploadFile(t).then(function(t){return d.invokeApi("messages.editChatPhoto",{chat_id:s.getChatInput(e.chatID),photo:{_:"inputChatUploadedPhoto",file:t}}).then(v)})["finally"](function(){e.photo.updating=!1}))}e.chatFull=s.wrapForFull(e.chatID,{}),e.settings={notifications:!0},e.maxParticipants=200,l.getChatFull(e.chatID).then(function(t){e.chatFull=s.wrapForFull(e.chatID,t),e.$broadcast("ui_height"),e.needMigrate=e.chatFull&&e.chatFull.participants&&e.chatFull.participants.participants&&e.chatFull.participants.participants.length>=200,(Config.Modes.test||Config.Modes.debug)&&(e.needMigrate=!0),p.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void p.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,p.updatePeerSettings(-e.chatID,n)})})})}),e.leaveGroup=function(){_.confirm({type:"HISTORY_LEAVE_AND_FLUSH"}).then(function(){d.invokeApi("messages.deleteChatUser",{chat_id:s.getChatInput(e.chatID),user_id:{_:"inputUserSelf"}}).then(function(i){h.processUpdateMessage(i),f.flushHistory(-e.chatID).then(function(){t.close(),n.url("/im")})})})},e.inviteToGroup=function(){var t=[];angular.forEach(e.chatFull.participants.participants,function(e){t.push(e.user_id)}),g.selectContacts({disabled:t}).then(function(t){angular.forEach(t,function(t){d.invokeApi("messages.addChatUser",{chat_id:s.getChatInput(e.chatID),user_id:o.getUserInput(t),fwd_limit:100}).then(function(e){h.processUpdateMessage(e)})}),a.$broadcast("history_focus",{peerString:e.chatFull.peerString})})},e.migrateToSuperGroup=function(){_.confirm({type:"SUPERGROUP_MIGRATE"}).then(function(){d.invokeApi("messages.migrateChat",{chat_id:s.getChatInput(e.chatID)}).then(v)})},e.kickFromGroup=function(t){d.invokeApi("messages.deleteChatUser",{chat_id:s.getChatInput(e.chatID),user_id:o.getUserInput(t)}).then(v)},e.flushHistory=function(i){_.confirm({type:i?"HISTORY_FLUSH":"HISTORY_FLUSH_AND_DELETE"}).then(function(){f.flushHistory(-e.chatID,i).then(function(){i?a.$broadcast("history_focus",{peerString:e.chatFull.peerString}):(t.close(),n.url("/im"))})})},e.inviteViaLink=function(){var t=a.$new();t.chatID=e.chatID,r.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:t,windowClass:"md_simple_modal_window"})},e.photo={},e.$watch("photo.file",y),e.deletePhoto=function(){e.photo.updating=!0,d.invokeApi("messages.editChatPhoto",{chat_id:s.getChatInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(v)["finally"](function(){e.photo.updating=!1})},e.editTitle=function(){var t=a.$new();t.chatID=e.chatID,r.open({templateUrl:templateUrl("chat_edit_modal"),controller:"ChatEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.hasRights=function(t){return s.hasRights(e.chatID,t)}}]).controller("ChannelModalController",["$scope","$timeout","$rootScope","$modal","AppUsersManager","AppChatsManager","AppProfileManager","AppPhotosManager","MtpApiManager","MtpApiFileManager","NotificationsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","ContactsSelectService","ErrorService",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h){
function g(t){f.processUpdateMessage(t),n.$broadcast("history_focus",{peerString:e.chatFull.peerString}),t&&t.updates&&t.updates.length&&r.isChannel(e.chatID)&&o.invalidateChannelParticipants(e.chatID)}function _(t){t&&t.type&&0===t.type.indexOf("image")&&(e.photo.updating=!0,c.uploadFile(t).then(function(t){return l.invokeApi("channels.editPhoto",{channel:r.getChannelInput(e.chatID),photo:{_:"inputChatUploadedPhoto",file:t}}).then(g)})["finally"](function(){e.photo.updating=!1}))}e.chatFull=r.wrapForFull(e.chatID,{}),e.settings={notifications:!0},e.isMegagroup=r.isMegagroup(e.chatID),o.getChannelFull(e.chatID,!0).then(function(t){e.chatFull=r.wrapForFull(e.chatID,t),e.$broadcast("ui_height"),d.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void d.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,d.updatePeerSettings(-e.chatID,n)})})}),e.chatFull.chat&&e.chatFull.chat.pFlags.creator&&e.chatFull.exported_invite&&"chatInviteEmpty"==e.chatFull.exported_invite._&&o.getChatInviteLink(e.chatID,!0).then(function(t){e.chatFull.exported_invite={_:"chatInviteExported",link:t}})}),o.getChannelParticipants(e.chatID).then(function(t){e.participants=r.wrapParticipants(e.chatID,t),e.$broadcast("ui_height")}),e.leaveChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_LEAVE":"CHANNEL_LEAVE"}).then(function(){l.invokeApi("channels.leaveChannel",{channel:r.getChannelInput(e.chatID)}).then(g)})},e.deleteChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_DELETE":"CHANNEL_DELETE"}).then(function(){l.invokeApi("channels.deleteChannel",{channel:r.getChannelInput(e.chatID)}).then(g)})},e.flushHistory=function(){h.confirm({type:"HISTORY_FLUSH"}).then(function(){u.flushHistory(-e.chatID).then(function(){n.$broadcast("history_focus",{peerString:e.chatFull.peerString})})})},e.joinChannel=function(){l.invokeApi("channels.joinChannel",{channel:r.getChannelInput(e.chatID)}).then(g)},e.inviteToChannel=function(){var t=[];angular.forEach((e.chatFull.participants||{}).participants||[],function(e){t.push(e.user_id)}),m.selectContacts({disabled:t}).then(function(t){var n=[];angular.forEach(t,function(e){n.push(a.getUserInput(e))}),l.invokeApi("channels.inviteToChannel",{channel:r.getChannelInput(e.chatID),users:n}).then(g)})},e.kickFromChannel=function(t){l.invokeApi("channels.editBanned",{channel:r.getChannelInput(e.chatID),user_id:a.getUserInput(t),banned_rights:{_:"channelBannedRights",flags:1,until_date:0}}).then(g)},e.shareLink=function(t){var a=n.$new();return a.chatID=e.chatID,i.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:a,windowClass:"md_simple_modal_window"}),cancelEvent(t)},e.photo={},e.$watch("photo.file",_),e.deletePhoto=function(){e.photo.updating=!0,l.invokeApi("channels.editPhoto",{channel:r.getChannelInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(g)["finally"](function(){e.photo.updating=!1})},e.editChannel=function(){var t=n.$new();t.chatID=e.chatID,i.open({templateUrl:templateUrl(e.isMegagroup?"megagroup_edit_modal":"channel_edit_modal"),controller:"ChannelEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.goToHistory=function(){n.$broadcast("history_focus",{peerString:e.chatFull.peerString})},e.hasRights=function(t){return r.hasRights(e.chatID,t)}}]).controller("SettingsModalController",["$rootScope","$scope","$timeout","$modal","AppUsersManager","AppChatsManager","AppPhotosManager","MtpApiManager","Storage","NotificationsManager","MtpApiFileManager","PasswordManager","ApiUpdatesManager","ChangelogNotifyService","LayoutSwitchService","WebPushApiManager","AppRuntimeManager","ErrorService","_",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v){function y(){n.cancel(w),w=!1,u.getState().then(function(e){t.password=e,"account.noPassword"==e._&&e.email_unconfirmed_pattern&&!k&&(w=n(y,5e3))})}function b(e){e&&e.type&&0===e.type.indexOf("image")&&(t.photo.updating=!0,d.uploadFile(e).then(function(e){s.invokeApi("photos.uploadProfilePhoto",{file:e,caption:"",geo_point:{_:"inputGeoPointEmpty"}}).then(function(e){a.saveApiUsers(e.users),s.getUserID().then(function(n){o.savePhoto(e.photo,{user_id:n}),p.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:a.getUser(n).photo,previous:!0}}),t.photo={}})})})["finally"](function(){delete t.photo.updating}))}t.profile={},t.photo={},t.version=Config.App.version,s.getUserID().then(function(e){t.profile=a.getUser(e)}),s.invokeApi("users.getFullUser",{id:{_:"inputUserSelf"}}).then(function(e){a.saveApiUser(e.user),e.profile_photo&&o.savePhoto(e.profile_photo,{user_id:e.user.id})}),t.notify={volume:.5},t.send={},t.$watch("photo.file",b),t.password={_:"account.noPassword"},y();var w=!1,k=!1;t.changePassword=function(n){if(n=n||{},"cancel_email"==n.action)return _.confirm({type:"PASSWORD_ABORT_SETUP"}).then(function(){u.updateSettings(t.password,{email:""}).then(y)});var a=e.$new();a.password=t.password,angular.extend(a,n);var r=i.open({scope:a,templateUrl:templateUrl("password_update_modal"),controller:"PasswordUpdateModalController",windowClass:"md_simple_modal_window mobile_modal"});r.result["finally"](y)},t.showSessions=function(){i.open({templateUrl:templateUrl("sessions_list_modal"),controller:"SessionsListModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.$on("$destroy",function(){n.cancel(w),k=!0}),t.deletePhoto=function(){t.photo.updating=!0,s.invokeApi("photos.updateProfilePhoto",{id:{_:"inputPhotoEmpty"}}).then(function(e){s.getUserID().then(function(n){p.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:e,previous:!0}}),t.photo={}})})["finally"](function(){delete t.photo.updating})},t.editProfile=function(){i.open({templateUrl:templateUrl("profile_edit_modal"),controller:"ProfileEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.changeUsername=function(){i.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.terminateSessions=function(){_.confirm({type:"TERMINATE_SESSIONS"}).then(function(){s.invokeApi("auth.resetAuthorizations",{})})},l.get("notify_nodesktop","send_ctrlenter","notify_volume","notify_novibrate","notify_nopreview","notify_nopush").then(function(i){t.notify.desktop=!i[0],t.send.enter=i[1]?"":"1",t.notify.pushAvailable=h.isAvailable,t.notify.push=!i[5],i[2]!==!1?t.notify.volume=i[2]>0&&i[2]<=1?i[2]:0:t.notify.volume=.5,t.notify.canVibrate=c.getVibrateSupport(),t.notify.vibrate=!i[3],t.notify.preview=!i[4],t.notify.volumeOf4=function(){return 1+Math.ceil((t.notify.volume-.1)/.33)},t.toggleSound=function(){t.notify.volume?t.notify.volume=0:t.notify.volume=.5};var a;t.$watch("notify.volume",function(t,i){t!==i&&(l.set({notify_volume:t}),e.$broadcast("settings_changed"),c.clear(),a&&n.cancel(a),a=n(function(){c.testSound(t)},500))}),t.toggleDesktop=function(){t.notify.desktop=!t.notify.desktop,t.notify.desktop?l.remove("notify_nodesktop"):l.set({notify_nodesktop:!0}),e.$broadcast("settings_changed")},t.togglePush=function(){t.notify.push=!t.notify.push,t.notify.push?l.remove("notify_nopush"):l.set({notify_nopush:!0}),e.$broadcast("settings_changed")},t.togglePreview=function(){t.notify.preview=!t.notify.preview,t.notify.preview?l.remove("notify_nopreview"):l.set({notify_nopreview:!0}),e.$broadcast("settings_changed")},t.toggleVibrate=function(){t.notify.vibrate=!t.notify.vibrate,t.notify.vibrate?l.remove("notify_novibrate"):l.set({notify_novibrate:!0}),e.$broadcast("settings_changed")},t.toggleCtrlEnter=function(n){t.send.enter=n,t.send.enter?l.remove("send_ctrlenter"):l.set({send_ctrlenter:!0}),e.$broadcast("settings_changed")}}),t.openChangelog=function(){f.showChangelog(!1)},t.logOut=function(){_.confirm({type:"LOGOUT"}).then(function(){s.logOut().then(function(){location.hash="/login",g.reload()})})},t.switchBackToDesktop=Config.Mobile&&!Config.Navigator.mobile,t.switchToDesktop=function(){m.switchLayout(!1)}}]).controller("ChangelogModalController",["$scope","$modal",function(e,t){if(e.currentVersion=Config.App.version,!e.lastVersion){var n=e.currentVersion.split(".");e.lastVersion=n[0]+"."+n[1]+"."+Math.max(0,n[2]-1)}e.changelogHidden=!1,e.changelogShown=!1,e.canShowVersion=function(t){if(e.changelogShown)return!0;var n=versionCompare(t,e.lastVersion)>=0;return n||(e.changelogHidden=!0),n},e.showAllVersions=function(){e.changelogShown=!0,e.changelogHidden=!1,e.$emit("ui_height"),e.$broadcast("ui_height")},e.changeUsername=function(){t.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})}}]).controller("ProfileEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,i){e.profile={},e.error={},i.getUserID().then(function(t){var i=n.getUser(t);e.profile={first_name:i.first_name,last_name:i.last_name}}),e.updateProfile=function(){e.profile.updating=!0;var a=3;i.invokeApi("account.updateProfile",{flags:a,first_name:e.profile.first_name||"",last_name:e.profile.last_name||""}).then(function(i){e.error={},n.saveApiUser(i),t.close()},function(n){switch(n.type){case"FIRSTNAME_INVALID":e.error={field:"first_name"},n.handled=!0;break;case"LASTNAME_INVALID":e.error={field:"last_name"},n.handled=!0;break;case"NAME_NOT_MODIFIED":n.handled=!0,t.close()}})["finally"](function(){delete e.profile.updating})}}]).controller("UsernameEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,i){e.profile={},e.error={},i.getUserID().then(function(t){var i=n.getUser(t);e.profile={username:i.username}}),e.updateUsername=function(){e.profile.updating=!0,i.invokeApi("account.updateUsername",{username:e.profile.username||""}).then(function(i){e.checked={},n.saveApiUser(i),t.close()},function(e){switch(e.type){case"USERNAME_NOT_MODIFIED":e.handled=!0,t.close()}})["finally"](function(){delete e.profile.updating})},e.$watch("profile.username",function(t){return t&&t.length?void i.invokeApi("account.checkUsername",{username:t}).then(function(n){e.profile.username===t&&(n?e.checked={success:!0}:e.checked={error:!0})},function(n){if(e.profile.username===t)switch(n.type){case"USERNAME_INVALID":e.checked={error:!0},n.handled=!0}}):void(e.checked={})})}]).controller("SessionsListModalController",["$scope","$q","$timeout","_","MtpApiManager","ErrorService","$modalInstance",function(e,t,n,i,a,r,o){function s(){n.cancel(l),a.invokeApi("account.getAuthorizations").then(function(t){e.sessionsLoaded=!0,e.authorizations=t.authorizations;for(var i,a=0,r=e.authorizations.length;a<r;a++)i=e.authorizations[a],i.current=1==(1&i.flags);e.authorizations.sort(function(e,t){return e.current?-1:t.current?1:t.date_active-e.date_active}),c||(l=n(s,5e3))})}e.slice={limit:20,limitDelta:20};var l=!1,c=!1;e.terminateSession=function(e){r.confirm({type:"TERMINATE_SESSION"}).then(function(){a.invokeApi("account.resetAuthorization",{hash:e}).then(s)})},e.terminateAllSessions=function(){r.confirm({type:"TERMINATE_SESSIONS"}).then(function(){a.invokeApi("auth.resetAuthorizations",{})})},s(),e.$on("apiUpdate",function(e,t){"updateNewAuthorization"==t._&&s()}),e.$on("$destroy",function(){n.cancel(l),c=!0})}]).controller("PasswordUpdateModalController",["$scope","$q","_","PasswordManager","MtpApiManager","ErrorService","$modalInstance",function(e,t,n,i,a,r,o){switch(e.passwordSettings={},e.updatePassword=function(){delete e.passwordSettings.error_field;var a;if("disable"==e.action)a=t.when();else{if(!e.passwordSettings.new_password)return e.passwordSettings.error_field="new_password",e.$broadcast("new_password_focus"),!1;if(e.passwordSettings.new_password!=e.passwordSettings.confirm_password)return e.passwordSettings.error_field="confirm_password",e.$broadcast("confirm_password_focus"),!1;a=e.passwordSettings.email?t.when():r.confirm({type:"RECOVERY_EMAIL_EMPTY"})}e.passwordSettings.loading=!0,a.then(function(){i.updateSettings(e.password,{cur_password:e.passwordSettings.cur_password||"",new_password:e.passwordSettings.new_password,email:e.passwordSettings.email,hint:e.passwordSettings.hint}).then(function(t){delete e.passwordSettings.loading,o.close(!0),"disable"==e.action?r.alert(n("error_modal_password_disabled_title_raw"),n("error_modal_password_disabled_descripion_raw")):r.alert(n("error_modal_password_success_title_raw"),n("error_modal_password_success_descripion_raw"))},function(t){switch(t.type){case"PASSWORD_HASH_INVALID":case"NEW_PASSWORD_BAD":e.passwordSettings.error_field="cur_password",t.handled=!0,e.$broadcast("cur_password_focus");break;case"NEW_PASSWORD_BAD":e.passwordSettings.error_field="new_password",t.handled=!0;break;case"EMAIL_INVALID":e.passwordSettings.error_field="email",t.handled=!0;break;case"EMAIL_UNCONFIRMED":r.alert(n("error_modal_email_unconfirmed_title_raw"),n("error_modal_email_unconfirmed_descripion_raw")),o.close(!0),t.handled=!0}delete e.passwordSettings.loading})})},e.action){case"disable":e.passwordSettings.new_password="";break;case"create":onContentLoaded(function(){e.$broadcast("new_password_focus")})}e.$watch("passwordSettings.new_password",function(t){var n=t&&t.length||0;n?n<=3?e.passwordSettings.hint="***":e.passwordSettings.hint=t.charAt(0)+new Array(n-1).join("*")+t.charAt(n-1):e.passwordSettings.hint="",e.$broadcast("value_updated")})}]).controller("PasswordRecoveryModalController",["$scope","$q","_","PasswordManager","MtpApiManager","ErrorService","$modalInstance",function(e,t,n,i,a,r,o){e.checkCode=function(){e.recovery.updating=!0,i.recover(e.recovery.code,e.options).then(function(e){r.alert(n("error_modal_password_disabled_title_raw"),n("error_modal_password_disabled_descripion_raw")),o.close(e)},function(t){switch(delete e.recovery.updating,t.type){case"CODE_EMPTY":case"CODE_INVALID":e.recovery.error_field="code",t.handled=!0;break;case"PASSWORD_EMPTY":case"PASSWORD_RECOVERY_NA":case"PASSWORD_RECOVERY_EXPIRED":o.dismiss(),t.handled=!0}})}}]).controller("ContactsModalController",["$scope","$rootScope","$timeout","$modal","$modalInstance","MtpApiManager","AppPeersManager","AppUsersManager","ErrorService",function(e,t,n,i,a,r,o,s,l){function c(){e.selectedContacts={},e.selectedCount=0}function d(t){var i=++p,a=[];s.getContacts(t).then(function(n){i==p&&(e.contacts=[],e.slice.limit=20,angular.forEach(n,function(t){var n={userID:t,user:s.getUser(t)};a.push(t),e.contacts.push(n)}),e.contactsEmpty=!t&&!e.contacts.length,e.$broadcast("contacts_change"))}),t&&t.length>=2&&n(function(){i==p&&r.invokeApi("contacts.search",{q:t,limit:10}).then(function(t){if(s.saveApiUsers(t.users),i==p){var n=t.my_results.length,r=t.my_results.concat(t.results);angular.forEach(r,function(t,i){var r=o.getPeerID(t);r<=0||a.indexOf(r)!=-1||e.contacts.push({userID:r,user:s.getUser(r),peerString:s.getUserString(r),found:i>=n})})}},function(e){400==e.code&&(e.handled=!0)})},500)}e.contacts=[],e.foundPeers=[],e.search={},e.slice={limit:20,limitDelta:20};var u,p=0;if(c(),e.disabledContacts={},e.disabled)for(u=0;u<e.disabled.length;u++)e.disabledContacts[e.disabled[u]]=!0;if(e.selected)for(u=0;u<e.selected.length;u++)e.selectedContacts[e.selected[u]]||(e.selectedContacts[e.selected[u]]=!0,e.selectedCount++);e.$watch("search.query",d),e.$on("contacts_update",function(){d(e.search&&e.search.query||"")}),e.toggleEdit=function(t){e.action=t?"edit":"",e.multiSelect=t,c()},e.contactSelect=function(t){return!e.disabledContacts[t]&&(e.multiSelect?void(e.selectedContacts[t]?(delete e.selectedContacts[t],e.selectedCount--):(e.selectedContacts[t]=!0,e.selectedCount++)):a.close(t))},e.submitSelected=function(){if(e.selectedCount>0){var t=[];return angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),a.close(t)}},e.deleteSelected=function(){if(e.selectedCount>0){var t=[];angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),s.deleteContacts(t).then(function(){e.toggleEdit(!1)})}},e.importContact=function(){s.openImportContact().then(function(e){e&&t.$broadcast("history_focus",{peerString:s.getUserString(e)})})}}]).controller("PeerSelectController",["$scope","$modalInstance","$q","AppPeersManager","ErrorService",function(e,t,n,i,a){e.selectedPeers={},e.selectedPeerIDs=[],e.selectedCount=0,e.shareLinkPromise&&(e.shareLink={loading:!0},e.shareLinkPromise.then(function(t){e.shareLink={url:t}},function(){delete e.shareLink})),e.dialogMultiSelect=function(t,n){var a=i.getPeerID(t);if(e.multiSelect=void 0==e.selectedPeers[a]||void 0!=e.selectedPeers[a]&&Object.keys(e.selectedPeers).length>1,e.selectedPeers[a]){delete e.selectedPeers[a],e.selectedCount--;var r=e.selectedPeerIDs.indexOf(a);r>=0&&e.selectedPeerIDs.splice(r,1)}else e.selectedPeers[a]=i.getPeer(a),e.selectedCount++,e.selectedPeerIDs.unshift(a);cancelEvent(n)},e.isSelected=function(t){var n=i.getPeerID(t);return void 0!=e.selectedPeers[n]},e.dialogSelect=function(r){var o;if(!e.multiSelect){var s;if(e.confirm_type){o=i.getPeerID(r);var l=i.getPeer(o);s=a.confirm({type:e.confirm_type,peer_id:o,peer_data:l})}else s=n.when();return void s.then(function(){t.close(r)})}if(o=i.getPeerID(r),e.selectedPeers[o]){delete e.selectedPeers[o],e.selectedCount--;var c=e.selectedPeerIDs.indexOf(o);c>=0&&e.selectedPeerIDs.splice(c,1)}else e.selectedPeers[o]=i.getPeer(o),e.selectedCount++,e.selectedPeerIDs.unshift(o)},e.submitSelected=function(){if(e.selectedCount>0){var n=[];return angular.forEach(e.selectedPeers,function(e,t){n.push(i.getPeerString(t))}),t.close(n)}},e.toggleSearch=function(){e.$broadcast("dialogs_search_toggle")}}]).controller("ChatCreateModalController",["$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","ApiUpdatesManager",function(e,t,n,i,a,r,o){e.group={name:""},e.createGroup=function(){if(e.group.name){e.group.creating=!0;var s=[];return angular.forEach(e.userIDs,function(e){s.push(a.getUserInput(e))}),i.invokeApi("messages.createChat",{title:e.group.name,users:s}).then(function(e){if(o.processUpdateMessage(e),e.updates&&e.updates.length){for(var i,a=0,s=e.updates.length;a<s;a++)if(i=e.updates[a],"updateNewMessage"==i._){n.$broadcast("history_focus",{peerString:r.getChatString(i.message.to_id.chat_id)});break}t.close()}})["finally"](function(){delete e.group.creating})}}}]).controller("ChatEditModalController",["$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","ApiUpdatesManager",function(e,t,n,i,a,r,o){var s=r.getChat(e.chatID);e.group={name:s.title},e.updateGroup=function(){if(e.group.name){if(e.group.name==s.title)return t.close();e.group.updating=!0;var a;return a=r.isChannel(e.chatID)?i.invokeApi("channels.editTitle",{channel:r.getChannelInput(e.chatID),title:e.group.name}):i.invokeApi("messages.editChatTitle",{chat_id:r.getChatInput(e.chatID),title:e.group.name}),a.then(function(t){o.processUpdateMessage(t);var i=r.getChatString(e.chatID);n.$broadcast("history_focus",{peerString:i})})["finally"](function(){delete e.group.updating})}}}]).controller("ChannelEditModalController",["$q","$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","AppProfileManager","ApiUpdatesManager",function(e,t,n,i,a,r,o,s,l){function c(){return a.invokeApi("channels.editTitle",{channel:o.getChannelInput(t.chatID),title:t.channel.title}).then(function(e){l.processUpdateMessage(e)})}function d(){return a.invokeApi("channels.editAbout",{channel:o.getChannelInput(t.chatID),about:t.channel.about})}var u=o.getChat(t.chatID),p={title:u.title};t.channel={title:u.title},s.getChannelFull(t.chatID).then(function(e){p.about=e.about,t.channel.about=e.about}),t.updateChannel=function(){if(t.channel.title.length){var n=[];return t.channel.title!=p.title&&n.push(c()),t.channel.about!=p.about&&n.push(d()),t.channel.updating=!0,e.all(n).then(function(){var e=o.getChatString(t.chatID);i.$broadcast("history_focus",{peerString:e})})["finally"](function(){delete t.channel.updating})}}}]).controller("ChatInviteLinkModalController",["_","$scope","$timeout","$modalInstance","AppChatsManager","AppProfileManager","ErrorService",function(e,t,n,i,a,r,o){function s(){n(function(){t.$broadcast("ui_invite_select")},100)}function l(e){var n=a.getChat(t.chatID);return n.username?(t.exportedInvite={link:"https://t.me/"+n.username,"short":!0},void s()):(e&&(t.exportedInvite.revoking=!0),void r.getChatInviteLink(t.chatID,e).then(function(e){t.exportedInvite={link:e,canRevoke:!0},s()})["finally"](function(){delete t.exportedInvite.revoking}))}t.exportedInvite={link:e("group_invite_link_loading_raw")};var c=a.isChannel(t.chatID),d=a.isMegagroup(t.chatID);t.revokeLink=function(){o.confirm({type:c&&!d?"REVOKE_CHANNEL_INVITE_LINK":"REVOKE_GROUP_INVITE_LINK"}).then(function(){l(!0)})},l()}]).controller("ImportContactModalController",["$scope","$modalInstance","$rootScope","AppUsersManager","ErrorService","PhonebookContactsService",function(e,t,n,i,a,r){void 0===e.importContact&&(e.importContact={}),e.phonebookAvailable=r.isAvailable(),e.doImport=function(){e.importContact&&e.importContact.phone&&(e.progress={enabled:!0},i.importContact(e.importContact.phone,e.importContact.first_name||"",e.importContact.last_name||"").then(function(e){e||a.show({error:{code:404,type:"USER_NOT_USING_TELEGRAM"}}),t.close(e)})["finally"](function(){delete e.progress.enabled}))},e.importPhonebook=function(){r.openPhonebookImport().result.then(function(e){e?t.close(e[0]):t.dismiss()})}}]).controller("CountrySelectModalController",["$scope","$modalInstance","$rootScope","_",function(e,t,n,i){e.search={},e.slice={limit:20,limitDelta:20};for(var a=SearchIndexManager.createIndex(),r=0;r<Config.CountryCodes.length;r++){var o=Config.CountryCodes[r][0];o+=" "+i(Config.CountryCodes[r][1]+"_raw"),o+=" "+Config.CountryCodes[r].slice(2).join(" "),SearchIndexManager.indexObject(r,o,a)}e.$watch("search.query",function(t){var n=!1,r={};angular.isString(t)&&t.length&&(n=!0,r=SearchIndexManager.search(t,a)),e.countries=[],e.slice.limit=20;for(var o,s=0;s<Config.CountryCodes.length;s++)if(!n||r[s])for(o=2;o<Config.CountryCodes[s].length;o++)e.countries.push({name:i(Config.CountryCodes[s][1]+"_raw"),code:Config.CountryCodes[s][o]});String.prototype.localeCompare&&e.countries.sort(function(e,t){return e.name.localeCompare(t.name)})})}]).controller("PhonebookModalController",["$scope","$modalInstance","$rootScope","AppUsersManager","PhonebookContactsService","ErrorService",function(e,t,n,i,a,r){function o(){var t=!1,n={};if(angular.isString(e.search.query)&&e.search.query.length){t=!0,n=SearchIndexManager.search(e.search.query,s),e.contacts=[],delete e.contactsEmpty;for(var i=0;i<e.phonebook.length;i++)t&&!n[i]||e.contacts.push(e.phonebook[i])}else e.contacts=e.phonebook,e.contactsEmpty=!e.contacts.length;e.slice.limit=20}e.search={},e.phonebook=[],e.selectedContacts={},e.selectedCount=0,e.slice={limit:20,limitDelta:20},e.progress={enabled:!1},e.multiSelect=!0;var s=SearchIndexManager.createIndex(),l=!1;a.getPhonebookContacts().then(function(t){for(var n=0;n<t.length;n++)SearchIndexManager.indexObject(n,t[n].first_name+" "+t[n].last_name+" "+t[n].phones.join(" "),s);e.phonebook=t,e.toggleSelection(!0),l=!0,o()},function(e){r.show({error:{code:403,type:"PHONEBOOK_GET_CONTACTS_FAILED",originalError:e}})}),e.$watch("search.query",function(e){l&&o()}),e.contactSelect=function(n){return e.multiSelect?void(e.selectedContacts[n]?(delete e.selectedContacts[n],e.selectedCount--):(e.selectedContacts[n]=!0,e.selectedCount++)):t.close(e.phonebook[n])},e.toggleSelection=function(t){if(!e.selectedCount||t){e.selectedCount=e.phonebook.length;for(var n=0;n<e.phonebook.length;n++)e.selectedContacts[n]=!0}else e.selectedCount=0,e.selectedContacts={}},e.submitSelected=function(){e.selectedCount<=0&&t.dismiss();var n=[];angular.forEach(e.selectedContacts,function(t,i){n.push(e.phonebook[i])}),r.confirm({type:"CONTACTS_IMPORT_PERFORM"}).then(function(){e.progress.enabled=!0,i.importContacts(n).then(function(e){e.length||r.show({error:{code:404,type:"USERS_NOT_USING_TELEGRAM"}}),t.close(e)})["finally"](function(){e.progress.enabled=!1})})}}]).controller("StickersetModalController",["$scope","$rootScope","$modalInstance","MtpApiManager","RichTextProcessor","AppStickersManager","AppDocsManager","AppMessagesManager","LocationParamsService",function(e,t,n,i,a,r,o,s,l){e.slice={limit:20,limitDelta:20};var c;r.getStickerset(e.inputStickerset).then(function(t){e.$broadcast("ui_height"),e.stickersetLoaded=!0,c=t,e.stickerset=t.set,e.stickersetInstalled=1==t.set.pFlags.installed,e.documents=t.documents,e.stickerEmojis={},e.stickerDimensions={},angular.forEach(e.documents,function(t){e.stickerEmojis[t.id]=a.wrapRichText(t.stickerEmojiRaw,{noLinks:!0,noLinebreaks:!0,emojiIconSize:26});var n=calcImageInBox(t.w,t.h,192,192);e.stickerDimensions[t.id]={width:n.w,height:n.h}})}),e.toggleInstalled=function(t){r.installStickerset(c,!t).then(function(){e.stickersetInstalled=t})},e.chooseSticker=function(e){var i=o.getDoc(e);if(i.id&&i.access_hash&&t.selectedPeerID){var a={_:"inputMediaDocument",id:{_:"inputDocument",id:i.id,access_hash:i.access_hash}};s.sendOther(t.selectedPeerID,a),n.close(i.id)}},e.share=function(){l.shareUrl("https://t.me/addstickers/"+e.stickerset.short_name,e.stickerset.title)}}]),angular.module("myApp.filters",["myApp.i18n"]).filter("userName",["_",function(e){return function(t){return t&&(t.first_name||t.last_name)?t.first_name?t.first_name+(t.last_name?" "+t.last_name:""):t.last_name:e("user_name_deleted")}}]).filter("userFirstName",["_",function(e){return function(t){return t&&(t.first_name||t.last_name)?t.first_name||t.last_name:e("user_first_name_deleted")}}]).filter("userStatus",["$filter","_",function(e,t){var n=e("relativeTime");return function(e,i){if(e&&!(e.id%1e3))return t(777e3===e.id?"user_status_service_notifications":"user_status_support");var a=e&&e.status&&e.status._;switch(a||(a=e&&e.pFlags&&e.pFlags.bot?"userStatusBot":"userStatusEmpty"),a){case"userStatusOnline":return t("user_status_online");case"userStatusOffline":return t("user_status_last_seen",n(e.status.was_online));case"userStatusRecently":return t("user_status_recently");case"userStatusLastWeek":return t("user_status_last_week");case"userStatusLastMonth":return t("user_status_last_month");case"userStatusBot":return t(i?e.pFlags.bot_chat_history?"user_status_bot_noprivacy":"user_status_bot_privacy":"user_status_bot");case"userStatusEmpty":default:return t("user_status_long_ago")}}}]).filter("chatTitle",["_",function(e){return function(t){return t&&t.title?t.title:e("chat_title_deleted")}}]).filter("dateOrTime",["$filter",function(e){var t=e("date");return function(e,n){if(!e)return"";var i=1e3*e,a=Math.abs(tsNow()-i),r="shortTime";return a>5184e5?r=n?"mediumDate":"shortDate":a>432e5&&(r=n?"EEEE":"EEE"),t(i,r)}}]).filter("time",["$filter",function(e){var t={},n=e("date"),i=Config.Mobile?"shortTime":"mediumTime";return function(e){return t[e]?t[e]:t[e]=n(1e3*e,i)}}]).filter("myDate",["$filter",function(e){var t={},n=e("date");return function(e){return t[e]?t[e]:t[e]=n(1e3*e,"fullDate")}}]).filter("duration",[function(){return function(e){e=parseInt(e),isNaN(e)&&(e=0);var t=Math.floor(e/3600),n=Math.floor(e%3600/60),i=e%60,a=(t?t+":":"")+n+":"+i;return a=a.replace(/:(\d(?::|$))/g,":0$1")}}]).filter("durationRemains",["$filter",function(e){var t=e("duration");return function(e,n){return"-"+t(n-e)}}]).filter("phoneNumber",[function(){return function(e){var t=" ";return e=(e||"").replace(/\D/g,""),"7"===e.charAt(0)&&11===e.length?"+"+e.charAt(0)+t+"("+e.substr(1,3)+")"+t+e.substr(4,3)+"-"+e.substr(7,2)+"-"+e.substr(9,2):"+"+e}}]).filter("formatSize",[function(){return function(e,t){if(!e)return"0";if(e<1024)return e+" b";if(e<1048576)return Math.round(e/1024)+" KB";var n=e/1048576;return n=t?n.toFixed(1):Math.round(10*n)/10,n+" MB"}}]).filter("formatSizeProgress",["$filter","_",function(e,t){var n=e("formatSize");return function(e){if(!e.total)return"";var i=n(e.done,!0),a=i.split(" "),r=n(e.total),o=r.split(" ");return o[1]===a[1]?t("format_size_progress_mulitple",{done:a[0],total:o[0],parts:a[1]}):t("format_size_progress",{done:i,total:r})}}]).filter("formatShortNumber",[function(){return function(e){var t;return e?e<1e3?e.toString():e<9e5?(t=e>1e4?1:10,Math.round(e/1e3*t)/t+"K"):(t=e>1e7?1:10,Math.round(e/1e6*t)/t+"M"):"0"}}]).filter("nl2br",[function(){return function(e){return e.replace(/\n/g,"<br/>")}}]).filter("shortUrl",[function(){return function(e){return"string"!=typeof e?e:e.replace(/^https?:\/\//,"").replace(/^www\./,"")}}]).filter("richText",["$filter",function(e){var t=e("linky");return function(e){return t(e,"_blank").replace(/\n|&#10;/g,"<br/>")}}]).filter("relativeTime",["$filter","_",function(e,t){var n=t.pluralize("relative_time_pluralize_minutes_ago"),i=t.pluralize("relative_time_pluralize_hours_ago"),a=e("dateOrTime");return function(e){var r=Math.abs(tsNow(!0)-e);if(r<60)return t("relative_time_just_now");if(r<3600){var o=Math.floor(r/60);return n(o)}if(r<86400){var s=Math.floor(r/3600);return i(s)}return a(e,!0)}}]),angular.module("myApp.services").service("AppMessagesManager",["$q","$rootScope","$location","$filter","$timeout","$sce","ApiUpdatesManager","AppUsersManager","AppChatsManager","AppPeersManager","AppPhotosManager","AppDocsManager","AppStickersManager","AppMessagesIDsManager","DraftsManager","AppWebPagesManager","AppGamesManager","MtpApiManager","MtpApiFileManager","ServerTimeManager","RichTextProcessor","NotificationsManager","Storage","AppProfileManager","TelegramMeWebService","ErrorService","StatusManager","_",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h,g,_,v,y,b,w,k,M,S,A,C,T){function E(t,n,i){var a=Le,r=angular.isString(t)&&t.length;if(r){if(!i||We.query!==t){We.query=t;var o=SearchIndexManager.search(t,ze);We.dialogs=[],angular.forEach(Le.dialogs,function(e){o[e.peerID]&&We.dialogs.push(e)}),We.count=We.dialogs.length}a=We}else We.query=!1;var s=0;if(n>0)for(s=0;s<a.dialogs.length&&!(n>a.dialogs[s].index);s++);return i=i||20,r||at||a.dialogs.length>=s+i?e.when({dialogs:a.dialogs.slice(s,s+i)}):P(i).then(function(){if(s=0,n>0)for(s=0;s<a.dialogs.length&&!(n>a.dialogs[s].index);s++);return{dialogs:a.dialogs.slice(s,s+i)}})}function $(t){var n=I(t);return n.length?e.when(n[0]):e.when({peerID:t,top_message:0,index:R(D()),pFlags:{}})}function I(e){for(var t=0;t<Le.dialogs.length;t++)if(Le.dialogs[t].peerID==e)return[Le.dialogs[t],t];return[]}function x(e){var n=c.getPeerID(e.peer);if(!n)return!1;var i=c.isChannel(n)?-n:0,a=c.getPeerSearchText(n);SearchIndexManager.indexObject(n,a,ze);c.isMegagroup(i);if(e.top_message)var r=f.getFullMessageID(e.top_message,i),d=z(r);else{var r=Ve--,d={_:"message",id:r,mid:r,from_id:s.getSelf().id,to_id:c.getOutputPeer(n),deleted:!0,flags:0,pFlags:{unread:!1,out:!0},date:0,message:""};ne([d])}var u=d.date;if(!i&&n<0){var p=l.getChat(-n);if(p&&p.migrated_to&&p.pFlags.deactivated){var h=c.getPeerID(p.migrated_to);return lt[n]=h,void(ct[h]=n)}}e.top_message=r,e.read_inbox_max_id=f.getFullMessageID(e.read_inbox_max_id,i),e.read_outbox_max_id=f.getFullMessageID(e.read_outbox_max_id,i);var g=d.date;if(i){var _=l.getChat(i);(!g||_.date&&_.date>g)&&(g=_.date)}var v=m.saveDraft(n,e.draft);v&&v.date>g&&(g=v.date),e.pFlags.pinned&&(g=D()),e.index=R(g),e.peerID=n,O(e,u);var y=d.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";if(d.mid&&d.mid>e[y]&&(d.pFlags.unread=!0),void 0===Ne[n]&&!d.deleted){var b={count:null,history:[],pending:[]};b[r>0?"history":"pending"].push(r),r<0&&d.pFlags.unread&&e.unread_count++,Ne[n]=b,V(b,d)&&t.$broadcast("history_reply_markup",{peerID:n})}if(w.savePeerSettings(n,e.notify_settings),i&&e.pts&&o.addChannelState(i,e.pts),Config.Modes.packed&&!i&&e.unread_count>0&&et&&e.top_message>et&&d.pFlags.unread&&!d.pFlags.out){var k=16&d.flags?d.from_id:n;w.getPeerMuted(k).then(function(e){
e||Ce(d)})}}function P(e){var n=Le.dialogs,i=0,r=0,o=0,d=0,u=0;return rt&&(i=rt+y.serverTimeOffset,d=65536*rt,u|=1),_.invokeApi("messages.getDialogs",{flags:u,offset_date:i,offset_id:f.getMessageLocalID(r),offset_peer:c.getInputPeerByID(o),limit:e},{timeout:300}).then(function(e){i||S.setAuthorized(!0),s.saveApiUsers(e.users),l.saveApiChats(e.chats),ne(e.messages);var r=!!i,o=!1;e.dialogs.reverse(),angular.forEach(e.dialogs,function(e){x(e),d&&e.index>d&&(ft[e.peerID]=e,o=!0),r||c.isChannel(c.getPeerID(e.peer))||(Ae(e.top_message),r=!0)}),e.dialogs.reverse(),(!e.dialogs.length||!e.count||n.length>=e.count)&&(at=!0),o&&!pt?pt=a(Ee,0):t.$broadcast("dialogs_multiupdate",{})})}function D(){return 2147483392+(255&ot++)}function R(e){return void 0===e&&(e=tsNow(!0)+y.serverTimeOffset),65536*e+(65535&++st)}function O(e,t){var n=Le.dialogs,i=I(e.peerID)[1];if(void 0!==i&&n.splice(i,1),t&&!e.pFlags.pinned&&(!rt||t<rt)){if(void 0!==i)return!1;rt=t}var a,r=e.index,o=n.length;if(!o||r<n[o-1].index)n.push(e);else if(r>=n[0].index)n.unshift(e);else for(a=0;a<o;a++)if(r>n[a].index){n.splice(a,0,e);break}}function N(t,n,i,a){var r=c.isChannel(t);r&&c.isMegagroup(t);return _.invokeApi("messages.getHistory",{peer:c.getInputPeerByID(t),offset_id:n?f.getMessageLocalID(n):0,add_offset:a||0,limit:i||0},{timeout:300,noErrorBox:!0}).then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),ne(e.messages),r&&o.addChannelState(-t,e.pts);var n=e.messages.length;return n&&e.messages[n-1].deleted&&(e.messages.splice(n-1,1),n--,e.count--),t<0||!s.isBot(t)||n==i&&i<e.count?e:M.getProfile(t).then(function(n){var i=n.bot_info&&n.bot_info.description;if(i){var a=Ve--,r={_:"messageService",id:a,from_id:t,to_id:c.getOutputPeer(t),flags:0,pFlags:{},date:tsNow(!0)+y.serverTimeOffset,action:{_:"messageActionBotIntro",description:i}};ne([r]),e.messages.push(r),e.count&&e.count++}return e})},function(n){switch(n.type){case"CHANNEL_PRIVATE":var i=l.getChat(-t);i={_:"channelForbidden",access_hash:i.access_hash,title:i.title},o.processUpdateMessage({_:"updates",updates:[{_:"updateChannel",channel_id:-t}],chats:[i],users:[]})}return e.reject(n)})}function L(e,n,i,a){var r=lt[e]&&!n?1:0;return N(e,n,i,r).then(function(r){a.count=r.count||r.messages.length;var o=0;if(!n&&r.messages.length&&(n=r.messages[0].mid+1),n>0)for(o=0;o<a.history.length&&!(n>a.history[o]);o++);var s=a.history.length;a.history.splice(o,a.history.length-o),angular.forEach(r.messages,function(n){V(a,n)&&t.$broadcast("history_reply_markup",{peerID:e}),a.history.push(n.mid)});var l=a.history.length;i-=l-s;var c=lt[e],d=ct[e],u=void 0!==c||void 0!==d;if(u&&(a.count=Math.max(a.count,l)+1),i>0){if(n=a.history[l-1],u){if(!r.messages.length){if(!d)return a.count=l,!0;n=0,e=d}return L(e,n,i,a)}if(l<a.count)return L(e,n,i,a)}return!0})}function F(t,n){var i=n.unreadOffset;if(i){var a,r;for(a=n.history.length-1;a>=0;a--)if(r=De[n.history[a]],r&&!r.pFlags.out&&r.pFlags.unread){n.unreadOffset=a+1;break}}return e.when(n)}function U(e,n){if(!lt[e]&&!ct[n]&&l.hasChat(-n)){var i=l.getChat(-e);i&&i.migrated_to&&i.migrated_to.channel_id==-n&&(lt[e]=n,ct[n]=e,a(function(){var i=I(e);i.length&&(Le.dialogs.splice(i[1],1),t.$broadcast("dialog_drop",{peerID:e})),t.$broadcast("dialog_migrate",{migrateFrom:e,migrateTo:n})},100))}}function B(e){if(lt[e])return lt[e]}function H(e,t,n,i,a){lt[e]&&(e=lt[e]);var r=Ne[e],o=0,s=!1,l=!1,c=!1;a=a?Math.min(50,a):0,void 0===r&&(r=Ne[e]={count:null,history:[],pending:[]}),t<0&&(t=0);var d=!1,u=e;if(ct[e]&&(d=!0,t&&t<f.fullMsgIDModulus&&(u=ct[e])),!n&&!t){var p=I(e)[0];if(p&&p.unread_count>1){var m=p.unread_count;(c=m>50)?p.read_inbox_max_id?(t=p.read_inbox_max_id,i=16,l=16,n=4):(n=20,l=16,o=m-l):(n=Math.max(10,a,m+2),l=m)}else Config.Mobile&&(n=20)}if(t>0)for(s=!0,o=0;o<r.history.length;o++)if(t>r.history[o]){s=!1;break}if(!s&&(null!==r.count&&r.history.length==r.count||r.history.length>=o+(n||1))){i?(i=Math.min(o,i),o=Math.max(0,o-i),n+=i):n=n||(o?20:a||5);var h=r.history.slice(o,o+n);return!t&&r.pending.length&&(h=r.pending.slice().concat(h)),F(e,{count:r.count,history:h,unreadOffset:l,unreadSkip:c})}return i||n||(n=a||20),s&&(o=0),i||c||t&&r.history.indexOf(t)==-1?(i&&(o=-i,n+=i),N(u,t,n,o).then(function(n){r.count=n.count||n.messages.length,d&&r.count++;var i=[];return angular.forEach(n.messages,function(e){i.push(e.mid)}),!t&&r.pending.length&&(i=r.pending.slice().concat(i)),F(e,{count:r.count,history:i,unreadOffset:l,unreadSkip:c})})):L(e,t,n,r).then(function(){if(o=0,t>0)for(o=0;o<r.history.length&&!(t>r.history[o]);o++);var i=r.history.slice(o,o+n);return!t&&r.pending.length&&(i=r.pending.slice().concat(i)),F(e,{count:r.count,history:i,unreadOffset:l,unreadSkip:c})})}function j(e){return(Ne[e]||{}).reply_markup||!1}function V(e,t){if(!t.reply_markup&&!t.pFlags.out&&!t.action)return!1;if(t.reply_markup&&"replyInlineMarkup"==t.reply_markup._)return!1;var n=t.reply_markup,i=e.reply_markup;if(n)return!(i&&i.mid>=t.mid)&&(!(n.pFlags.selective&&!(16&t.flags))&&(e.maxOutID&&t.mid<e.maxOutID&&n.pFlags.single_use&&(n.pFlags.hidden=!0),n=angular.extend({mid:t.mid},n),"replyKeyboardHide"!=n._&&(n.fromID=t.from_id),e.reply_markup=n,!0));if(t.pFlags.out)if(i){if(i.pFlags.single_use&&!i.pFlags.hidden&&(t.mid>i.mid||t.mid<0)&&t.message)return i.pFlags.hidden=!0,!0}else(!e.maxOutID||t.mid>e.maxOutID)&&(e.maxOutID=t.mid);return!(!t.action||"messageActionChatDeleteUser"!=t.action._||(i?t.action.user_id!=i.fromID:!s.isBot(t.action.user_id)))&&(e.reply_markup={_:"replyKeyboardHide",mid:t.mid,flags:0,pFlags:{}},!0)}function q(t,n,i,a,r){t=t?parseInt(t):0;var o=[],d=!n,u={peer:t,filter:i},p=d&&angular.equals(Ge,u);if(d&&!p&&(Ge=u,Ke=[]),t&&!a&&!n){var m=Ne[t];if(void 0!==m&&m.history.length){var h,g,v,b={},w=r||20;switch(i._){case"inputMessagesFilterPhotos":b.messageMediaPhoto=!0;break;case"inputMessagesFilterPhotoVideo":b.messageMediaPhoto=!0,b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterVideo":b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterDocument":b.messageMediaDocument=!0,h=!1;break;case"inputMessagesFilterVoice":b.messageMediaDocument=!0,h="voice";break;case"inputMessagesFilterRoundVideo":b.messageMediaDocument=!0,h="round";break;case"inputMessagesFilterMusic":b.messageMediaDocument=!0,h="audio";break;case"inputMessagesFilterUrl":b.url=!0;break;case"inputMessagesFilterMyMentions":b.mentioned=!0;break;default:return e.when({count:0,history:[]})}for(g=0;g<m.history.length;g++)if(v=De[m.history[g]],v.media&&b[v.media._]){if(void 0!==h&&"messageMediaDocument"==v.media._&&v.media.document.type!=h)continue;if(o.push(v.mid),o.length>=w)break}}if(o.length<w&&Ke.length&&p)for(var k=!!o.length&&o[o.length-1],g=0;g<Ke.length&&!((k===!1||Ke[g]<k)&&(o.push(Ke[g]),o.length>=w));g++);}if(o.length||1e3==r)return d&&(Ke=listMergeSorted(Ke,o)),e.when({count:null,history:o});var M;if(t||!n)M=_.invokeApi("messages.search",{flags:0,peer:c.getInputPeerByID(t),q:n||"",filter:i||{_:"inputMessagesFilterEmpty"},min_date:0,max_date:0,limit:r||20,offset_id:f.getMessageLocalID(a)||0,add_offset:0,max_id:0,min_id:0},{timeout:300,noErrorBox:!0});else{var S=0,A=0,C=0,T=a&&z(a);T&&T.date&&(S=T.date+y.serverTimeOffset,C=T.id,A=me(T)),M=_.invokeApi("messages.searchGlobal",{q:n,offset_date:S,offset_peer:c.getInputPeerByID(A),offset_id:f.getMessageLocalID(C),limit:r||20},{timeout:300,noErrorBox:!0})}return M.then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),ne(e.messages);var t=e.count||e.messages.length;return o=[],angular.forEach(e.messages,function(e){var t=me(e);if(t<0){var n=l.getChat(-t);n.migrated_to&&U(t,-n.migrated_to.channel_id)}o.push(e.mid)}),d&&(!a||p&&Ke.indexOf(a)>=0)&&(Ke=listMergeSorted(Ke,o)),{count:t,history:o}},function(t){return 400==t.code&&(t.handled=!0),e.reject(t)})}function z(e){return De[e]||{_:"messageEmpty",deleted:!0,pFlags:{out:!1,unread:!1}}}function W(e){var t=["messageMediaPhoto","messageMediaDocument","messageMediaWebPage","messageMediaPending"];return!("message"!=e._||e.deleted||e.fwd_from||e.via_bot_id||e.media&&t.indexOf(e.media._)==-1||e.fromID&&s.isBot(e.fromID))&&(!e.media||"messageMediaDocument"!=e.media._||!e.media.document.sticker)}function G(e){if(!De[e])return!1;var t=De[e];return!(!t||!t.canBeEdited)&&(me(t)==s.getSelf().id||!(t.date<tsNow(!0)-172800||!t.pFlags.out))}function K(t){if(!G(t))return e.reject();var n=z(t);if(n.media&&"messageMediaEmpty"!=n.media._&&"messageMediaWebPage"!=n.media._)return e.when({caption:!0,text:"string"==typeof n.media.caption?n.media.caption:""});var i="string"==typeof n.message?n.message:"",a=b.parseEntities(i),r=n.entities||[];return a=b.mergeEntities(a,r),i=b.wrapDraftText(i,{entities:a}),e.when({caption:!1,text:i})}function Y(e){if(e<=0||!De[e])return!1;var t=De[e];if("message"!=t._||t.deleted)return!1;var n=me(t);if(n<0&&!l.isChannel(-n)){var i=l.getChat(-n);if(i.pFlags.creator||i.pFlags.admins_enabled&&i.pFlags.admin)return!0}return!(!t.pFlags.out||t.date<tsNow(!0)-172800)}function X(t,n){var i=f.splitMessageIDsByChannels(t),a=[];return angular.forEach(i.msgIDs,function(e,t){var r;if(t>0){var s=l.getChat(t);if(!(s.pFlags.creator||s.pFlags.editor&&s.pFlags.megagroup)){var c=[];if((s.pFlags.editor||s.pFlags.megagroup)&&angular.forEach(e,function(e,n){var a=z(i.mids[t][n]);a.pFlags.out&&c.push(e)}),!c.length)return;e=c}r=_.invokeApi("channels.deleteMessages",{channel:l.getChannelInput(t),id:e}).then(function(n){o.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteChannelMessages",channel_id:t,messages:e,pts:n.pts,pts_count:n.pts_count}})})}else{var d=0;n&&(d|=1),r=_.invokeApi("messages.deleteMessages",{flags:d,id:e}).then(function(t){o.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:e,pts:t.pts,pts_count:t.pts_count}})})}a.push(r)}),e.all(a)}function J(t){var n=f.getMessageIDInfo(t),i=n[0],a=n[1];if(!a)return e.reject();var r=z(t),o=l.getChat(a);return r&&r.pFlags&&r.pFlags.post&&o.username?_.invokeApi("channels.exportMessageLink",{channel:l.getChannelInput(a),id:i}).then(function(e){return e.link}):e.reject()}function Z(e){var n=c.isChannel(e),i=Ne[e],a=I(e)[0];if(!a||!a.unread_count){if(!i||!i.history.length)return!1;var r,s,d=!1;for(p=i.history.length;p>=0;p--)if(r=i.history[p],s=De[r],s&&!s.pFlags.out&&s.pFlags.unread){d=!0;break}if(!d)return!1}if(i.readPromise)return i.readPromise;var u;if(u=n?_.invokeApi("channels.readHistory",{channel:l.getChannelInput(-e),max_id:0}):_.invokeApi("messages.readHistory",{peer:c.getInputPeerByID(e),max_id:0}).then(function(e){o.processUpdateMessage({_:"updateShort",update:{_:"updatePts",pts:e.pts,pts_count:e.pts_count}})}),i.readPromise=u.then(function(){a&&(a.unread_count=0,t.$broadcast("dialog_unread",{peerID:e,count:0}),t.$broadcast("messages_read"),i&&i.history.length&&(a.read_inbox_max_id=i.history[0]))})["finally"](function(){delete i.readPromise}),i&&i.history.length){var r,s,p,e,a;for(p=0;p<i.history.length;p++)r=i.history[p],s=De[r],s&&!s.pFlags.out&&(s.pFlags.unread=!1,Re[r]&&(Re[r].pFlags.unread=!1),Oe[r]&&(Oe[r].pFlags.unread=!1),w.cancel("msg"+r))}return w.soundReset(c.getPeerString(e)),i.readPromise}function Q(e){var t=f.splitMessageIDsByChannels(e);angular.forEach(t.msgIDs,function(e,t){t>0?_.invokeApi("channels.readMessageContents",{channel:l.getChannelInput(t),id:e}).then(function(){o.processUpdateMessage({_:"updateShort",update:{_:"updateChannelReadMessagesContents",channel_id:t,messages:e}})}):_.invokeApi("messages.readMessageContents",{id:e}).then(function(t){o.processUpdateMessage({_:"updateShort",update:{_:"updateReadMessagesContents",messages:e,pts:t.pts,pts_count:t.pts_count}})})})}function ee(e,t){var n=0;return t&&(n|=1),_.invokeApi("messages.deleteHistory",{flags:n,peer:e,max_id:0}).then(function(n){return o.processUpdateMessage({_:"updateShort",update:{_:"updatePts",pts:n.pts,pts_count:n.pts_count}}),!n.offset||ee(e,t)})}function te(e,n){return c.isChannel(e)?H(e,!1,1).then(function(t){var n=-e,i=f.getMessageLocalID(t.history[0]||0);return _.invokeApi("channels.deleteHistory",{channel:l.getChannelInput(n),max_id:i}).then(function(){return o.processUpdateMessage({_:"updateShort",update:{_:"updateChannelAvailableMessages",channel_id:n,available_min_id:i}}),!0})}):ee(c.getInputPeerByID(e),n).then(function(){if(n)t.$broadcast("dialog_flush",{peerID:e});else{var i=I(e);i[0]&&Le.dialogs.splice(i[1],1),delete Ne[e],t.$broadcast("dialog_drop",{peerID:e})}})}function ne(e,t){t=t||{},angular.forEach(e,function(e){if(void 0===e.pFlags&&(e.pFlags={}),e.pFlags.out||(e.pFlags.out=!1),e.pFlags.unread||(e.pFlags.unread=!1),"messageEmpty"!=e._){var n=me(e),i="peerChannel"==e.to_id._,a=i?-n:0,r=i&&l.isBroadcast(a),o=f.getFullMessageID(e.id,a);e.mid=o;var p=I(n)[0];if(p&&o>0){var m=e.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";e.pFlags.unread=o>p[m]}else t.isNew&&(e.pFlags.unread=!0);e.reply_to_msg_id&&(e.reply_to_mid=f.getFullMessageID(e.reply_to_msg_id,a)),e.date-=y.serverTimeOffset,e.peerID=n,e.fromID=e.pFlags.post?n:e.from_id;var _=e.fwd_from;if(_){if(n==s.getSelf().id){if(_.saved_from_peer&&_.saved_from_msg_id){var v=c.getPeerID(_.saved_from_peer),w=f.getFullMessageID(_.saved_from_msg_id,c.isChannel(v)?-v:0);e.savedFrom=v+"_"+w}e.fromID=_.channel_id?-_.channel_id:_.from_id}else e.fwdFromID=_.channel_id?-_.channel_id:_.from_id,e.fwdPostID=_.channel_post;_.date-=y.serverTimeOffset}e.via_bot_id>0&&(e.viaBotID=e.via_bot_id);var k={user_id:e.fromID,date:e.date};if(e.media)switch(e.media._){case"messageMediaEmpty":delete e.media;break;case"messageMediaPhoto":e.media.ttl_seconds?e.media={_:"messageMediaUnsupportedWeb"}:d.savePhoto(e.media.photo,k);break;case"messageMediaDocument":e.media.ttl_seconds?e.media={_:"messageMediaUnsupportedWeb"}:u.saveDoc(e.media.document,k);break;case"messageMediaWebPage":h.saveWebPage(e.media.webpage,e.mid,k);break;case"messageMediaGame":g.saveGame(e.media.game,e.mid,k),e.media.handleMessage=!0;break;case"messageMediaInvoice":e.media={_:"messageMediaUnsupportedWeb"};break;case"messageMediaGeoLive":e.media._="messageMediaGeo"}if(e.action){var M,S;switch(e.action._){case"messageActionChatEditPhoto":d.savePhoto(e.action.photo,k),r&&(e.action._="messageActionChannelEditPhoto");break;case"messageActionChatEditTitle":r&&(e.action._="messageActionChannelEditTitle");break;case"messageActionChatDeletePhoto":r&&(e.action._="messageActionChannelDeletePhoto");break;case"messageActionChatAddUser":1==e.action.users.length?(e.action.user_id=e.action.users[0],e.fromID==e.action.user_id&&(i?e.action._="messageActionChatJoined":e.action._="messageActionChatReturn")):e.action.users.length>1&&(e.action._="messageActionChatAddUsers");break;case"messageActionChatDeleteUser":e.fromID==e.action.user_id&&(e.action._="messageActionChatLeave");break;case"messageActionChannelMigrateFrom":M=-e.action.chat_id,S=-a;break;case"messageActionChatMigrateTo":M=-a,S=-e.action.channel_id;break;case"messageActionHistoryClear":e.deleted=!0,e.clear_history=!0,e.pFlags.out=!1,e.pFlags.unread=!1;break;case"messageActionPhoneCall":delete e.fromID,e.action.type=(e.pFlags.out?"out_":"in_")+("phoneCallDiscardReasonMissed"==e.action.reason._||"phoneCallDiscardReasonBusy"==e.action.reason._?"missed":"ok")}M&&S&&!lt[M]&&!ct[S]&&U(M,S)}if(e.message&&e.message.length){var A=b.parseEntities(e.message),C=e.entities||[];e.totalEntities=b.mergeEntities(A,C,!e.pending)}e.canBeEdited=W(e),t.isEdited||(De[o]=e)}})}function ie(e,n,i){if(angular.isString(n)){e=c.getPeerMigratedTo(e)||e,i=i||{};var a=i.entities||[];if(i.viaBotID||(n=b.parseMarkdown(n,a)),n.length){var r,l=pe(a),d=Ve--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),h=Ne[e],g=0,v={},w=i.replyToMsgID,k=c.isChannel(e),M=k&&c.isMegagroup(e),S=!(!k||M);void 0===h&&(h=Ne[e]={count:null,history:[],pending:[]});var A=s.getSelf().id;e!=A&&(g|=2,v.out=!0,k||s.isBot(e)||(g|=1,v.unread=!0)),w&&(g|=8),S?(A=0,v.post=!0):g|=256,r={_:"message",id:d,from_id:A,to_id:c.getOutputPeer(e),flags:g,pFlags:v,date:tsNow(!0)+y.serverTimeOffset,message:n,random_id:p,reply_to_msg_id:w,via_bot_id:i.viaBotID,reply_markup:i.reply_markup,entities:a,views:S&&1,pending:!0};var C=function(e){var n=Re[d];e?(r.error=!0,n&&(n.error=!0)):(delete r.error,n&&delete n.error),t.$broadcast("messages_pending")};r.send=function(){C(!1);var t={};Be[e]&&(t.afterMessageID=Be[e].messageID);var a=0;w&&(a|=1),S&&(a|=16),i.clearDraft&&(a|=128);var s;i.viaBotID?s=_.invokeApi("messages.sendInlineBotResult",{flags:a,peer:c.getInputPeerByID(e),random_id:u,reply_to_msg_id:f.getMessageLocalID(w),query_id:i.queryID,id:i.resultID},t):(l.length&&(a|=8),s=_.invokeApi("messages.sendMessage",{flags:a,peer:c.getInputPeerByID(e),message:n,random_id:u,reply_to_msg_id:f.getMessageLocalID(w),entities:l},t)),s.then(function(e){"updateShortSentMessage"==e._?(r.flags=e.flags,r.date=e.date,r.id=e.id,r.media=e.media,r.entities=e.entities,e={_:"updates",users:[],chats:[],seq:0,updates:[{_:"updateMessageID",random_id:p,id:e.id},{_:k?"updateNewChannelMessage":"updateNewMessage",message:r,pts:e.pts,pts_count:e.pts_count}]}):e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),o.processUpdateMessage(e)},function(e){C(!0)})["finally"](function(){Be[e]===t&&delete Be[e]}),Be[e]=t},ne([r]),h.pending.unshift(d),t.$broadcast("history_append",{peerID:e,messageID:d,my:!0}),setZeroTimeout(r.send),i.clearDraft&&m.clearDraft(e),Fe[p]=[e,d]}}}function ae(n,i,a){n=c.getPeerMigratedTo(n)||n,a=a||{};var r,l,d=Ve--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),m=Ne[n],h=0,g={},b=a.replyToMsgID,w=c.isChannel(n),k=w&&c.isMegagroup(n),M=!(!w||k);a.isMedia?["image/jpeg","image/png","image/bmp"].indexOf(i.type)>=0?(r="photo",l="photo."+i.type.split("/")[1]):"audio/"==i.type.substr(0,6)||["video/ogg"].indexOf(i.type)>=0?(r="audio",l="audio."+("ogg"==i.type.split("/")[1]?"ogg":"mp3")):"video/"==i.type.substr(0,6)?(r="video",l="video.mp4"):(r="document",l="document."+i.type.split("/")[1]):(r="document",l="document."+i.type.split("/")[1]),void 0===m&&(m=Ne[n]={count:null,history:[],pending:[]});var S=s.getSelf().id;n!=S&&(h|=2,g.out=!0,w||s.isBot(n)||(h|=1,g.unread=!0)),b&&(h|=8),M?(S=0,g.post=!0):h|=256;var A,C={_:"messageMediaPending",type:r,file_name:i.name||l,size:i.size,progress:{percent:1,total:i.size}},T={_:"message",id:d,from_id:S,to_id:c.getOutputPeer(n),flags:h,pFlags:g,date:tsNow(!0)+y.serverTimeOffset,message:"",media:C,random_id:p,reply_to_msg_id:b,views:M&&1,pending:!0},E=function(e){var n=Re[d];e?(T.error=!0,n&&(n.error=!0)):(delete T.error,n&&delete n.error),t.$broadcast("messages_pending")},$=!1;T.send=function(){var a=e.defer();je.then(function(){$&&!T.error||($=!1,A=v.uploadFile(i)),A.then(function(e){e.name=l,$=!0;var t;switch(r){case"photo":t={_:"inputMediaUploadedPhoto",flags:0,file:e};break;case"document":default:t={_:"inputMediaUploadedDocument",file:e,mime_type:i.type,caption:"",attributes:[{_:"documentAttributeFilename",file_name:i.name}]}}var a=0;b&&(a|=1),M&&(a|=16),_.invokeApi("messages.sendMedia",{flags:a,peer:c.getInputPeerByID(n),media:t,random_id:u,reply_to_msg_id:f.getMessageLocalID(b)}).then(function(e){o.processUpdateMessage(e)},function(e){return"photo"!=r||400!=e.code||"PHOTO_INVALID_DIMENSIONS"!=e.type&&"PHOTO_SAVE_FILE_INVALID"!=e.type?void E(!0):(e.handled=!0,r="document",void T.send())})},function(e){E(!0)},function(e){C.progress.done=e.done,C.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update",{peerID:n})}),C.progress.cancel=function(){$||(a.resolve(),A.cancel(),ce(p))},A["finally"](function(){a.resolve()})}),je=a.promise},ne([T]),m.pending.unshift(d),t.$broadcast("history_append",{peerID:n,messageID:d,my:!0}),setZeroTimeout(T.send),Fe[p]=[n,d]}function re(e,n,i){e=c.getPeerMigratedTo(e)||e,i=i||{};var a=Ve--,r=[nextRandomInt(4294967295),nextRandomInt(4294967295)],l=bigint(r[0]).shiftLeft(32).add(bigint(r[1])).toString(),h=Ne[e],g=i.replyToMsgID,v=c.isChannel(e),b=v&&c.isMegagroup(e),w=!(!v||b);void 0===h&&(h=Ne[e]={count:null,history:[],pending:[]});var k,M=s.getSelf().id;switch(n._){case"inputMediaPhoto":k={_:"messageMediaPhoto",photo:d.getPhoto(n.id.id),caption:n.caption||""};break;case"inputMediaDocument":var S=u.getDoc(n.id.id);S.sticker&&S.stickerSetInput&&p.pushPopularSticker(S.id),k={_:"messageMediaDocument",document:S,caption:n.caption||""};break;case"inputMediaContact":k={_:"messageMediaContact",phone_number:n.phone_number,first_name:n.first_name,last_name:n.last_name,user_id:0};break;case"inputMediaGeoPoint":k={_:"messageMediaGeo",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]}};break;case"inputMediaVenue":k={_:"messageMediaVenue",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]},title:n.title,address:n.address,provider:n.provider,venue_id:n.venue_id};break;case"messageMediaPending":k=n}var A=0,C={};e!=M&&(A|=2,C.out=!0,s.isBot(e)||(A|=1,C.unread=!0)),g&&(A|=8),w?(M=0,C.post=!0):A|=256;var T={_:"message",id:a,from_id:M,to_id:c.getOutputPeer(e),flags:A,pFlags:C,date:tsNow(!0)+y.serverTimeOffset,message:"",media:k,random_id:l,reply_to_msg_id:g,via_bot_id:i.viaBotID,reply_markup:i.reply_markup,views:w&&1,pending:!0},E=function(e){var n=Re[a];e?(T.error=!0,n&&(n.error=!0)):(delete T.error,n&&delete n.error),t.$broadcast("messages_pending")};T.send=function(){var t=0;g&&(t|=1),w&&(t|=16),i.clearDraft&&(t|=128);var a={};Be[e]&&(a.afterMessageID=Be[e].messageID);var s;s=i.viaBotID?_.invokeApi("messages.sendInlineBotResult",{flags:t,peer:c.getInputPeerByID(e),random_id:r,reply_to_msg_id:f.getMessageLocalID(g),query_id:i.queryID,id:i.resultID},a):_.invokeApi("messages.sendMedia",{flags:t,peer:c.getInputPeerByID(e),media:n,random_id:r,reply_to_msg_id:f.getMessageLocalID(g)},a),s.then(function(e){e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),o.processUpdateMessage(e)},function(e){E(!0)})["finally"](function(){Be[e]===a&&delete Be[e]}),Be[e]=a},ne([T]),h.pending.unshift(a),t.$broadcast("history_append",{peerID:e,messageID:a,my:!0}),setZeroTimeout(T.send),i.clearDraft&&m.clearDraft(e),Fe[l]=[e,a]}function oe(t,n,i){t=c.getPeerMigratedTo(t)||t,n=n.sort(),i=i||{};var a=0,r=c.isChannel(t),s=r&&c.isMegagroup(t),l=!(!r||s);l&&(a|=16),i.withMyScore&&(a|=256);var d=f.splitMessageIDsByChannels(n),u=[];return angular.forEach(d.msgIDs,function(e,n){for(var i=e.length,r=[],s=0;s<i;s++)r.push([nextRandomInt(4294967295),nextRandomInt(4294967295)]);var l={};Be[t]&&(l.afterMessageID=Be[t].messageID);var d=_.invokeApi("messages.forwardMessages",{flags:a,from_peer:c.getInputPeerByID(-n),id:e,random_id:r,to_peer:c.getInputPeerByID(t)},l).then(function(e){o.processUpdateMessage(e)})["finally"](function(){Be[t]===l&&delete Be[t]});Be[t]=l,u.push(d)}),e.all(u)}function se(e,t,n){var i=t?-t:e;if(n){var a=bigint(nextRandomInt(4294967295)).shiftLeft(32).add(bigint(nextRandomInt(4294967295))).toString();return _.invokeApi("messages.startBot",{bot:s.getUserInput(e),peer:c.getInputPeerByID(i),random_id:a,start_param:n}).then(function(e){o.processUpdateMessage(e)})}return t?l.isChannel(t)?_.invokeApi("channels.inviteToChannel",{channel:l.getChannelInput(t),users:[s.getUserInput(e)]}).then(function(e){o.processUpdateMessage(e),ie(i,"/start@"+bot.username)},function(t){if(t&&"USER_ALREADY_PARTICIPANT"==t.type){var n=s.getUser(e);ie(i,"/start@"+n.username),t.handled=!0}}):_.invokeApi("messages.addChatUser",{chat_id:l.getChatInput(t),user_id:s.getUserInput(e)}).then(function(e){o.processUpdateMessage(e),ie(i,"/start@"+bot.username)},function(t){if(t&&"USER_ALREADY_PARTICIPANT"==t.type){var n=s.getUser(e);ie(i,"/start@"+n.username),t.handled=!0}}):ie(i,"/start")}function le(e,t,n){var i=bigint(nextRandomInt(4294967295)).shiftLeft(32).add(bigint(nextRandomInt(4294967295))).toString();return _.invokeApi("messages.sendMedia",{flags:0,peer:c.getInputPeerByID(t),media:{_:"inputMediaGame",id:n},random_id:i}).then(function(e){o.processUpdateMessage(e)})}function ce(e){var t=Fe[e];if(console.log("pending",e,t),t){var n=t[0],i=t[1],a=Ne[n],r=a.pending.indexOf(i);return o.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:[i]}}),r!=-1&&a.pending.splice(r,1),delete Re[i],delete De[i],!0}return!1}function de(e,n){var i=Fe[e];if(i){var a,r,o=i[0],s=i[1],l=Ne[o],c=l.pending.indexOf(s);return c!=-1&&l.pending.splice(c,1),(a=De[s])&&(delete a.pending,delete a.error,delete a.random_id,delete a.send),(r=Re[s])&&(Re[n.mid]=angular.extend(r,ve(n.mid)),delete r.pending,delete r.error,delete r.random_id,delete r.send,t.$broadcast("messages_pending")),delete Re[s],delete De[s],ue(s,n.mid),a}return!1}function ue(e,t){var n=qe[e];console.warn(dT(),n,e),void 0!==n&&(angular.forEach(n,function(e){e(t)}),delete qe[e])}function pe(e){var t=angular.copy(e);return angular.forEach(t,function(e){"messageEntityMentionName"==e._&&(e._="inputMessageEntityMentionName",e.user_id=s.getUserInput(e.user_id))}),t}function fe(t,n){if(!angular.isString(n)||!G(t))return e.reject();if(t<0){void 0===qe[t]&&(qe[t]={});var i=e.defer();return qe[t].edit=function(e){console.log("invoke callback",e),fe(e,n).then(function(e){i.resolve(e)},function(e){i.reject(e)})},i.promise}var a=[];n=b.parseMarkdown(n,a);var r=z(t),s=me(r),l=2056;return _.invokeApi("messages.editMessage",{flags:l,peer:c.getInputPeerByID(s),id:f.getMessageLocalID(t),message:n,entities:pe(a)}).then(function(e){o.processUpdateMessage(e)},function(t){return t&&"MESSAGE_NOT_MODIFIED"==t.type?void(t.handled=!0):(t&&"MESSAGE_EMPTY"==t.type&&(t.handled=!0),e.reject(t))})}function me(e){var t=e.to_id&&c.getPeerID(e.to_id)||0;return t<0?t:e.pFlags&&e.pFlags.out||2&e.flags?t:e.from_id}function he(e,t){var n=e&&void 0!==t,i=t&&t.unread_count;if(n&&void 0!==Oe[e])return delete Oe[e].typing,Oe[e].unreadCount=i,Oe[e];var a=angular.copy(De[e]);if(!a||!a.to_id){if(!t||!t.peerID)return a;a={_:"message",to_id:c.getOutputPeer(t.peerID),deleted:!0,date:tsNow(!0),pFlags:{out:!0}}}return a.peerID=me(a),a.peerData=c.getPeer(a.peerID),a.peerString=c.getPeerString(a.peerID),a.unreadCount=i,a.index=t&&t.index||65536*a.date,a.pinned=t&&t.pFlags.pinned||!1,"messageService"==a._&&a.action.user_id&&(a.action.user=s.getUser(a.action.user_id)),a.message&&a.message.length&&(a.richMessage=b.wrapRichText(a.message.substr(0,128),{noLinks:!0,noLinebreaks:!0})),a.dateText=tt(a.date),n&&(a.draft=m.getServerDraft(a.peerID),Oe[e]=a),a}function ge(e){return De[e]?he(e):(Ye.indexOf(e)==-1&&(Ye.push(e),Xe===!1&&(Xe=setTimeout(we,100))),{mid:e,loading:!0})}function _e(e){delete Oe[e]}function ve(e){if(void 0!==Re[e])return Re[e];var t=angular.copy(De[e])||{id:e};t.media&&void 0!==t.media.progress&&(t.media.progress=De[e].media.progress);var n=t.from_id&&s.getUser(t.from_id),i=n&&n.pFlags.bot&&n.username||!1,a=i||t.to_id&&(t.to_id.chat_id||t.to_id.user_id&&s.isBot(t.to_id.user_id));if(t.media)switch(t.media.caption&&t.media.caption.length&&(t.media.rCaption=b.wrapRichText(t.media.caption,{noCommands:!a,fromBot:i})),t.media._){case"messageMediaPhoto":t.media.photo=d.wrapForHistory(t.media.photo.id);break;case"messageMediaDocument":t.media.document=u.wrapForHistory(t.media.document.id);break;case"messageMediaGeo":var o="https://maps.google.com/?q="+t.media.geo.lat+","+t.media.geo["long"];t.media.mapUrl=r.trustAsResourceUrl(o);break;case"messageMediaVenue":var o;o="foursquare"==t.media.provider&&t.media.venue_id?"https://foursquare.com/v/"+encodeURIComponent(t.media.venue_id):"https://maps.google.com/?q="+t.media.geo.lat+","+t.media.geo["long"],t.media.mapUrl=r.trustAsResourceUrl(o);break;case"messageMediaContact":t.media.rFullName=b.wrapRichText(t.media.first_name+" "+(t.media.last_name||""),{noLinks:!0,noLinebreaks:!0});break;case"messageMediaWebPage":if(!t.media.webpage||"webPageEmpty"==t.media.webpage._){delete t.media;break}t.media.webpage=h.wrapForHistory(t.media.webpage.id);break;case"messageMediaGame":t.media.game=g.wrapForHistory(t.media.game.id)}else if(t.action)switch(t.action._){case"messageActionChatEditPhoto":case"messageActionChannelEditPhoto":t.action.photo=d.wrapForHistory(t.action.photo.id);break;case"messageActionChatCreate":case"messageActionChatEditTitle":case"messageActionChannelCreate":case"messageActionChannelEditTitle":t.action.rTitle=b.wrapRichText(t.action.title,{noLinebreaks:!0})||T("chat_title_deleted");break;case"messageActionBotIntro":t.action.rDescription=b.wrapRichText(t.action.description,{noCommands:!a,fromBot:i})}return Re[e]=t}function ye(e,t){if(!e||"replyKeyboardHide"==e._)return!1;if(e.wrapped)return e;var n="replyInlineMarkup"==e._,i=e.rows&&e.rows.length||0;return!(!n&&i>0&&i<=4)||e.pFlags&&e.pFlags.resize||(e.splitCount=i),e.wrapped=!0,angular.forEach(e.rows,function(e){angular.forEach(e.buttons,function(e){if(e.rText=b.wrapRichText(e.text,{noLinks:!0,noLinebreaks:!0}),"keyboardButtonUrl"==e._){var n=s.getUser(t),i=!(n&&n.pFlags&&n.pFlags.verified);e.pUrl=b.wrapUrl(e.url,i)}})}),e}function be(e){var t=z(e),n=t.from_id&&s.getUser(t.from_id),i=n&&n.pFlags.bot&&n.username||!1,a=c.getPeerID(t.to_id),r=i||c.isBot(a)||c.isAnyGroup(a),o={noCommands:!r,fromBot:i,entities:t.totalEntities};if(t.pFlags.mentioned){var l=s.getSelf();l&&(o.highlightUsername=l.username)}return b.wrapRichText(t.message,o)}function we(){if(Xe!==!1&&(clearTimeout(Xe),Xe=!1),Ye.length){var e=Ye.slice();Ye=[];var n=f.splitMessageIDsByChannels(e);angular.forEach(n.msgIDs,function(e,i){var a;a=i>0?_.invokeApi("channels.getMessages",{channel:l.getChannelInput(i),id:e}):_.invokeApi("messages.getMessages",{id:e}),a.then(function(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),ne(e.messages),t.$broadcast("messages_downloaded",n.mids[i])})})}}function ke(){if(Qe!==!1&&(clearTimeout(Qe),Qe=!1),Ze.length){var e=Ze.slice();Ze=[];var t=f.splitMessageIDsByChannels(e);angular.forEach(t.msgIDs,function(e,n){_.invokeApi("messages.getMessagesViews",{peer:c.getInputPeerByID(-n),id:e,increment:!0}).then(function(e){if(n){for(var i=t.mids[n],a=[],r=0;r<i.length;r++)a.push({_:"updateChannelMessageViews",channel_id:n,id:i[r],views:e[r]});o.processUpdateMessage({_:"updates",updates:a,chats:[],users:[]})}})})}}function Me(e,t){if(!e||!e.length)return!1;var n,i,a,r,o,s,l,d=0,u=e.length,p=u,f=!1,m=!Config.Mobile;for(t>0?p=Math.min(t,u):t<0&&(d=Math.max(0,p+t)),n=d;n<p;n++)if(e[n].deleted)e.splice(n,1),p--;else{if(r=e[n],i=Math.floor((r.date+y.midnightOffset)/86400),l=o&&o.grouped,s=r.grouped,i===a?r.needDate&&(delete r.needDate,f=!0):n&&!o||r.needDate||(r.needDate=!0,f=!0),r.fwdFromID&&r.media&&r.media.document&&(r.media.document.sticker||r.media.document.audioTitle)&&(r.fromID!=(o||{}).fromID||!(o||{}).fwdFromID)&&(delete r.fwdFromID,r._="message"),r.views&&!Je[r.mid]&&(Je[r.mid]=!0,Ze.push(r.mid),Qe===!1&&(Qe=setTimeout(ke,1e4))),(!c.isBroadcast(me(r))||r.fwdFromID)&&o&&o.fromID==r.fromID&&!o.fwdFromID==!r.fwdFromID&&o.viaBotID==r.viaBotID&&!o.action&&!r.action&&r.date<o.date+900){var h=r.message&&r.message.length<70&&r.message.indexOf("\n")==-1&&!r.reply_to_mid;m&&r.fwdFromID&&r.fwdFromID==o.fwdFromID&&r.viaBotID==o.viaBotID?r.grouped=h?"im_grouped_fwd_short":"im_grouped_fwd":r.grouped=!r.fwdFromID&&h?"im_grouped_short":"im_grouped",m&&r.fwdFromID&&(o.grouped||(o.grouped="im_grouped_fwd_start"),r.grouped&&n==u-1&&(r.grouped+=" im_grouped_fwd_end"))}else!o&&n||(delete r.grouped,m&&o&&o.grouped&&o.fwdFromID&&(o.grouped+=" im_grouped_fwd_end"));f||l==(o&&o.grouped)||(f=!0),o=r,a=i}return f||s==(o&&o.grouped)||(f=!0),f}function Se(e,t,n){var i,a=!1;if(e.media)switch(e.media._){case"messageMediaPhoto":i=d.choosePhotoSize(e.media.photo,t,n);break;case"messageMediaDocument":i=e.media.document.thumb,e.media.document.sticker&&(a=!0)}if(i&&"photoSizeEmpty"!=i._){var r=calcImageInBox(i.w,i.h,t,n,!0),o={width:r.w,height:r.h,location:i.location,size:i.size};return a&&(o.location.sticker=!0),o}return!1}function Ae(e){return!(!e||et&&!(e>et))&&(k.set({max_seen_msg:e
}),void _.invokeApi("messages.receivedMessages",{max_id:e}))}function Ce(e,n){n=n||{};var i,a,r=me(e),o={},c=!1,d=w.getNotifySettings();if(e.fwdFromID&&n.fwd_count)c=nt(n.fwd_count);else if(e.message)c=d.nopreview?T("conversation_message_sent"):b.wrapPlainText(e.message);else if(e.media){var u=!1;switch(e.media._){case"messageMediaPhoto":c=T("conversation_media_photo_raw"),u="🖼";break;case"messageMediaDocument":switch(e.media.document.type){case"gif":c=T("conversation_media_gif_raw"),u="🎬";break;case"sticker":c=T("conversation_media_sticker");var p=e.media.document.stickerEmojiRaw;void 0!==p&&(c=b.wrapPlainText(p)+" "+c);break;case"video":c=T("conversation_media_video_raw"),u="📹";break;case"round":c=T("conversation_media_round_raw"),u="📹";break;case"voice":case"audio":c=T("conversation_media_audio_raw");break;default:e.media.document.file_name?c=b.wrapPlainText("📎 "+e.media.document.file_name):(c=T("conversation_media_document_raw"),u="📎")}break;case"messageMediaGeo":case"messageMediaVenue":c=T("conversation_media_location_raw"),u="📍";break;case"messageMediaContact":c=T("conversation_media_contact_raw");break;case"messageMediaGame":c=b.wrapPlainText("🎮 "+e.media.game.title);break;case"messageMediaUnsupported":c=T("conversation_media_unsupported_raw");break;default:c=T("conversation_media_attachment_raw")}u!==!1&&e.media.caption&&(c=b.wrapPlainText(u+" "+e.media.caption))}else if("messageService"==e._)switch(e.action._){case"messageActionChatCreate":c=T("conversation_group_created_raw");break;case"messageActionChatEditTitle":c=T("conversation_group_renamed_raw");break;case"messageActionChatEditPhoto":c=T("conversation_group_photo_updated_raw");break;case"messageActionChatDeletePhoto":c=T("conversation_group_photo_removed_raw");break;case"messageActionChatAddUser":case"messageActionChatAddUsers":c=T("conversation_invited_user_message_raw");break;case"messageActionChatReturn":c=T("conversation_returned_to_group_raw");break;case"messageActionChatJoined":c=T("conversation_joined_group_raw");break;case"messageActionChatDeleteUser":c=T("conversation_kicked_user_message_raw");break;case"messageActionChatLeave":c=T("conversation_left_group_raw");break;case"messageActionChatJoinedByLink":c=T("conversation_joined_by_link_raw");break;case"messageActionChannelCreate":c=T("conversation_created_channel_raw");break;case"messageActionChannelEditTitle":c=T("conversation_changed_channel_name_raw");break;case"messageActionChannelEditPhoto":c=T("conversation_changed_channel_photo_raw");break;case"messageActionChannelDeletePhoto":c=T("conversation_removed_channel_photo_raw");break;case"messageActionPinMessage":c=T("conversation_pinned_message_raw");break;case"messageActionGameScore":c=it(e.action.score);break;case"messageActionPhoneCall":switch(e.action.type){case"out_missed":c=T("message_service_phonecall_canceled_raw");break;case"in_missed":c=T("message_service_phonecall_missed_raw");break;case"out_ok":c=T("message_service_phonecall_outgoing_raw");break;case"in_ok":c=T("message_service_phonecall_incoming_raw")}}if(r>0){var f=s.getUser(e.from_id),m=s.getUserPhoto(e.from_id);o.title=(f.first_name||"")+(f.first_name&&f.last_name?" ":"")+(f.last_name||""),o.title||(o.title=f.phone||T("conversation_unknown_user_raw")),a=m,i=s.getUserString(r)}else{if(o.title=l.getChat(-r).title||T("conversation_unknown_chat_raw"),e.from_id>0){var f=s.getUser(e.from_id);o.title=(f.first_name||f.last_name||T("conversation_unknown_user_raw"))+" @ "+o.title}a=l.getChatPhoto(-r),i=l.getChatString(-r)}o.title=b.wrapPlainText(o.title),o.onclick=function(){t.$broadcast("history_focus",{peerString:i,messageID:16&e.flags?e.mid:0})},o.message=c,o.key="msg"+e.mid,o.tag=i,o.silent=e.pFlags.silent||!1,a.location&&!a.location.empty?v.downloadSmallFile(a.location,a.size).then(function(t){e.pFlags.unread&&(o.image=t,w.notify(o))}):w.notify(o)}function Te(){a.cancel(dt),dt=!1,t.$broadcast("history_multiappend",ut),ut={}}function Ee(){a.cancel(pt),pt=!1;var e=0;angular.forEach(ft,function(t,n){t.reload?(xe(n),delete ft[n]):(O(t),c.isChannel(n)||(e=Math.max(e,t.top_message||0)))}),e!==!1&&Ae(e),t.$broadcast("dialogs_multiupdate",ft),ft={}}function $e(){a.cancel(mt),mt=!1;var e=t.idle.isIDLE&&C.isOtherDeviceActive()?3e4:1e3;angular.forEach(ht,function(t){t.isMutedPromise.then(function(n){var i=t.top_message;!n&&i.pFlags.unread&&setTimeout(function(){i.pFlags.unread&&Ce(i,{fwd_count:t.fwd_count})},e)})}),ht={}}function Ie(e){switch(e._){case"updateMessageID":var n=e.random_id,i=Fe[n];if(i){var r=i[0],o=i[1],d=c.isChannel(r)?-r:0,u=f.getFullMessageID(e.id,d),p=De[u];if(p){var m=Ne[r],h=m.pending.indexOf(o);h!=-1&&m.pending.splice(h,1),delete Re[o],delete De[o];var g={};g[o]=!0,t.$broadcast("history_delete",{peerID:r,msgs:g}),ue(o,finalMessage.mid)}else Ue[u]=n}break;case"updateNewMessage":case"updateNewChannelMessage":var p=e.message,r=me(p),m=Ne[r],v=I(r);if(!v.length){ft[r]={reload:!0},pt||(pt=a(Ee,0)),void 0===gt[r]&&(gt[r]=[]),gt[r].push(e);break}if("updateNewChannelMessage"==e._){var b=l.getChat(-r);if(b.pFlags&&(b.pFlags.left||b.pFlags.kicked))break}ne([p],{isNew:!0}),void 0===m&&(m=Ne[r]={count:null,history:[],pending:[]});var k=p.mid>0?m.history:m.pending;if(k.indexOf(p.mid)!=-1)return!1;var M=k[0];k.unshift(p.mid),p.mid>0&&p.mid<M&&k.sort(function(e,t){return t-e}),p.mid>0&&null!==m.count&&m.count++,V(m,p)&&t.$broadcast("history_reply_markup",{peerID:r}),!p.pFlags.out&&p.from_id&&s.forceUserOnline(p.from_id);var S,n=Ue[p.mid];n&&((S=de(n,p))&&t.$broadcast("history_update",{peerID:r}),delete Ue[p.mid]),S||(void 0===ut[r]&&(ut[r]=[]),ut[r].push(p.mid),dt||(dt=a(Te,0)));var C=!p.pFlags.out&&p.pFlags.unread,T=v[0];if(T.top_message=p.mid,C&&T.unread_count++,T.pFlags.pinned&&T.index||(T.index=R(p.date)),ft[r]=T,pt||(pt=a(Ee,0)),C&&(t.selectedPeerID!=r||t.idle.isIDLE)){var E=16&p.flags?p.from_id:r,$=ht[E];void 0===$&&($=ht[E]={isMutedPromise:w.getPeerMuted(E),fwd_count:0,from_id:0}),$.from_id!=p.from_id&&($.from_id=p.from_id,$.fwd_count=0),p.fwdFromID&&$.fwd_count++,$.top_message=p,mt||(mt=a($e,1e3))}break;case"updateDialogPinned":var r=c.getPeerID(e.peer),v=I(r);if(!v.length||!e.pFlags.pinned){ft[r]={reload:!0},pt||(pt=a(Ee,0));break}var T=v[0];T.index=R(D()),T.pFlags.pinned=!0;break;case"updatePinnedDialogs":var x={};if(!e.order){_.invokeApi("messages.getPinnedDialogs",{}).then(function(e){e.dialogs.reverse(),Pe(e),angular.forEach(e.dialogs,function(e){x[e.peerID]=!0}),angular.forEach(Le.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!x[t]&&(ft[t]={reload:!0},pt||(pt=a(Ee,0)))})});break}e.order.reverse(),angular.forEach(e.order,function(e){var t=c.getPeerID(e);x[t]=!0;var n=I(t);if(!n.length)return ft[t]={reload:!0},void(pt||(pt=a(Ee,0)));var i=n[0];i.index=R(D()),i.pFlags.pinned=!0,ft[t]=i,pt||(pt=a(Ee,0))}),angular.forEach(Le.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!x[t]&&(ft[t]={reload:!0},pt||(pt=a(Ee,0)))});break;case"updateEditMessage":case"updateEditChannelMessage":var p=e.message,r=me(p),d="peerChannel"==p.to_id._?-r:0,u=f.getFullMessageID(p.id,d);if(void 0===De[u])break;ne([p],{isEdited:!0}),safeReplaceObject(De[u],p);var P=Re[u];if(void 0!==P){delete Re[u];var O=ve(u);safeReplaceObject(P,O),Re[u]=P}var v=I(r)[0],N=v&&v.top_message==u;if(p.clear_history)if(N)t.$broadcast("dialog_flush",{peerID:r});else{var g={};g[u]=!0,t.$broadcast("history_delete",{peerID:r,msgs:g})}else if(t.$broadcast("message_edit",{peerID:r,id:p.id,mid:u}),N){var L={};L[r]=v,t.$broadcast("dialogs_multiupdate",L)}break;case"updateReadHistoryInbox":case"updateReadHistoryOutbox":case"updateReadChannelInbox":case"updateReadChannelOutbox":var F,p,U,B="updateReadHistoryOutbox"==e._||"updateReadChannelOutbox"==e._,d=e.channel_id,H=f.getFullMessageID(e.max_id,d),r=d?-d:c.getPeerID(e.peer),v=I(r),k=(Ne[r]||{}).history||[],j=!1,q=k.length,W=!1;for(r>0&&B&&s.forceUserOnline(r),U=0;U<q;U++)if(F=k[U],!(F>H)&&(p=De[F],p.pFlags.out==B)){if(!p.pFlags.unread)break;p&&p.pFlags.unread&&(p.pFlags.unread=!1,Re[F]&&(Re[F].pFlags.unread=!1,W||(W=!0)),Oe[F]&&(Oe[F].pFlags.unread=!1),p.pFlags.out||(v[0]&&(j=--v[0].unread_count),w.cancel("msg"+F)))}if(v[0]){!B&&j&&v[0].top_message<=H&&(j=v[0].unread_count=0);var G=B?"read_outbox_max_id":"read_inbox_max_id";v[0][G]=H}j!==!1&&t.$broadcast("dialog_unread",{peerID:r,count:j}),W&&t.$broadcast("messages_read");break;case"updateChannelReadMessagesContents":var d=e.channel_id,K=[];angular.forEach(e.messages,function(e){K.push(f.getFullMessageID(e,d))}),e.messages=K;case"updateReadMessagesContents":var U,F,p,Y,X=e.messages,J=X.length;for(U=0;U<J;U++)F=X[U],(p=De[F])&&delete p.pFlags.media_unread,(Y=Re[F])&&delete Y.pFlags.media_unread;break;case"updateChannelAvailableMessages":var d=e.channel_id,X=[],r=-d,k=(Ne[r]||{}).history||[];k.length&&angular.forEach(k,function(t){(!e.available_min_id||f.getMessageLocalID(t)<=e.available_min_id)&&X.push(t)}),e.messages=X;case"updateDeleteMessages":case"updateDeleteChannelMessages":var F,p,U,r,v,k,Z,Q,ee={},d=e.channel_id;for(U=0;U<e.messages.length;U++)F=f.getFullMessageID(e.messages[U],d),p=De[F],p&&(r=me(p),k=ee[r]||(ee[r]={count:0,unread:0,msgs:{}}),!p.pFlags.out&&p.pFlags.unread&&(k.unread++,w.cancel("msg"+F)),k.count++,k.msgs[F]=!0,Re[F]&&(Re[F].deleted=!0,delete Re[F]),Oe[F]&&(Oe[F].deleted=!0,delete Oe[F]),p.deleted=!0,De[F]={deleted:!0,id:F,from_id:p.from_id,to_id:p.to_id,flags:p.flags,pFlags:p.pFlags,date:p.date},Z=ut[r],Z&&Z.length&&(Q=Z.indexOf(F),Q!=-1&&Z.splice(Q)));angular.forEach(ee,function(e,n){var i=Ne[n];if(void 0!==i){for(var a=[],r=[],o=0;o<i.history.length;o++)e.msgs[i.history[o]]||a.push(i.history[o]);i.history=a,e.count&&null!==i.count&&i.count>0&&(i.count-=e.count,i.count<0&&(i.count=0));for(var o=0;o<i.pending.length;o++)e.msgs[i.pending[o]]||r.push(i.pending[o]);i.pending=r,t.$broadcast("history_delete",{peerID:n,msgs:e.msgs})}var s=I(n)[0];s&&(e.unread&&(s.unread_count-=e.unread,t.$broadcast("dialog_unread",{peerID:n,count:s.unread_count})),e.msgs[s.top_message]&&xe(n))});break;case"updateChannel":var d=e.channel_id,r=-d,te=l.getChat(d),ie="channel"==te._&&!te.pFlags.left&&!te.pFlags.kicked,v=I(r),ae=v.length>0,re="channel"==te._&&(te.username||!te.pFlags.left&&!te.pFlags.kicked)&&!0||!1,oe=void 0!==Ne[r];re!=oe&&(delete Ne[r],t.$broadcast("history_forbidden",r)),ae!=ie&&(ie?xe(-d):v[0]&&(Le.dialogs.splice(v[1],1),t.$broadcast("dialog_drop",{peerID:r})));break;case"updateChannelReload":var d=e.channel_id,r=-d,v=I(r);v[0]&&Le.dialogs.splice(v[1],1),delete Ne[r],xe(-d).then(function(){t.$broadcast("history_reload",r)});break;case"updateChannelMessageViews":var se=e.views,u=f.getFullMessageID(e.id,e.channel_id),p=z(u);p&&p.views&&p.views<se&&(p.views=se,t.$broadcast("message_views",{mid:u,views:se}));break;case"updateServiceNotification":var le=777e3,r=le,F=o--,p={_:"message",id:F,from_id:le,to_id:c.getOutputPeer(r),flags:0,pFlags:{unread:!0},date:(e.inbox_date||tsNow(!0))+y.serverTimeOffset,message:e.message,media:e.media,entities:e.entities};if(s.hasUser(le)||s.saveApiUsers([{_:"user",id:le,pFlags:{verified:!0},access_hash:0,first_name:"Telegram",phone:"42777"}]),ne([p]),e.inbox_date&&(He[r]=F,Ie({_:"updateNewMessage",message:p})),e.pFlags.popup&&e.message){var Y=ve(F);A.show({error:{code:400,type:"UPDATE_SERVICE_NOTIFICATION"},historyMessage:Y})}}}function xe(e){return _.invokeApi("messages.getPeerDialogs",{peers:[c.getInputPeerByID(e)]}).then(Pe)}function Pe(e){s.saveApiUsers(e.users),l.saveApiChats(e.chats),ne(e.messages);var n={},i=!1;angular.forEach(e.dialogs,function(e){var a=c.getPeerID(e.peer),r=e.top_message,o=He[a];if(o&&(!r||z(o).date>z(r).date)&&(e.top_message=r=o),r){var s=I(a).length>0;x(e),s?(_e(r),t.$broadcast("dialog_top",e)):(n[a]=e,i=!0)}else{var l=I(a);l.length&&(Le.dialogs.splice(l[1],1),t.$broadcast("dialog_drop",{peerID:a}))}void 0!==gt[a]&&(angular.forEach(gt[a],function(e){Ie(e)}),delete gt[a])}),i&&t.$broadcast("dialogs_multiupdate",n)}var De={},Re={},Oe={},Ne={},Le={count:null,dialogs:[]},Fe={},Ue={},Be={},He={},je=e.when(),Ve=-1,qe={},ze=SearchIndexManager.createIndex(),We={query:!1},Ge={},Ke=[],Ye=[],Xe=!1,Je={},Ze=[],Qe=!1,et=!1;k.get("max_seen_msg").then(function(e){e&&!f.getMessageIDInfo(e)[1]&&(et=e)});var tt=i("dateOrTime"),nt=T.pluralize("conversation_forwarded_X_messages"),it=T.pluralize("conversation_scored_X");w.start();var at=!1,rt=0,ot=0,st=0,lt={},ct={},dt=!1,ut={},pt=!1,ft={},mt=!1,ht={},gt={};return t.$on("apiUpdate",function(e,t){Ie(t)}),t.$on("webpage_updated",function(e,n){angular.forEach(n.msgs,function(e){var i=Re[e];i&&(i.media={_:"messageMediaWebPage",webpage:h.wrapForHistory(n.id)},t.$broadcast("message_edit",{peerID:me(i),id:i.id,mid:e,justMedia:!0}))})}),t.$on("draft_updated",function(e,n){var i=n.peerID,a=n.draft,r=I(i)[0];if(r){var o;if(a&&a.date)o=a.date;else{var s=c.isChannel(i)?-i:0,o=z(r.top_message).date;if(s){var d=l.getChat(s);(!o||d.date&&d.date>o)&&(o=d.date)}}r.pFlags.pinned||(r.index=R(o)),O(r),t.$broadcast("dialog_draft",{peerID:i,draft:a,index:r.index})}}),{getConversations:E,getConversation:$,getHistory:H,getSearch:q,getMessage:z,getReplyKeyboard:j,readHistory:Z,readMessages:Q,flushHistory:te,deleteMessages:X,sendText:ie,sendFile:ae,sendOther:re,forwardMessages:oe,startBot:se,shareGame:le,editMessage:fe,convertMigratedPeer:B,getMessagePeer:me,getMessageThumb:Se,getMessageShareLink:J,canMessageBeEdited:W,canEditMessage:G,getMessageEditData:K,canRevokeMessage:Y,clearDialogCache:_e,wrapForDialog:he,wrapForHistory:ve,wrapReplyMarkup:ye,wrapSingleMessage:ge,wrapMessageText:be,regroupWrappedHistory:Me}}]).service("AppMessagesIDsManager",function(){function e(e,t){if(!t||e<=0)return e;e=n(e);var i=a[t];return i||(i=++o*s,r[i]=t,a[t]=i),i+e}function t(e){if(e<s)return[e,0];var t=e%s,n=r[e-t];return[t,n]}function n(e){return e?e%s:0}function i(e){var n,i,a,r,o={},s={};for(n=0;n<e.length;n++)i=e[n],a=t(i),r=a[1],void 0===o[r]&&(o[r]=[],s[r]=[]),o[r].push(a[0]),s[r].push(i);return{msgIDs:o,mids:s}}var a={},r={},o=0,s=4294967296;return{getFullMessageID:e,getMessageIDInfo:t,getMessageLocalID:n,splitMessageIDsByChannels:i,fullMsgIDModulus:s}}),angular.module("myApp.templates",[]).run(["$templateCache",function(e){e.put("partials/desktop/audio_player.html",'<div class="audio_player_wrap clearfix">\n\t<a class="im_message_file_button" ng-click="togglePlay()" ng-class="{im_message_file_button_dl_audio: audio.downloaded}">\n\t <i class="im_message_file_button_icon" ng-class="{audio_player_btn_icon_pause: mediaPlayer.player.playing}"></i>\n\t</a>\n\t<div class="audio_player_title_wrap">\n\t\t<div class="audio_player_meta pull-right" ng-if="audio.downloaded &amp;&amp; (mediaPlayer.player.duration || audio.duration)" ng-switch="mediaPlayer.player.playing || mediaPlayer.player.currentTime > 0">\n\t\t\t<span ng-switch-when="true" class="audio_player_duration" ng-bind="mediaPlayer.player.currentTime | durationRemains : duration()"></span>\n\t\t\t<span ng-switch-default class="audio_player_duration" ng-bind="duration() | duration"></span>\n\t\t</div>\n\t\t<span class="copyonly">[ </span>\n\t\t<a ng-attr-title="{{audio.file_name}}" ng-click="download()" class="audio_player_title" ng-switch="::audio.audioTitle.length > 0 ? 2 : (audio.file_name.length > 0 ? 1 : 0)">\n\t\t\t<span ng-switch-when="2">\n\t\t\t\t<strong ng-bind="::audio.audioPerformer"></strong>\n\t\t\t\t<span ng-bind="::(audio.audioPerformer ? \'– \' : \'\') + audio.audioTitle"></span>\n\t\t\t</span>\n\t\t\t<span ng-switch-when="1" ng-bind="::audio.file_name"></span>\n\t\t\t<span ng-switch-default my-i18n="message_attach_audio_message"></span>\n\t\t</a>\n\t\t<span class="copyonly">]</span>\n\t\t<i ng-if="::message.pFlags.media_unread || false" ng-show="message.pFlags.media_unread" class="icon icon-audio-unread"></i>\n\t\t<div class="audio_player_meta" ng-if="!audio.downloaded || !duration()" ng-switch="audio.progress.enabled">\n\t\t\t<span ng-switch-when="true" class="audio_player_size" ng-bind="audio.progress | formatSizeProgress"></span>\n\t\t\t<span ng-switch-default class="audio_player_size" ng-bind="audio.size | formatSize"></span>\n\t\t</div>\n\t</div>\n\t<div class="audio_player_actions noselect" ng-if="!audio.progress.enabled &amp;&amp; !audio.downloaded">\n <a class="nocopy" ng-if="audio._ == \'document\'" ng-click="download()" my-i18n="message_attach_document_download"></a>\n <a class="nocopy" ng-click="togglePlay()" my-i18n="message_attach_audio_play"></a>\n\t</div>\n\t<div class="audio_player_progress_wrap" ng-if="audio.progress.enabled || audio.downloaded" ng-switch="audio.progress.enabled">\n\t\t<div ng-switch-when="true" class="clearfix im_message_cancelable_progress_wrap">\n\t\t <a class="im_message_media_progress_cancel pull-right nocopy" ng-click="audio.progress.cancel()" my-i18n="modal_cancel"></a>\n\t\t <div class="im_message_download_progress_wrap">\n\t\t <div class="progress tg_down_progress">\n\t\t <div class="progress-bar progress-bar-success" ng-style="{width: audio.progress.percent + \'%\'}"></div>\n\t\t </div>\n\t\t </div>\n\t\t</div>\n\t <div ng-switch-default class="im_message_playback_progress_wrap">\n\t \t<div class="audio_player_seek_slider" my-slider slider-model="mediaPlayer.player.currentTime" slider-max="duration()" slider-onchange="seek(value)"></div>\n\t \t<div class="audio_player_volume_slider" my-slider slider-model="mediaPlayer.player.volume" slider-min="0" slider-max="1" slider-onchange="setVolume(value)"></div>\n\t </div>\n\t</div>\n\t<div class="audio_player_media" ng-if="audio.url" my-ogv-player="mediaPlayer.player" src="audio.url" volume="{{::volume}}"></div>\n</div>'),e.put("partials/desktop/changelog_modal.html",'<div class="changelog_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\n </div>\n <div class="md_modal_title" my-i18n="head_about"></div>\n </div>\n\n <div class="peer_modal_profile_wrap clearfix">\n <div class="peer_modal_photo_wrap pull-left">\n <div class="peer_modal_photo telegram_modal_logo"></div>\n </div>\n <div class="peer_modal_profile">\n <div class="peer_modal_profile_name">Telegram Web</div>\n <div class="peer_modal_profile_description" my-i18n="changelog_app_version">\n <my-i18n-param name="version" ng-bind="currentVersion"></my-i18n-param>\n </div>\n </div>\n </div>\n </div>\n\n <div class="md_modal_split_actions_wrap">\n <div class="md_modal_split_actions">\n <a href="https://twitter.com/telegram_web" target="_blank" class="md_modal_split_action">\n <i class="md_modal_split_action_twitter"></i>\n </a>\n </div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="md_modal_sections">\n\n <div class="md_modal_versioned_section_wrap">\n <div class="md_modal_section_description changelog_version_changes" my-i18n="changelog_modal_full_description_md"></div>\n </div>\n\n </div>\n\n\n <div class="changelog_footer_wrap clearfix">\n <a class="changelog_github_link" href="https://github.com/zhukov/webogram" target="_blank">GitHub</a>\n <a class="changelog_more_link" href="https://github.com/zhukov/webogram/blob/master/CHANGELOG.md" target="_blank" my-i18n="changelog_modal_changelog_link"></a>\n </div>\n\n </div>\n\n</div>'),e.put("partials/desktop/channel_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateChannel()">\n\n <h4 my-i18n="channel_edit_modal_title"></h4>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="channel_edit_name"></label>\n <input class="md-input" my-focused type="text" ng-model="channel.title" />\n </div>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="channel_edit_about"></label>\n <input class="md-input" type="text" ng-model="channel.about" />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: channel.updating}" ng-click="updateChannel()" ng-bind="channel.updating ? \'channel_edit_submit_active\' : \'channel_edit_submit\' | i18n" ng-disabled="channel.updating"></button>\n </div>\n\n</div>'),e.put("partials/desktop/channel_modal.html",'<div class="chat_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\n <a class="md_modal_action" ng-if="hasRights(\'edit_title\')" ng-click="editChannel()" my-i18n="modal_edit"></a>\n </div>\n <div class="md_modal_title" ng-switch="isMegagroup">\n <span ng-switch-when="true" my-i18n="group_modal_info"></span>\n <span ng-switch-default my-i18n="channel_modal_info"></span>\n </div>\n </div>\n\n <div class="peer_modal_profile_wrap clearfix">\n <div class="peer_modal_photo_wrap pull-left" ng-switch="photo.updating">\n <div ng-switch-when="true" class="peer_modal_photo md_photo_loading loading_dots">\n <i></i><i></i><i></i>\n </div>\n <a ng-switch-default ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="peer_modal_photo" my-peer-photolink="::-chatFull.chat.id" img-class="peer_modal_photo" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\n </div>\n <div class="peer_modal_profile">\n <div class="peer_modal_profile_name" my-peer-link="-chatFull.chat.id" verified="true"></div>\n <div class="peer_modal_profile_description" ng-if="chatFull.participants_count > 0" ng-switch="isMegagroup">\n <ng-pluralize ng-switch-when="true"\n count="chatFull.participants_count"\n when="group_modal_pluralize_participants">\n </ng-pluralize>\n <ng-pluralize ng-switch-default\n count="chatFull.participants_count"\n when="group_modal_pluralize_subscribers">\n </ng-pluralize>\n </div>\n </div>\n </div>\n </div>\n\n <div class="md_modal_split_actions_wrap">\n <div class="md_modal_split_actions" ng-switch="hasRights(\'edit_photo\')">\n <div ng-switch-when="true" class="md_modal_split_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" accept="image/x-png, image/png, image/gif, image/jpeg" title="{{\'group_modal_update_photo\' | i18n}}" />\n <i class="md_modal_split_action_camera"></i>\n </div>\n <a ng-switch-default class="md_modal_split_action" href="" ng-click="goToHistory()" title="{{\'user_modal_send_message\' | i18n}}">\n <i class="md_modal_split_action_msg"></i>\n </a>\n </div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="md_modal_sections clearfix">\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_number" ng-if="chatFull.rAbout || chatFull.chat.username || chatFull.chat.pFlags.creator">\n <i class="md_modal_section_icon md_modal_section_icon_about"></i>\n\n <div class="md_modal_section_param_wrap" ng-if="chatFull.about.length > 0">\n <div class="md_modal_section_param_value">\n <span ng-bind-html="chatFull.rAbout"></span>\n </div>\n <div class="md_modal_section_param_name" my-i18n="channel_modal_description"></div>\n </div>\n\n <div class="md_modal_section_param_wrap" ng-if="chatFull.chat.username">\n <div class="md_modal_section_param_value">\n <a class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="\'https://t.me/\' + chatFull.chat.username" ng-href="https://t.me/{{chatFull.chat.username}}" target="_blank"></a>\n </div>\n <div class="md_modal_section_param_name" my-i18n="channel_modal_share_link"></div>\n </div>\n\n <div class="md_modal_section_param_wrap" ng-if="!chatFull.chat.username &amp;&amp; chatFull.chat.pFlags.creator">\n <div class="md_modal_section_param_value" ng-switch="chatFull.exported_invite._">\n <a ng-switch-when="chatInviteExported" class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="chatFull.exported_invite.link" ng-href="{{chatFull.exported_invite.link}}" target="_blank"></a>\n <span ng-switch-default my-i18n="channel_modal_share_loading">\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n </span>\n </div>\n <div class="md_modal_section_param_name" my-i18n="channel_modal_share_link"></div>\n </div>\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="hasRights(\'invite\') || chatFull.chat.pFlags.left">\n <i class="md_modal_section_icon md_modal_section_icon_person"></i>\n\n <div class="md_modal_section_link_wrap" ng-switch="chatFull.chat.pFlags.left">\n <a ng-switch-when="true" class="md_modal_section_link" ng-click="joinChannel()" my-i18n="channel_modal_join"></a>\n <a ng-switch-default class="md_modal_section_link" ng-click="inviteToChannel()" my-i18n="channel_modal_add_member"></a>\n </div>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_toggle">\n <i class="md_modal_section_icon md_modal_section_icon_notification"></i>\n\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="group_modal_notifications"></span>\n </a>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="isMegagroup && !chatFull.chat.username && !chatFull.chat.pFlags.left && !chatFull.chat.pFlags.kicked">\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\n\n <div class="md_modal_section_link_wrap">\n <a class="md_modal_section_link" ng-click="flushHistory()" my-i18n="group_modal_menu_clear_history"></a>\n </div>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="chatFull.chat.pFlags.creator || !chatFull.chat.pFlags.left && !chatFull.chat.pFlags.kicked && !isMegagroup">\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\n\n <div class="md_modal_section_link_wrap" ng-if="!chatFull.chat.pFlags.left && !chatFull.chat.pFlags.kicked && !isMegagroup">\n <a class="md_modal_section_link" ng-click="leaveChannel()" my-i18n="channel_modal_leave_channel"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="chatFull.chat.pFlags.creator">\n <a class="md_modal_section_link md_modal_section_link_danger" ng-click="deleteChannel()" ng-switch="isMegagroup">\n <span ng-switch-when="true" my-i18n="group_modal_delete_group"></span>\n <span ng-switch-default my-i18n="channel_modal_delete_channel"></span>\n </a>\n </div>\n\n </div>\n\n </div>\n\n <div ng-if="participants.length > 0">\n\n <div class="md_modal_section_splitter"></div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_peers">\n <i class="md_modal_section_icon md_modal_section_icon_people"></i>\n\n <div class="md_modal_section_peers_wrap">\n\n <div class="md_modal_list_peer_wrap clearfix" ng-repeat="participant in participants">\n\n <a ng-if="participant.canLeave" ng-click="leaveChannel()" class="md_modal_list_peer_action pull-right" my-i18n="group_modal_menu_leave"></a>\n <a ng-if="participant.canKick" ng-click="kickFromChannel(participant.user_id)" class="md_modal_list_peer_action pull-right" my-i18n="group_modal_members_kick"></a>\n\n <a class="md_modal_list_peer_photo pull-left" my-peer-photolink="::participant.user_id" img-class="md_modal_list_peer_photo"></a>\n\n <div class="md_modal_list_peer_name">\n <a class="md_modal_list_peer_name" my-peer-link="participant.user_id"></a>\n </div>\n <div class="md_modal_list_peer_description" my-user-status="::participant.user_id" bot-chat-privacy="true"></div>\n </div>\n\n </div>\n\n </div>\n\n </div>\n </div>\n\n\n</div>\n'),e.put("partials/desktop/chat_create_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateGroup()">\n\n <h4 my-i18n="group_create_modal_title"></h4>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_create_name"></label>\n <input class="md-input" my-focused type="text" ng-model="group.name" />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: group.creating}" ng-click="createGroup()" ng-bind="group.creating ? \'group_create_submit_active\' : \'group_create_submit\' | i18n" ng-disabled="group.creating"></button>\n </div>\n\n</div>'),e.put("partials/desktop/chat_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateGroup()">\n\n <h4 my-i18n="group_edit_modal_title"></h4>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_edit_name"></label>\n <input class="md-input" my-focused type="text" ng-model="group.name" />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: group.updating}" ng-click="updateGroup()" ng-bind="group.updating ? \'group_edit_submit_active\' : \'group_edit_submit\' | i18n" ng-disabled="group.updating"></button>\n </div>\n\n</div>'),e.put("partials/desktop/chat_invite_link_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <div class="modal_simple_form">\n\n <h4 my-i18n="group_invite_link_modal_title"></h4>\n\n <div ng-switch="exportedInvite.canRevoke">\n <div ng-switch-when="true">\n <div class="md-input-group md-textarea-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_invite_link_link_label"></label>\n <textarea class="md-input" ng-model="exportedInvite.link" rows="2" my-copy-field="\'ui_invite_select\'"></textarea>\n </div>\n </div>\n\n <div ng-switch-default>\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_invite_link_link_label"></label>\n <input class="md-input" type="text" ng-model="exportedInvite.link" my-copy-field="\'ui_invite_select\'" />\n </div>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n <div class="md_simple_modal_footer" ng-switch="exportedInvite.canRevoke">\n <div ng-switch-when="true">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: exportedInvite.revoking}" ng-click="revokeLink()" ng-bind="exportedInvite.revoking ? \'group_invite_revoke_active\' : \'group_invite_revoke\' | i18n" ng-disabled="exportedInvite.revoking"></button>\n </div>\n </div>\n\n</div>'),
e.put("partials/desktop/chat_modal.html",'<div class="chat_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\n <a class="md_modal_action" ng-if="hasRights(\'edit_title\')" ng-click="editTitle()" my-i18n="modal_edit"></a>\n </div>\n <div class="md_modal_title" my-i18n="group_modal_info"></div>\n </div>\n\n <div class="peer_modal_profile_wrap clearfix">\n <div class="peer_modal_photo_wrap pull-left" ng-switch="photo.updating">\n <div ng-switch-when="true" class="peer_modal_photo md_photo_loading loading_dots">\n <i></i><i></i><i></i>\n </div>\n <a ng-switch-default ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="peer_modal_photo" my-peer-photolink="::-chatFull.chat.id" img-class="peer_modal_photo" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\n </div>\n <div class="peer_modal_profile">\n <div class="peer_modal_profile_name" my-peer-link="-chatFull.chat.id"></div>\n <div class="peer_modal_profile_description" ng-if="chatFull.chat.participants_count > 0">\n <ng-pluralize count="chatFull.chat.participants_count"\n when="group_modal_pluralize_participants">\n </ng-pluralize>\n </div>\n </div>\n </div>\n </div>\n\n <div class="md_modal_split_actions_wrap">\n <div class="md_modal_split_actions">\n <div class="md_modal_split_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" title="{{\'group_modal_update_photo\' | i18n}}" />\n <i class="md_modal_split_action_camera"></i>\n </div>\n </div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="md_modal_sections clearfix">\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="hasRights(\'invite\') && chatFull.participants.participants.length < maxParticipants">\n <i class="md_modal_section_icon md_modal_section_icon_person"></i>\n\n <div class="md_modal_section_link_wrap">\n <a class="md_modal_section_link" ng-click="inviteToGroup()" my-i18n="group_modal_add_member"></a>\n </div>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="chatFull.chat._ != \'chatForbidden\' && !chatFull.chat.pFlags.left && chatFull.chat.pFlags.creator">\n\n <div class="md_modal_section_link_wrap">\n <a class="md_modal_section_link" ng-click="inviteViaLink()" my-i18n="group_modal_menu_share_link"></a>\n </div>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_toggle">\n <i class="md_modal_section_icon md_modal_section_icon_notification"></i>\n\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="group_modal_notifications"></span>\n </a>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link">\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\n\n <div class="md_modal_section_link_wrap" ng-switch="chatFull.chat.pFlags.left || chatFull.chat.pFlags.kicked || chatFull.chat._ == \'chatForbidden\'">\n <a ng-switch-when="true" class="md_modal_section_link" ng-click="flushHistory(false)" my-i18n="group_modal_menu_delete_group"></a>\n <a ng-switch-default class="md_modal_section_link" ng-click="flushHistory(true)" my-i18n="group_modal_menu_clear_history"></a>\n </div>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="chatFull.chat.pFlags.creator">\n\n <div class="md_modal_section_link_wrap">\n <a class="md_modal_section_link" ng-click="migrateToSuperGroup()" my-i18n="group_modal_migrate_to_supergroup"></a>\n </div>\n\n </div>\n\n </div>\n\n <div ng-if="chatFull.chat._ != \'chatForbidden\' &amp;&amp; !chatFull.chat.pFlags.left &amp;&amp; chatFull.participants.participants.length > 0">\n\n <div ng-switch="chatFull.chat.pFlags.creator && needMigrate">\n <div ng-switch-when="true" class="md_modal_section_splitter md_modal_section_splitter_content">\n <h4 class="chat_modal_migrate_header" my-i18n="group_modal_migrate_header"></h4>\n <p class="chat_modal_migrate_description" my-i18n="group_modal_migrate_desc"></p>\n <ul class="chat_modal_migrate_list">\n <li my-i18n="group_modal_migrate_item1"></li>\n <li my-i18n="group_modal_migrate_item2"></li>\n <li my-i18n="group_modal_migrate_item3"></li>\n <li my-i18n="group_modal_migrate_item4"></li>\n </ul>\n </div>\n <div ng-switch-default class="md_modal_section_splitter"></div>\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_peers">\n <i class="md_modal_section_icon md_modal_section_icon_people"></i>\n\n <div class="md_modal_section_peers_wrap">\n\n <div class="md_modal_list_peer_wrap clearfix" ng-repeat="participant in chatFull.participants.participants | orderBy:\'-user.sortStatus\'">\n\n <a ng-if="participant.canLeave" ng-click="leaveGroup()" class="md_modal_list_peer_action pull-right" my-i18n="group_modal_menu_delete_group"></a>\n <a ng-if="participant.canKick" ng-click="kickFromGroup(participant.user_id)" class="md_modal_list_peer_action pull-right" my-i18n="group_modal_members_kick"></a>\n\n <a class="md_modal_list_peer_photo pull-left" my-peer-photolink="::participant.user_id" img-class="md_modal_list_peer_photo"></a>\n\n <div class="md_modal_list_peer_name">\n <a class="md_modal_list_peer_name" my-peer-link="participant.user_id"></a>\n </div>\n <div class="md_modal_list_peer_description" my-user-status="::participant.user_id" bot-chat-privacy="true"></div>\n </div>\n\n </div>\n\n </div>\n\n </div>\n </div>\n\n\n</div>\n'),e.put("partials/desktop/composer_dropdown.html",'<div ng-switch="type">\n\n <ul ng-switch-when="mentions" class="composer_dropdown">\n <li ng-repeat="user in mentionUsers">\n <a class="composer_mention_option" data-user-id="{{\'#\' + user.id}}" data-username="{{user.username}}" data-name="{{user.first_name}}">\n <span class="composer_user_photo" my-peer-photolink="user.id" img-class="composer_user_photo"></span>\n <span class="composer_user_name" ng-bind-html="user.rFullName"></span>\n <span class="composer_user_mention" ng-if="user.username.length > 0" ng-bind="\'@\' + user.username"></span>\n </a>\n </li>\n </ul>\n\n <ul ng-switch-when="commands" class="composer_dropdown">\n <li ng-repeat="command in commands track by (command.botID + command.value)">\n <a class="composer_command_option" data-command="{{command.value}}">\n <span class="composer_user_photo" my-peer-photolink="command.botID" img-class="composer_user_photo"></span>\n <span class="composer_command_value" ng-bind="command.value"></span>\n <span class="composer_command_desc" ng-bind-html="command.rDescription"></span>\n </a>\n </li>\n </ul>\n\n <ul ng-switch-when="emoji" my-emoji-suggestions="emojiCodes" class="composer_dropdown"></ul>\n\n <div ng-switch-when="inline" my-inline-results="botResults"></div>\n\n</div>'),e.put("partials/desktop/confirm_modal.html",'<div class="confirm_modal_wrap md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <div class="confirm_modal_description" ng-switch="type">\n <span ng-switch-when="LOGOUT" my-i18n="confirm_modal_logout"></span>\n <span ng-switch-when="WEBOGRAM_UPDATED_RELOAD" my-i18n="confirm_modal_update_reload"></span>\n <span ng-switch-when="HISTORY_FLUSH" my-i18n="confirm_modal_history_flush"></span>\n <span ng-switch-when="HISTORY_LEAVE_AND_FLUSH" my-i18n="confirm_modal_history_leave_flush_md"></span>\n <span ng-switch-when="HISTORY_FLUSH_AND_DELETE" my-i18n="confirm_modal_history_flush"></span>\n <span ng-switch-when="TERMINATE_SESSIONS" my-i18n="confirm_modal_terminate_sessions"></span>\n <span ng-switch-when="TERMINATE_SESSION" my-i18n="confirm_modal_terminate_session"></span>\n\n <span ng-switch-when="FILES_CLIPBOARD_PASTE">\n <ng-pluralize count="files.length"\n when="confirm_modal_clipboard_X_files_send">\n </ng-pluralize>\n </span>\n <div ng-switch-when="FILE_CLIPBOARD_PASTE">\n <span my-i18n="confirm_modal_clipboard_file_send"></span>\n <div class="confirm_modal_paste_image" ng-if="fileUrl !== false" ng-style="{backgroundImage: \'url(\' + fileUrl + \')\'}"></div>\n </div>\n <span ng-switch-when="MESSAGE_DELETE" my-i18n="confirm_modal_message_delete"></span>\n <span ng-switch-when="MESSAGES_DELETE">\n <span my-i18n="confirm_modal_delete_messages">\n <my-i18n-param name="messages"><strong><ng-pluralize when="confirm_modal_delete_X_messages" count="count"></ng-pluralize></strong></my-i18n-param>\n </span>\n\n <a class="tg_checkbox" ng-if="revocable" ng-click="data.revoke = !data.revoke" ng-class="data.revoke ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="confirm_modal_message_revoke">\n <my-i18n-param name="recipient" ng-switch="isUser">\n <span ng-switch-when="true" my-peer-link="peerID" short="true"></span>\n <span ng-switch-default my-i18n="confirm_modal_message_revoke_recipient_chat"></span>\n </my-i18n-param>\n </span>\n </a>\n <p class="tg_checkbox" ng-if="!revocable && !isChannel && !isSavedMessages" ng-switch="isUser ? \'user\' : (isSupergroup ? \'supergroup\' : (isUsualGroup ? \'group\' : \'default\'))">\n <span ng-switch-when="supergroup" my-i18n="confirm_modal_delete_messages_for_everyone_chat"></span>\n <span ng-switch-when="group" my-i18n="confirm_modal_delete_messages_for_you_only_chat"></span>\n <span ng-switch-when="user" my-i18n="confirm_modal_delete_messages_for_you_only_pm"><my-i18n-param name="user"><strong my-peer-link="peerID"></strong></my-i18n-param></span>\n </p>\n </span>\n <span ng-switch-when="PHOTO_DELETE" my-i18n="confirm_modal_photo_delete"></span>\n <span ng-switch-when="CONTACTS_IMPORT_PERFORM" my-i18n="confirm_modal_contacts_import"></span>\n <div ng-switch-when="LOGIN_PHONE_CORRECT">\n <my-i18n msgid="confirm_modal_login_phone_correct"></my-i18n>\n <div class="confirm_phone_number">\n <span ng-bind="country_code"></span> <span ng-bind="phone_number"></span>\n </div>\n </div>\n <my-i18n>\n <span ng-switch-when="FORWARD_PEER" my-i18n-format="confirm_modal_forward_to_peer"></span>\n <span ng-switch-when="SHARE_CONTACT_PEER" my-i18n-format="confirm_modal_send_to_peer"></span>\n <span ng-switch-when="SHARE_URL" my-i18n-format="confirm_modal_send_to_peer"></span>\n <span ng-switch-when="EXT_SHARE_PEER" my-i18n-format="confirm_modal_share_file_peer"></span>\n <span ng-switch-when="INVITE_TO_GROUP" my-i18n-format="confirm_modal_invite_peer"></span>\n <span ng-switch-when="INVITE_TO_GAME" my-i18n-format="confirm_modal_share_game"></span>\n <my-i18n-param name="peer">\n <strong my-peer-link="peer_id"></strong>\n </my-i18n-param>\n </my-i18n>\n <div ng-switch-when="APPLY_LANG_WITH_RELOAD" my-i18n="confirm_modal_apply_lang_with_reload_md"></div>\n <div ng-switch-when="MIGRATE_TO_HTTPS" my-i18n="confirm_modal_migrate_to_https_md"></div>\n <div ng-switch-when="SWITCH_DESKTOP_VERSION" my-i18n="confirm_modal_resize_desktop_md"></div>\n <div ng-switch-when="SWITCH_MOBILE_VERSION" my-i18n="confirm_modal_resize_mobile_md"></div>\n <div ng-switch-when="RECOVERY_EMAIL_EMPTY" my-i18n="confirm_modal_recovery_email_empty_md"></div>\n <div ng-switch-when="PASSWORD_ABORT_SETUP" my-i18n="confirm_modal_abort_password_setup"></div>\n <div ng-switch-when="RESET_ACCOUNT" my-i18n="confirm_modal_reset_account_md"></div>\n <div ng-switch-when="JOIN_GROUP_BY_LINK" my-i18n="confirm_modal_join_group_link">\n <my-i18n-param name="title"><strong ng-bind="title"></strong></my-i18n-param>\n </div>\n <div ng-switch-when="JOIN_CHANNEL_BY_LINK" my-i18n="confirm_modal_join_channel_link">\n <my-i18n-param name="title"><strong ng-bind="title"></strong></my-i18n-param>\n </div>\n <div ng-switch-when="REVOKE_GROUP_INVITE_LINK" my-i18n="confirm_modal_revoke_group_link"></div>\n <div ng-switch-when="REVOKE_CHANNEL_INVITE_LINK" my-i18n="confirm_modal_revoke_channel_link"></div>\n <div ng-switch-when="CHANNEL_DELETE" my-i18n="confirm_modal_delete_channel_md"></div>\n <div ng-switch-when="MEGAGROUP_DELETE" my-i18n="confirm_modal_delete_group_md"></div>\n <div ng-switch-when="CHANNEL_LEAVE" my-i18n="confirm_modal_leave_channel_md"></div>\n <div ng-switch-when="MEGAGROUP_LEAVE" my-i18n="confirm_modal_leave_group_md"></div>\n <div ng-switch-when="JUMP_EXT_URL" my-i18n="confirm_modal_jump_ext_url_md" class="confirm_modal_extlink_jump">\n <my-i18n-param name="url"><strong ng-bind="url"></strong></my-i18n-param>\n </div>\n <div ng-switch-when="SUPERGROUP_MIGRATE" my-i18n="confirm_modal_migrate_supergroup_md"></div>\n <div ng-switch-when="BOT_ACCESS_PHONE" my-i18n="confirm_modal_bot_access_phone"></div>\n <div ng-switch-when="BOT_ACCESS_GEO" my-i18n="confirm_modal_bot_access_geo"></div>\n <div ng-switch-when="BOT_ACCESS_GEO_INLINE" my-i18n="confirm_modal_bot_access_geo_inline"></div>\n\n\n\n <span ng-switch-default ng-switch="message.length > 0">\n <span ng-switch-when="true" ng-bind="message"></span>\n <span ng-switch-default my-i18n="confirm_modal_are_u_sure"></span>\n </span>\n </div>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()">\n <span my-i18n="modal_cancel"></span>\n </button>\n <button class="btn btn-md btn-md-primary" ng-switch="type" ng-click="$close(data)" ng-class="{\'btn-md-danger\': type == \'RESET_ACCOUNT\' || type == \'HISTORY_LEAVE_AND_FLUSH\' || type == \'HISTORY_FLUSH_AND_DELETE\' || type == \'HISTORY_FLUSH\'}" my-focused >\n <span ng-switch-when="LOGOUT" my-i18n="confirm_modal_logout_submit"></span>\n <span ng-switch-when="HISTORY_FLUSH" my-i18n="confirm_modal_clear_history_submit"></span>\n <span ng-switch-when="HISTORY_LEAVE_AND_FLUSH" my-i18n="confirm_modal_leave_chat_submit"></span>\n <span ng-switch-when="HISTORY_FLUSH_AND_DELETE" my-i18n="confirm_modal_delete_chat_submit"></span>\n <span ng-switch-when="FILES_CLIPBOARD_PASTE" my-i18n="confirm_modal_clipboard_files_send_submit"></span>\n <span ng-switch-when="FILE_CLIPBOARD_PASTE" my-i18n="confirm_modal_clipboard_file_send_submit"></span>\n <span ng-switch-when="MESSAGE_DELETE" my-i18n="confirm_modal_message_delete_submit"></span>\n <span ng-switch-when="MESSAGES_DELETE" my-i18n="confirm_modal_messages_delete_submit"></span>\n <span ng-switch-when="PHOTO_DELETE" my-i18n="confirm_modal_photo_delete_submit"></span>\n <span ng-switch-when="FORWARD_PEER" my-i18n="confirm_modal_forward_message_submit"></span>\n <span ng-switch-when="PHOTO_SHARE_PEER" my-i18n="confirm_modal_share_photo_submit"></span>\n <span ng-switch-when="VIDEO_SHARE_PEER" my-i18n="confirm_modal_share_video_submit"></span>\n <span ng-switch-when="SHARE_CONTACT_PEER" my-i18n="confirm_modal_share_contact_submit"></span>\n <span ng-switch-when="EXT_SHARE_PEER" my-i18n="confirm_modal_share_file_submit"></span>\n <span ng-switch-when="RESET_ACCOUNT" my-i18n="confirm_modal_reset_account_submit"></span>\n <span ng-switch-default my-i18n="modal_ok"></span>\n </button>\n </div>\n\n</div>\n'),e.put("partials/desktop/contacts_modal.html",'<div class="contacts_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head md_modal_head_simple">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-if="action != \'edit\'" ng-click="$dismiss()" my-i18n="modal_close"></a>\n <a class="md_modal_action" ng-if="action == \'edit\'" class="contacts_modal_edit_link" ng-click="toggleEdit(false)" my-i18n="contacts_modal_edit_cancel"></a>\n <a class="md_modal_action" ng-if="!action" ng-click="toggleEdit(true)" my-i18n="contacts_modal_edit_list"></a>\n </div>\n </div>\n <div class="md_modal_title" ng-switch="action">\n <div ng-switch-when="new_group" ng-switch="selectedCount > 0">\n <span ng-switch-when="true">\n <ng-pluralize count="selectedCount" when="contacts_modal_pluralize_new_group_members">\n </ng-pluralize>\n </span>\n <span ng-switch-default my-i18n="group_create_contacts_modal_title"></span>\n </div>\n <span ng-switch-default my-i18n="contacts_modal_title"></span>\n </div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="contacts_modal_search">\n <input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n </div>\n\n <div my-contacts-list class="contacts_modal_col">\n\n <div class="contacts_wrap nano" my-infinite-scroller>\n <div class="contacts_scrollable_wrap nano-content" ng-switch="contactsEmpty">\n\n <div ng-switch-when="true" class="contacts_modal_contacts_empty" my-vertical-position="0.2" padding="true" my-i18n="contacts_modal_empty_list">\n <my-i18n-param name="import-link"><a href="" ng-click="importContact()">{0}</a></my-i18n-param>\n </div>\n\n <ul ng-switch-default class="contacts_modal_members_list nav nav-pills nav-stacked">\n\n <li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | limitTo: slice.limit track by contact.userID" ng-class="{active: selectedContacts[contact.userID], disabled: disabledContacts[contact.userID]}">\n <a class="contacts_modal_contact" ng-click="contactSelect(contact.userID)">\n\n <div class="md_modal_list_peer_photo pull-left" my-peer-photolink="::contact.userID" img-class="md_modal_list_peer_photo"></div>\n <div class="md_modal_list_peer_name" my-peer-link="contact.userID"></div>\n <div class="md_modal_list_peer_description" ng-switch="contact.found">\n <span ng-switch-when="true" ng-bind="\'@\' + contact.user.username"></span>\n <span ng-switch-default my-user-status="::contact.userID"></span>\n </div>\n\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n <div class="md_modal_footer clearfix" ng-switch="action">\n\n <div ng-switch-when="new_group" class="pull-right">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit" my-i18n="modal_next"></button>\n </div>\n\n <button ng-switch-when="select" class="btn btn-md btn-md-primary pull-right" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit" my-i18n="modal_next"></button>\n\n <button ng-switch-when="edit" class="btn btn-md btn-md-danger pull-right" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="deleteSelected()">\n <my-i18n msgid="contacts_modal_edit_delete"></my-i18n>\n <strong ng-bind="selectedCount"></strong>\n </button>\n\n <div ng-switch-default class="text-center">\n <button class="btn btn-md btn-md-primary" ng-click="importContact()" my-i18n="contacts_modal_new_contact"></button>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/desktop/country_select_modal.html",'<div class="countries_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head md_modal_head_simple">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\n </div>\n </div>\n <div class="md_modal_title" my-i18n="country_select_modal_title"></div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="countries_modal_search">\n <input class="form-control countries_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\n <a class="countries_modal_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n\n </div>\n\n <div class="countries_modal_col" my-countries-list>\n\n <div class="countries_wrap nano" my-infinite-scroller>\n <div class="countries_scrollable_wrap nano-content">\n\n <ul class="countries_modal_members_list nav nav-pills nav-stacked">\n\n <li class="countries_modal_country_wrap clearfix" ng-repeat="country in countries | limitTo : slice.limit track by $index">\n <a class="countries_modal_country" ng-click="$close(country)">\n <span class="countries_modal_country_code pull-right" ng-bind="country.code"></span>\n <span class="countries_modal_country_name" ng-bind="country.name"></span>\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/desktop/dialog.html",'<a class="im_dialog" ng-mousedown="dialogSelect(dialogMessage.peerString, dialogMessage.unreadCount == -1 && dialogMessage.mid)">\n\n <div class="im_dialog_meta pull-right text-right">\n <div class="im_dialog_date" ng-bind="dialogMessage.dateText"></div>\n <span\n class="im_dialog_badge badge ng-hide"\n ng-show="dialogMessage.unreadCount > 0 && !dialogMessage.pFlags.out"\n ng-bind="dialogMessage.unreadCount"\n my-peer-muted="dialogMessage.peerID" muted-class="im_dialog_badge_muted"\n ></span>\n <i\n class="im_dialog_unread ng-hide"\n ng-show="dialogMessage.pFlags.out && dialogMessage.pFlags.unread"\n ></i>\n <i\n class="im_dialog_pinned ng-hide"\n ng-show="dialogMessage.pinned && !dialogMessage.unreadCount && !dialogMessage.pFlags.unread"\n ></i>\n </div>\n\n <i class="icon icon-select-tick" ng-class="{dialog_selected: isSelected(dialogMessage.peerString)}" ng-mousedown="dialogMultiSelect(dialogMessage.peerString, $event)"></i>\n \n <div class="im_dialog_photo pull-left" my-peer-photolink="::dialogMessage.peerID" img-class="im_dialog_photo" watch="true" for-dialog="!dialogMessage.foundInHistory"></div>\n\n <div class="im_dialog_message_wrap">\n\n <div class="im_dialog_peer">\n <span my-peer-link="dialogMessage.peerID" verified="true" for-dialog="!dialogMessage.foundInHistory"></span>\n </div>\n\n <div ng-switch="dialogMessage.typing ? \'typing\' : (!dialogMessage.unreadCount && dialogMessage.draft ? \'draft\' : (dialogMessage.deleted ? \'deleted\' : \'message\'))">\n\n <div ng-switch-when="typing" class="im_dialog_message">\n <span class="im_short_message_service" my-i18n="im_conversation_group_typing">\n <my-i18n-param name="name"><span my-peer-link="dialogMessage.typing" short="true" class="im_dialog_chat_from_wrap"></span></my-i18n-param><my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n </span>\n </div>\n\n <div ng-switch-when="draft" class="im_dialog_message">\n <span class="im_dialog_chat_from_wrap">\n <span class="im_dialog_draft_from" my-i18n="conversation_draft"></span>\n </span>\n <span class="im_short_message_text" ng-bind-html="dialogMessage.draft.richMessage"></span>\n </div>\n\n <div ng-switch-when="deleted" class="im_dialog_message">\n <span class="im_short_message_text">&nbsp;</span>\n </div>\n\n <div ng-switch-when="message" class="im_dialog_message">\n <span ng-switch="dialogMessage.peerID > 0 || dialogMessage.fromID < 0">\n <span ng-switch-when="true">\n <span class="im_dialog_chat_from_wrap" ng-if="dialogMessage.pFlags.out && dialogMessage.fromID > 0">\n <span\n class="im_dialog_chat_from"\n my-i18n="conversation_you"\n ></span><span ng-if="dialogMessage.message.length > 0 || !!dialogMessage.media">:</span>\n </span>\n </span>\n <span ng-switch-default>\n <span class="im_dialog_chat_from_wrap" ng-switch="dialogMessage.pFlags.out && dialogMessage._ != \'messageService\'">\n <span\n ng-switch-when="false"\n class="im_dialog_chat_from"\n my-peer-link="dialogMessage.from_id" short="true" peer-watch="true"\n ></span><span\n ng-switch-when="true"\n class="im_dialog_chat_from"\n my-i18n="conversation_you"\n ></span><span ng-if="dialogMessage.message.length || dialogMessage.media">:</span>\n </span>\n </span>\n </span>\n\n <span my-short-message="dialogMessage"></span>\n </div>\n </div>\n\n </div>\n\n</a>\n'),e.put("partials/desktop/document_modal.html",'<div class="modal_close_wrap" ng-click="$close()">\n <div class="modal_close"></div>\n</div>\n\n<div class="media_modal_bottom_panel_wrap">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions pull-right">\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\n <i class="media_modal_action_btn_download"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\n <i class="media_modal_action_btn_delete"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="document.user_id > 0" ng-switch="messageID > 0">\n <a class="media_modal_author_photo pull-left" my-peer-photolink="document.user_id" img-class="media_modal_author_photo" watch="true"></a>\n <div class="media_modal_author_name">\n <a class="media_modal_author" my-peer-link="document.user_id" peer-watch="true"></a>\n </div>\n <div class="media_modal_date" ng-if="document.date > 0">\n <a ng-switch-when="true" class="media_modal_date" ng-click="goToMessage()" ng-bind="document.date | dateOrTime :true"></a>\n <span ng-switch-default ng-bind="document.date | dateOrTime :true"></span>\n </div>\n </div>\n\n <div class="media_modal_title_wrap" ng-bind="document.file_name"></div>\n\n </div>\n</div>\n\n<div class="modal-dialog">\n <div class="modal-content">\n <div my-modal-width="{{photo.full.modalWidth}}" class="media_modal_wrap photo_modal_wrap" my-modal-position animation="no">\n\n <div class="modal-body">\n\n <div my-load-document="document"></div>\n\n </div>\n\n </div>\n </div>\n</div>'),e.put("partials/desktop/edit_contact_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="doImport()">\n\n <h4 my-i18n="contact_edit_modal_title"></h4>\n\n <div class="md-input-group md-input-disabled" my-labeled-input>\n <label class="md-input-label" my-i18n="contact_import_modal_phone"></label>\n <span class="md-input" ng-bind="importContact.phone | phoneNumber"></span>\n </div>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="contact_edit_modal_first_name"></label>\n <input class="md-input" my-focused type="text" ng-model="importContact.first_name" my-submit-on-enter />\n </div>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="contact_edit_modal_last_name"></label>\n <input class="md-input" type="text" ng-model="importContact.last_name" my-submit-on-enter />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'contact_edit_modal_submit_active\' : \'contact_edit_modal_submit\'| i18n" ng-disabled="progress.enabled"></button>\n </div>\n\n</div>'),e.put("partials/desktop/embed_modal.html",'<div class="modal_close_wrap" ng-click="$close()">\n <div class="modal_close"></div>\n</div>\n\n<div class="media_modal_bottom_panel_wrap">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions pull-right">\n <a class="media_modal_action_btn" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n <a class="media_modal_action_btn" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\n <i class="media_modal_action_btn_delete"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="webpageID">\n <div class="media_modal_author_name">\n <a class="media_modal_author" href="{{webpage.url}}" target="_blank" ng-bind-html="webpage.rTitle"></a>\n </div>\n <div class="media_modal_date" ng-bind="webpage.site_name || webpage.display_url"></div>\n </div>\n\n <div class="media_modal_title_wrap" my-i18n="media_modal_video"></div>\n </div>\n</div>\n\n<div class="modal-dialog">\n <div class="modal-content">\n <div my-modal-width="{{webpage.full.width - 32}}" class="media_modal_wrap embed_modal_wrap" my-modal-position animation="no">\n\n <div class="modal-body" ng-bind-html="webpage.full.html">\n\n\n </div>\n\n </div>\n </div>\n</div>'),e.put("partials/desktop/emoji_btn_tooltip.html",'<div class="composer_emoji_btn_wrap">\n\n <div class="composer_emoji_tooltip_wrap">\n <div class="composer_emoji_tooltip">\n\n <div class="composer_emoji_tooltip_tabs">\n <a ng-repeat="tab in ::tabs" href="" class="composer_emoji_tooltip_tab" ng-class="[\'composer_emoji_tooltip_tab_\' + tab, curTab == tab ? \'active\' : \'\']" ng-click="tabSelect(tab)"></a>\n </div>\n\n <div class="composer_emoji_content" ng-switch="curTab == \'stickers\'">\n <div ng-switch-when="true" class="composer_emoji_content_emoticons">\n <a class="composer_emoticon_option" href="" ng-repeat="emoji in emojis" ng-click="emojiSelect(emoji)"></a>\n </div>\n <div ng-switch-default class="composer_emoji_content_stickers">\n <a class="composer_sticker_option" href="" ng-repeat="sticker in stickers" ng-click="stickerSelect(sticker)"></a>\n </div>\n </div>\n\n </div>\n </div>\n\n <a class="composer_emoji_btn">\n <i class="icon icon-emoji"></i>\n </a>\n\n</div>'),
e.put("partials/desktop/error_modal.html",'<div class="error_modal_wrap md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body" ng-class="{md_simple_modal_alert_body: alert}">\n\n <h4 ng-if="error" class="md_simple_header" ng-switch="error.type">\n <span ng-switch-when="MEDIA_TYPE_NOT_SUPPORTED" my-i18n="error_modal_media_not_supported_title"></span>\n <span ng-switch-when="PHONECALLS_NOT_SUPPORTED" my-i18n="error_modal_phonecalls_not_supported_title"></span>\n <span ng-switch-when="USERNAME_NOT_OCCUPIED" my-i18n="error_modal_not_found_title"></span>\n <span ng-switch-when="PASSWORD_RECOVERY_NA" my-i18n="error_modal_recovery_na_title"></span>\n <span ng-switch-default ng-switch="error.code">\n <span ng-switch-when="400" my-i18n="error_modal_bad_request_title"></span>\n <span ng-switch-when="401" my-i18n="error_modal_unauthorized_title"></span>\n <span ng-switch-when="403" my-i18n="error_modal_forbidden_title"></span>\n <span ng-switch-when="404" my-i18n="error_modal_not_found_title"></span>\n <span ng-switch-when="406" my-i18n="error_modal_network_title"></span>\n <span ng-switch-when="420" my-i18n="error_modal_flood_title"></span>\n <span ng-switch-default my-i18n="error_modal_internal_title"></span>\n </span>\n <span ng-switch-when="CALLBACK_RESPONSE"><!-- empty --></span>\n </h4>\n <h4 ng-if="!error" class="md_simple_header" ng-switch="title_html !== undefined ? \'html\' : (title.length > 0 ? \'text\' : \'default\')">\n <span ng-switch-when="html" ng-bind-html="title_html"></span>\n <span ng-switch-when="text" ng-bind="title"></span>\n <span ng-switch-default my-i18n="error_modal_alert"></span>\n </h4>\n\n <div ng-if="error" class="error_modal_description" ng-switch="error.type">\n <span ng-switch-when="NETWORK_BAD_REQUEST" my-i18n="error_modal_network_description"></span>\n <span ng-switch-when="NETWORK_BAD_RESPONSE" my-i18n="error_modal_network_description"></span>\n <span ng-switch-when="FIRSTNAME_INVALID" my-i18n="error_modal_firstname_invali_description"></span>\n <span ng-switch-when="LASTNAME_INVALID" my-i18n="error_modal_lastname_invalid_description"></span>\n <span ng-switch-when="PHONE_NUMBER_INVALID" my-i18n="error_modal_phone_invalid_description"></span>\n <span ng-switch-when="USERS_TOO_MUCH" my-i18n="error_modal_users_too_much_description"></span>\n <span ng-switch-when="PHOTO_INVALID_DIMENSIONS" my-i18n="error_modal_photo_dimensions_invalid_description"></span>\n <span ng-switch-when="VIDEO_EXT_INVALID" my-i18n="error_modal_video_file_invalid_description"></span>\n <span ng-switch-when="PHOTO_CROP_SIZE_SMALL" my-i18n="error_modal_photo_too_small_description"></span>\n <span ng-switch-when="USER_NOT_USING_TELEGRAM" my-i18n="error_modal_no_phone_user_description_md"></span>\n <span ng-switch-when="USERS_NOT_USING_TELEGRAM" my-i18n="error_modal_no_phone_users_description_md"></span>\n <span ng-switch-when="PHONEBOOK_GET_CONTACTS_FAILED" my-i18n="error_modal_phonebook_required_description"></span>\n <span ng-switch-when="USERNAME_INVALID" my-i18n="error_modal_username_invalid_description"></span>\n <span ng-switch-when="USERNAME_OCCUPIED" my-i18n="error_modal_username_occupied_description"></span>\n <span ng-switch-when="MEDIA_TYPE_NOT_SUPPORTED" my-i18n="error_modal_media_not_supported_description"></span>\n <span ng-switch-when="PHONE_NUMBER_APP_SIGNUP_FORBIDDEN" my-i18n="error_modal_app_signup_forbidden_md">\n <my-i18n-param name="signup-link"><a href="https://telegram.org/dl" target="_blank">{0}</a></my-i18n-param>\n </span>\n\n <span ng-switch-when="USERNAME_NOT_OCCUPIED" my-i18n="error_modal_username_not_found_description"></span>\n <span ng-switch-when="USER_NOT_MUTUAL_CONTACT" my-i18n="error_modal_user_not_mutual_contact"></span>\n <span ng-switch-when="INVITE_HASH_INVALID" my-i18n="error_modal_invite_link_invalid"></span>\n <span ng-switch-when="INVITE_HASH_EXPIRED" my-i18n="error_modal_invite_link_invalid"></span>\n <span ng-switch-when="INVITE_HASH_EMPTY" my-i18n="error_modal_invite_link_invalid"></span>\n <span ng-switch-when="CHANNEL_PRIVATE" my-i18n="error_modal_channel_not_accessible"></span>\n <span ng-switch-when="PEER_FLOOD" my-i18n="error_modal_not_contact_flood">\n <my-i18n-param name="more-info-link"><a href="https://t.me/spambot">{0}</a></my-i18n-param>\n </span>\n <span ng-switch-when="2FA_RECENT_CONFIRM" my-i18n="error_modal_2fa_recent_confirm"></span>\n <span ng-switch-when="2FA_CONFIRM_WAIT_TIME" my-i18n="error_modal_2fa_delayed_time_md">\n <my-i18n-param name="time"><span ng-bind="error.waitTime | duration"></span></my-i18n-param>\n </span>\n <span ng-switch-when="PHONECALLS_NOT_SUPPORTED" my-i18n="error_modal_phonecalls_not_supported_description_md">\n <my-i18n-param name="user"><strong my-peer-link="error.userID"></strong></my-i18n-param>\n <my-i18n-param name="download-link"><a href="https://telegram.org/dl" target="_blank">{0}</a></my-i18n-param>\n \n </span>\n\n <span ng-switch-when="CALLBACK_RESPONSE" ng-bind-html="error.description_html"></span>\n\n <span ng-switch-when="UPDATE_SERVICE_NOTIFICATION">\n <div my-message-body="historyMessage">\n <div class="im_message_text" dir="auto"></div>\n <div class="im_message_media"></div>\n </div>\n </span>\n\n\n\n <div ng-switch-default ng-switch="error.code">\n <span ng-switch-when="400" my-i18n="error_modal_bad_request_description"></span>\n <span ng-switch-when="401" my-i18n="error_modal_unauthorized_description">\n <my-i18n-param name="login-link"><a href="#/login">{0}</a></my-i18n-param>\n </span>\n <span ng-switch-when="403" my-i18n="error_modal_forbidden_description"></span>\n <span ng-switch-when="404" my-i18n="error_modal_not_found_description"></span>\n <span ng-switch-when="420" my-i18n="error_modal_flood_description"></span>\n <span ng-switch-default my-i18n="error_modal_internal_description"></span>\n </div>\n\n </div>\n\n <div ng-if="error && error.input" class="error_modal_details" ng-switch="error.detailsShown">\n <textarea ng-switch-when="true" rows="3" onclick="this.select()">Method: {{error.input || \'N/A\'}}{{error.url ? "\\nUrl: " + error.url : \'\'}}\nResult: {{error.originalError ? error.originalError : (error.stack ? (error.name || \'\') + \' \' + (error.description || error.message) : error)}}</textarea>\n <div ng-switch-default>\n <a class="error_modal_details_link" href="" ng-click="error.detailsShown = true" my-i18n="error_modal_tech_details"></a>\n </div>\n </div>\n\n <div ng-if="!error && description.length > 0" class="error_modal_description" ng-bind="description"></div>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md btn-md-primary" ng-click="$dismiss()" my-focused>\n <span my-i18n="modal_ok"></span>\n </button>\n </div>\n\n</div>\n'),e.put("partials/desktop/footer.html",'<div class="footer_wrap" ng-controller="AppFooterController">\n\t<a class="footer_link" href="https://telegram.org" target="_blank" my-i18n="head_about"></a>\n <a class="footer_link" ng-click="openSettings()" my-i18n="im_settings"></a>\n <a class="footer_link" href="https://twitter.com/telegram_web" target="_blank" my-i18n="footer_twitter"></a>\n</div>'),e.put("partials/desktop/forwarded_messages.html",'<div class="im_message_reply clearfix" ng-class="{im_message_reply_thumbed: thumb !== false}">\n <div class="im_message_reply_border"></div>\n <div class="im_message_reply_thumb_wrap pull-left" ng-if="thumb !== false">\n <img\n class="im_message_reply_thumb"\n my-load-thumb\n thumb="thumb"\n watch="true"\n />\n </div>\n <div class="im_message_reply_author">\n <span my-peer-link="fromID" peer-watch="true"></span>\n </div>\n <div class="im_message_reply_body" ng-switch="singleMessage !== false">\n <div ng-switch-when="true">\n <span my-short-message="singleMessage"></span>\n </div>\n <div ng-switch-default>\n <span class="im_reply_message_service">\n <ng-pluralize count="count"\n when="im_X_forwarded_messages">\n </ng-pluralize>\n </span>\n </div>\n </div>\n</div>'),e.put("partials/desktop/full_document.html",'<div class="document_modal_image_wrap">\n <div class="img_fullsize_with_progress_wrap document_fullsize_with_progress_wrap" ng-style="{width: frameWidth + \'px\', height: frameHeight + \'px\'}">\n <div class="img_fullsize_progress_overlay">\n <div class="img_fullsize_progress_wrap" ng-style="{width: frameWidth + \'px\', height: frameHeight + \'px\'}">\n <div class="img_fullsize_progress progress tg_progress">\n <div class="progress-bar progress-bar-success" style="width: {{document.progress.percent}}%"></div>\n </div>\n </div>\n </div>\n <div class="img_fullsize_wrap" ng-if="thumbSrc.length > 0">\n <img\n class="img_fullsize"\n ng-src="{{thumbSrc}}"\n ng-style="{width: imageWidth + \'px\', height: imageHeight + \'px\'}"\n />\n </div>\n </div>\n <div class="document_fullsize_wrap" ng-click="toggleZoom(!zoomed)">\n <img class="document_fullsize_img" />\n </div>\n</div>'),e.put("partials/desktop/full_gif.html",'<a class="img_gif_with_progress_wrap" ng-click="toggle($event)">\n\n <div class="img_gif_image_wrap">\n\n <div class="img_gif_meta" ng-show="!isActive || needClick" ng-switch="document.progress.enabled">\n <div ng-switch-when="true" class="img_gif_meta_contents">\n <i class="icon icon-cancel">\n <i class="icon icon-bar"></i>\n <i class="icon icon-bar"></i>\n </i>\n <div my-arc-progress="document.progress.percent"></div>\n </div>\n <div ng-switch-default class="img_gif_label noselect img_gif_meta_contents"><span class="copyonly">[</span>GIF<span class="copyonly">]</span></div>\n </div>\n\n <div ng-if="document.url" ng-show="document.downloaded &amp;&amp; isActive" ng-switch="document.mime_type == \'video/mp4\'">\n <video ng-switch-when="true" width="{{document.thumb.width}}" height="{{document.thumb.height}}" loop autoplay muted class="img_gif_video">\n <source ng-src="{{document.url}}" type="video/mp4">\n </video>\n <img ng-switch-default class="img_gif_image" ng-src="{{document.url}}" width="{{document.thumb.width}}" height="{{document.thumb.height}}" />\n </div>\n <img ng-hide="document.downloaded &amp;&amp; isActive" class="img_gif_thumb" my-load-thumb thumb="document.thumb" />\n\n </div>\n\n</a>'),e.put("partials/desktop/full_photo.html",'<div class="img_fullsize_with_progress_wrap">\n <div class="img_fullsize_progress_overlay" ng-show="progress.enabled">\n <div class="img_fullsize_progress_wrap">\n <div class="img_fullsize_progress progress tg_progress" ng-show="progress.percent > 0">\n <div class="progress-bar progress-bar-success" ng-style="{width: progress.percent + \'%\'}">\n </div>\n </div>\n </div>\n </div>\n <div class="photo_full_wrap">\n <a class="photo_modal_image">\n <img class="photo_modal_image"/>\n </a>\n </div>\n <div class="photo_modal_error_wrap" ng-if="error">\n <div class="photo_modal_error" ng-if="error.html" ng-bind-html="error.html"></div>\n <div class="photo_modal_error" ng-if="error.text" ng-bind="error.text"></div>\n </div>\n</div>'),e.put("partials/desktop/full_round.html",'<a class="img_round_with_progress_wrap" ng-click="toggle($event)">\n\n <div class="img_round_image_wrap" ng-style="::{width: document.thumb.width + \'px\'}" ng-class="message.pFlags.media_unread ? \'img_round_video_unread\' : \'\'">\n\n <div class="img_round_meta" ng-show="!isActive || needClick" ng-switch="document.progress.enabled">\n <div ng-switch-when="true" class="img_round_meta_contents">\n <i class="icon icon-cancel">\n <i class="icon icon-bar"></i>\n <i class="icon icon-bar"></i>\n </i>\n <div my-arc-progress="document.progress.percent"></div>\n </div>\n \n <div ng-switch-default class="img_round_meta_contents"><i class="icon icon-videoplay"></i></div>\n </div>\n\n <div ng-if="document.url" ng-show="document.downloaded &amp;&amp; isActive" ng-switch="document.mime_type == \'video/mp4\'">\n <video ng-switch-when="true" width="{{document.thumb.width}}" height="{{document.thumb.height}}" class="img_round_video">\n <source ng-src="{{document.url}}" type="video/mp4">\n </video>\n <img ng-switch-default class="img_round_image" ng-src="{{document.url}}" width="{{document.thumb.width}}" height="{{document.thumb.height}}" />\n </div>\n <img ng-hide="document.downloaded &amp;&amp; isActive" class="img_round_thumb" my-load-thumb thumb="document.thumb" />\n\n </div>\n\n</a>'),e.put("partials/desktop/full_video.html",'<div class="img_fullsize_with_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\n <div class="img_fullsize_progress_overlay" ng-show="video.progress.enabled">\n <div class="img_fullsize_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\n <div class="img_fullsize_progress progress tg_progress">\n <div class="progress-bar progress-bar-success" style="width: {{video.progress.percent}}%"></div>\n </div>\n </div>\n </div>\n <div class="img_fullsize_wrap" ng-if="!video.url">\n <img\n class="img_fullsize"\n my-load-thumb\n thumb="video.fullThumb"\n />\n </div>\n <div class="video_full_player" ng-if="video.url" ng-switch="player.quicktime">\n <embed ng-switch-when="true" ng-src="{{video.url}}" width="{{video.full.width}}" height="{{video.full.height}}" autoplay="true" CONTROLLER="TRUE" SHOWCONTROLS="TRUE" controller="true" loop="false" pluginspace="http://www.apple.com/quicktime/" />\n <video ng-switch-default width="{{video.full.width}}" height="{{video.full.height}}" controls autoplay >\n <source ng-src="{{video.url}}" type="video/mp4">\n </video>\n </div>\n <div class="video_full_error_wrap" ng-if="error">\n <div class="video_full_error" ng-if="error.html" ng-bind-html="error.html"></div>\n <div class="video_full_error" ng-if="error.text" ng-bind="error.text"></div>\n </div>\n</div>'),e.put("partials/desktop/game_modal.html",'<div class="modal_close_wrap" ng-click="$close()">\n <div class="modal_close"></div>\n</div>\n\n<div class="media_modal_bottom_panel_wrap">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions pull-right">\n <a class="media_modal_action_btn" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap pull-left">\n <a class="media_modal_author_photo pull-left" my-peer-photolink="botID" img-class="media_modal_author_photo"></a>\n <div class="media_modal_author_name">\n <a class="media_modal_author" my-peer-link="botID"></a>\n </div>\n <div class="media_modal_date">\n <a class="media_modal_date" my-peer-link="botID" username="true"></a>\n </div>\n </div>\n\n <div class="media_modal_title_wrap" ng-bind-html="game.rTitle"></div>\n </div>\n</div>\n\n<div class="modal-dialog">\n <div class="modal-content">\n <div my-modal-width="{{game.full.width - 32}}" class="media_modal_wrap embed_modal_wrap" my-modal-position animation="no">\n\n <div class="modal-body" ng-bind-html="game.full.html" my-game-communication></div>\n\n </div>\n </div>\n</div>'),e.put("partials/desktop/head.html",'<div class="tg_page_head tg_head_wrap noselect clearfix">\n <div class="tg_head_split">\n\n <div class="tg_head_logo_wrap">\n <div class="tg_head_logo_dropdown dropdown" dropdown>\n <a class="tg_head_btn dropdown-toggle" dropdown-toggle>\n <div class="icon-hamburger-wrap">\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </div><i class="icon icon-tg-title"></i>\n </a>\n\n <ul class="dropdown-menu">\n <li><a ng-click="openGroup()">\n <i class="icon icon-new-group"></i><span my-i18n="im_new_group"></span>\n </a></li>\n <li ng-if="!isEmpty.contacts"><a ng-click="openContacts()">\n <i class="icon icon-contacts"></i><span my-i18n="im_contacts"></span>\n </a></li>\n <li><a ng-click="openSettings()">\n <i class="icon icon-settings"></i><span my-i18n="im_settings"></span>\n </a></li>\n <li><a ng-click="openFaq()">\n <i class="icon icon-faq"></i><span my-i18n="head_telegram_faq"></span>\n </a></li>\n <li><a href="" ng-click="openChangelog()">\n <i class="icon icon-about"></i><span my-i18n="head_about"></span>\n </a></li>\n </ul>\n </div>\n </div>\n\n <div class="tg_head_main_wrap" ng-switch="offline">\n <div ng-switch-when="true" class="tg_head_connecting_wrap" ng-switch="offlineConnecting">\n <span ng-switch-default class="tg_head_connecting_text"><my-i18n msgid="head_waiting_for_network"></my-i18n><span my-loading-dots></span></span>\n <a ng-switch-default class="tg_head_btn" ng-click="retryOnline()" my-i18n="head_retry"></a>\n <span ng-switch-when="true" class="tg_head_connecting_text"><my-i18n msgid="head_connecting"></my-i18n><span my-loading-dots></span></span>\n </div>\n\n <div ng-switch-default ng-if="!!historyPeer.id" class="tg_head_main_peer_wrap">\n\n <div class="tg_head_peer_dropdown tg_head_peer_media_dropdown dropdown" dropdown>\n <a class="tg_head_btn dropdown-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li><a ng-click="toggleEdit()" my-i18n="head_select_messages"></a></li>\n <li class="divider ng-scope"></li>\n <li><a ng-click="toggleMedia(\'photos\')" my-i18n="head_media_photos"></a></li>\n <li><a ng-click="toggleMedia(\'video\')" my-i18n="head_media_video"></a></li>\n <li><a ng-click="toggleMedia(\'documents\')" my-i18n="head_media_documents"></a></li>\n <li><a ng-click="toggleMedia(\'music\')" my-i18n="head_media_music"></a></li>\n <li><a ng-click="toggleMedia(\'urls\')" my-i18n="head_media_links"></a></li>\n <li><a ng-click="toggleMedia(\'audio\')" my-i18n="head_media_audio"></a></li>\n <li><a ng-click="toggleMedia(\'round\')" my-i18n="head_media_round"></a></li>\n <li ng-if="isHistoryPeerGroup()" class="divider ng-scope"></li>\n <li ng-if="isHistoryPeerGroup()"><a ng-click="toggleMedia(\'mentions\')" my-i18n="head_media_mymentions"></a></li>\n </ul>\n </div>\n\n <a class="tg_head_btn tg_head_peer_search_btn" ng-click="toggleMedia(\'search\')">\n <i class="icon icon-search"></i>\n </a>\n\n <a class="tg_head_btn tg_head_peer_return_btn" ng-show="historyFilter.mediaType.length || historyState.skipped" ng-click="returnToRecent()" ng-switch="historyState.skipped">\n <span ng-switch-when="true" my-i18n="im_show_recent_messages"></span>\n <span ng-switch-default my-i18n="im_show_all_messages"></span>\n <strong class="tg_head_peer_return_count" ng-show="historyState.missedCount > 0" ng-bind="\'+\' + historyState.missedCount"></strong>\n </a>\n\n <div class="tg_head_peer_title_wrap" ng-switch="historyFilter.mediaType">\n <div class="tg_head_peer_media" ng-switch-when="photos">\n <i class="icon icon-filter-photos"></i><span my-i18n="im_media_photos"></span>\n </div>\n <div class="tg_head_peer_media" ng-switch-when="video">\n <i class="icon icon-filter-video"></i><span my-i18n="im_media_video"></span>\n </div>\n <div class="tg_head_peer_media" ng-switch-when="documents">\n <i class="icon icon-filter-documents"></i><span my-i18n="im_media_documents"></span>\n </div>\n <div class="tg_head_peer_media" ng-switch-when="audio">\n <i class="icon icon-filter-audio"></i><span my-i18n="im_media_audio"></span>\n </div>\n <div class="tg_head_peer_media" ng-switch-when="round">\n <i class="icon icon-filter-audio"></i><span my-i18n="im_media_round"></span>\n </div>\n <div class="tg_head_peer_media" ng-switch-when="music">\n <i class="icon icon-filter-documents"></i><span my-i18n="im_media_music"></span>\n </div>\n <div class="tg_head_peer_media" ng-switch-when="urls">\n <span my-i18n="im_media_links"></span>\n </div>\n <div class="tg_head_peer_media" ng-switch-when="mentions">\n <span my-i18n="im_media_mentions"></span>\n </div>\n\n <a class="tg_head_btn" ng-switch-default ng-click="showPeerInfo()">\n <div class="tg_head_peer_info">\n <span class="tg_head_peer_title" my-peer-link="historyPeer.id" peer-watch="true" dir="auto" for-dialog="true"></span>\n <span class="tg_head_peer_status" ng-switch="historyPeer.id > 0">\n <span ng-switch-when="true" my-user-status="historyPeer.id" for-dialog="true"></span>\n <span ng-switch-default my-chat-status="-historyPeer.id"></span>\n </span>\n </div>\n </a>\n\n </div>\n\n </div>\n </div>\n </div>\n</div>'),e.put("partials/desktop/im.html",'<div my-head></div>\n\n<div class="im_page_wrap clearfix" ng-class="{im_page_peer_not_selected: !curDialog.peer}">\n\n <div class="im_page_split clearfix">\n\n <div class="im_dialogs_col_wrap noselect" ng-controller="AppImDialogsController" my-dialogs ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\n <div class="im_dialogs_panel">\n <div class="im_dialogs_search">\n <input class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="searchClear()" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n </div>\n </div>\n\n <div my-dialogs-list class="im_dialogs_col">\n <div class="im_dialogs_wrap nano">\n <div class="im_dialogs_scrollable_wrap nano-content">\n\n <div class="im_dialogs_empty_wrap" ng-if="isEmpty.dialogs && isEmpty.contacts">\n <h3 class="im_dialogs_empty_header" my-i18n="im_no_contacts"></h3>\n <p class="im_dialogs_empty_lead" my-i18n="im_get_started_long"></p>\n <button type="button" class="btn btn-primary btn-sm" ng-click="importContact()" my-i18n="im_add_contact"></button>\n <button ng-if="phonebookAvailable" type="button" class="btn btn-primary btn-sm im_dialogs_import_phonebook" ng-click="importPhonebook()" my-i18n="im_import_phonebook"></button>\n </div>\n\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-if="searchPeer">\n <a class="im_dialog im_dialog_searchpeer disabled" ng-mousedown="setSearchPeer()">\n\n <div class="im_dialog_meta pull-right">\n <div class="im_dialog_clear_searchpeer">\n <!-- <i class="icon icon-clear-searchpeer"></i> -->\n <i class="icon icon-search-clear"></i>\n </div>\n </div>\n\n <div class="im_dialog_photo pull-left" my-peer-photolink="searchPeer" img-class="im_dialog_photo" watch="true" for-dialog="true"></div>\n\n <div class="im_dialog_message_wrap">\n\n <div class="im_dialog_peer">\n <span my-peer-link="searchPeer" for-dialog="true"></span>\n </div>\n\n <div class="im_dialog_message">\n <span class="" my-i18n="conversation_search_peer"></span>\n </div>\n\n </div>\n\n </a>\n\n </li>\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID" ng-class="{active: curDialog.peerID == dialogMessage.peerID}"></li>\n </ul>\n\n <div class="im_dialogs_contacts_wrap" ng-show="myResults.length > 0">\n <h5 my-i18n="im_chat_contacts_title"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="myResult in myResults track by myResult.id" ng-class="{active: curDialog.peerID == myResult.id}">\n <a class="im_dialog" ng-mousedown="dialogSelect(myResult.peerString)">\n <div class="im_dialog_photo pull-left" my-peer-photolink="myResult.id" img-class="im_dialog_photo" watch="true" for-dialog="true"></div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" my-peer-link="myResult.id" verified="true" for-dialog="true"></span>\n </div>\n <div class="im_dialog_message" ng-switch="myResult.id > 0">\n <span ng-switch-when="true" class="im_dialog_message_text" my-user-status="::myResult.id" for-dialog="true"></span>\n <span ng-switch-default class="im_dialog_message_text" my-chat-status="::-myResult.id"></span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n\n <div class="im_dialogs_contacts_wrap" ng-show="foundPeers.length > 0">\n <h5 my-i18n="im_found_title"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="foundPeer in foundPeers track by foundPeer.id" ng-class="{active: curDialog.peerID == foundPeer.id}">\n <a class="im_dialog" ng-mousedown="dialogSelect(foundPeer.peerString)">\n <div class="im_dialog_photo pull-left" my-peer-photolink="foundPeer.id" img-class="im_dialog_photo" watch="true" for-dialog="true"></div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" my-peer-link="foundPeer.id" verified="true" for-dialog="true"></span>\n </div>\n <div class="im_dialog_message">\n <span class="im_dialog_message_text" ng-switch="foundPeer.id > 0">\n <span ng-bind="::\'@\' + foundPeer.username + \', \'"></span>\n <span ng-switch-when="true" class="im_dialog_message_text" my-user-status="::foundPeer.id" for-dialog="true"></span>\n <span ng-switch-default class="im_dialog_message_text" my-chat-status="::-foundPeer.id"></span>\n </span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n\n <div class="im_dialogs_messages_wrap" ng-show="foundMessages.length > 0">\n <h5 my-i18n="im_messages"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in foundMessages track by dialogMessage.mid" ng-class="{active: curDialog.peerID == dialogMessage.peerID &amp;&amp; curDialog.messageID == dialogMessage.id}"></li>\n </ul>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n\n <div class="im_history_col_wrap noselect" ng-controller="AppImHistoryController" ng-class="{im_history_loaded: state.loaded}">\n\n <div class="im_history_not_selected_wrap" ng-switch="isEmpty.contacts &amp;&amp; isEmpty.dialogs">\n <div ng-switch-when="true" class="im_history_no_dialogs_wrap">\n <h3 class="im_dialogs_empty_header" my-i18n="im_get_started"></h3>\n <p class="im_dialogs_empty_lead" my-i18n="im_welcome_text"></p>\n <button type="button" class="btn btn-primary btn-sm" ng-click="openSettings()" my-i18n="im_open_settings"></button>\n </div>\n <div ng-switch-default class="im_history_not_selected" my-vertical-position="0.35" padding="true" my-i18n="im_select_a_chat"></div>\n </div>\n\n <div class="im_history_selected_loading_wrap im_history_loading" my-vertical-position="0.4" padding="true">\n <div my-arc-progress stroke="4" width="32"></div>\n </div>\n\n <div class="im_history_selected_wrap">\n <div my-history class="im_history_col">\n <div my-peer-pinned-message-bar="curDialog.peerID" class="im_history_pinned_panel"></div>\n\n <div class="im_history_wrap nano">\n\n <div class="im_history_scrollable_wrap nano-content">\n\n <div class="im_history_scrollable">\n <div class="im_history" ng-class="{im_history_selectable: !historyState.botActions, im_history_select_active: historyState.selectActions}">\n\n <div class="im_history_empty_wrap" ng-show="state.empty" ng-switch="state.mayBeHasMore">\n <div ng-switch-when="true" class="im_history_loading" my-vertical-position="0.3" padding="true">\n <div my-arc-progress stroke="4" width="32"></div>\n </div>\n <div ng-switch-default class="im_history_empty" my-vertical-position="0.25" padding="true" my-i18n="im_no_messages"></div>\n </div>\n\n <div class="im_history_messages" ng-class="{im_history_messages_group: historyPeer.id < 0}">\n <div class="im_history_loading_more" ng-class="{im_history_loading_more_active: state.moreActive}">\n <div my-arc-progress stroke="3" width="26"></div>\n </div>\n <div class="im_history_messages_peer" ng-show="peerHistory.peerID == historyPeer.id" ng-repeat="peerHistory in peerHistories">\n <div class="im_history_message_wrap" my-message ng-repeat="historyMessage in peerHistory.messages"></div>\n </div>\n </div>\n\n </div>\n\n <div class="im_history_typing_wrap" ng-switch="historyState.skipped">\n\n <div ng-switch-when="true" class="im_history_loading_less" ng-class="{im_history_loading_less_active: state.lessActive}">\n <div my-arc-progress stroke="3" width="26"></div>\n </div>\n <div ng-switch-default class="im_history_typing" ng-show="historyState.typing.length > 0 &amp;&amp; !historyFilter.mediaType &amp;&amp; !state.empty" ng-switch="historyState.typing.length" my-i18n>\n <span ng-switch-when="0"></span>\n <span ng-switch-when="1" my-i18n-format="im_one_typing"></span>\n <span ng-switch-when="2" my-i18n-format="im_two_typing"></span>\n <span ng-switch-default my-i18n-format="im_many_typing"></span>\n <my-i18n-param name="name1"><a class="im_history_typing_author" my-peer-link="historyState.typing[0]"></a></my-i18n-param>\n <my-i18n-param name="name2"><a class="im_history_typing_author" my-peer-link="historyState.typing[1]"></a></my-i18n-param>\n <my-i18n-param name="count">{{historyState.typing.length - 2}}</my-i18n-param>\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n </div>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n <div class="im_bottom_panel_wrap">\n\n <div class="im_edit_panel_wrap clearfix" ng-show="historyState.actions()" ng-switch="historyState.actions()" ng-class="historyState.channelActions !== false ? \'im_edit_small_panel_wrap\' : \'\'">\n <div class="im_edit_panel_border"></div>\n\n <div ng-switch-when="bot">\n <a ng-show="historyState.botActions == \'param\'" class="btn btn-md btn-md-primary im_edit_cancel_link" ng-click="cancelBot()" my-i18n="modal_cancel"></a>\n <div class="im_edit_start_actions">\n <a class="btn btn-primary im_start_btn" ng-click="startBot()" my-i18n="im_start"></a>\n </div>\n </div>\n <div ng-switch-when="channel">\n <div class="im_edit_start_actions" ng-switch="historyState.channelActions">\n <a ng-switch-when="join" class="btn btn-primary im_start_btn" ng-click="joinChannel()" my-i18n="im_channel_join"></a>\n <a ng-switch-when="mute" class="btn btn-link im_start_btn" ng-click="togglePeerMuted(true)" my-i18n="im_channel_mute"></a>\n <a ng-switch-when="unmute" class="btn btn-link im_start_btn" ng-click="togglePeerMuted(false)" my-i18n="im_channel_unmute"></a>\n </div>\n </div>\n <div ng-switch-when="selected" class="im_edit_selected_actions" my-i18n>\n <a class="btn btn-md btn-md-primary im_edit_cancel_link" ng-click="selectedCancel()" my-i18n="modal_cancel"></a>\n <a class="btn btn-primary im_edit_forward_btn" ng-click="selectedForward()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" my-i18n-format="im_forward"></a>\n <a class="btn btn-primary im_edit_delete_btn" ng-click="selectedDelete()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" my-i18n-format="im_delete" ng-show="historyState.canDelete"></a>\n <a class="btn btn-primary im_edit_reply_btn" ng-click="selectedReply()" ng-show="selectedCount == 1 &amp;&amp; historyState.canReply" my-i18n="im_reply"></a>\n <a class="btn btn-primary im_edit_reply_btn" ng-click="selectedEdit()" ng-show="selectedCount == 1 &amp;&amp; historyState.canEdit" my-i18n="im_edit"></a>\n <my-i18n-param name="count"><strong class="im_selected_count" ng-show="selectedCount > 0" ng-bind="selectedCount"></strong></my-i18n-param>\n </div>\n </div>\n\n <div class="im_send_panel_wrap noselect" ng-show="!historyState.actions()">\n\n <div class="im_send_form_wrap1">\n\n <div class="im_send_form_wrap clearfix" ng-controller="AppImSendController" ng-class="{im_send_reply_form_wrap: draftMessage.replyToMsgID > 0}">\n\n <a class="pull-right im_panel_peer_photo" my-peer-photolink="historyPeer.id" img-class="im_panel_peer_photo" watch="true" for-dialog="true" ng-show="!draftMessage.isBroadcast">\n <i class="icon im_panel_peer_online" ng-show="historyPeer.id > 0 &amp;&amp; historyPeer.data.status._ == \'userStatusOnline\'"></i>\n </a>\n <a class="pull-left im_panel_own_photo" my-peer-photolink="draftMessage.isBroadcast ? historyPeer.id : ownID" img-class="im_panel_own_photo" watch="true" ng-click="openSettings()" no-open="true"></a>\n\n <div my-send-form draft-message="draftMessage" mentions="mentions" commands="commands" reply-keyboard="historyState.replyKeyboard"></div>\n\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>\n\n<div class="footer_wrap footer_empty"></div>\n\n<toaster-container toaster-options="{\'position-class\': \'toast-bottom-center\'}"></toaster-container>\n'),
e.put("partials/desktop/import_contact_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="doImport()" name="importContactForm">\n\n <h4 my-i18n="contact_import_modal_title"></h4>\n\n <div class="md-input-group" my-labeled-input ng-class="{\'md-input-error\': importContactForm.phone.$invalid && importContactForm.phone.$touched}" my-labeled-input>\n <label class="md-input-label" ng-switch="importContactForm.phone.$invalid && importContactForm.phone.$touched">\n <span ng-switch-when="true" my-i18n="login_incorrect_number"></span>\n <span ng-switch-default my-i18n="contact_import_modal_phone"></span>\n </label>\n <input class="md-input" my-focused type="tel" ng-model="importContact.phone" ng-pattern="/^[-\\+\\(\\)\\d\\s]{7,32}$/" my-submit-on-enter name="phone" />\n </div>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="contact_edit_modal_first_name"></label>\n <input class="md-input" type="text" ng-model="importContact.first_name" my-submit-on-enter />\n </div>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="contact_edit_modal_last_name"></label>\n <input class="md-input" type="text" ng-model="importContact.last_name" my-submit-on-enter />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'contact_import_modal_submit_active\' : \'contact_import_modal_submit\' | i18n" ng-disabled="progress.enabled"></button>\n </div>\n\n</div>'),e.put("partials/desktop/inactive.html",'<div class="inactive_page_wrap">\n <div class="tg_head_split inactive_head"></div>\n <div class="im_page_wrap">\n <div class="inactive_page_content" my-vertical-position="0.35">\n <a class="inactive_image" ng-click="reload()"></a>\n <h3 class="inactive_title" my-i18n="inactive_title"></h3>\n <div class="inactive_description" my-i18n="inactive_description_md"></div>\n <div class="inactive_actions">\n <button class="btn btn-lg btn-md btn-md-primary" ng-click="reload()" my-i18n="inactive_reload_btn" my-focused></button>\n </div>\n </div>\n </div>\n</div>'),e.put("partials/desktop/inline_results.html",'<a ng-if="botResults.switch_pm !== undefined" class="inline_switch_pm" ng-bind-html="botResults.switch_pm.rText" data-inlineid="_switch_pm_{{botResults.switch_pm.start_param}}"></a>\n\n<ul class="inline_results_wrap composer_dropdown">\n <li class="inline_result_wrap" ng-class="\'inline_result_\' + result.type" ng-repeat="result in botResults.results track by result.qID" ng-switch="result.type">\n\n <a ng-switch-when="gif" class="img_gif_with_progress_wrap" data-inlineid="{{result.qID}}" ng-style="::{width: result.thumbW, height: result.thumbH}" ng-switch="result._">\n <div class="inline_result_ind"></div>\n <div ng-switch-when="botInlineMediaResult" ng-switch="result.document.url !== undefined" class="inline_result_gif_mtproto">\n <div ng-switch-when="true" ng-switch="result.document.mime_type == \'video/mp4\'">\n <video ng-switch-when="true" width="{{result.thumbW}}" height="{{result.thumbH}}" loop autoplay class="img_gif_video">\n <source ng-src="{{result.document.url}}" type="video/mp4">\n </video>\n <img ng-switch-default class="img_gif_image" ng-src="{{result.document.url}}" width="{{result.thumbW}}" height="{{result.thumbH}}" />\n </div>\n <div ng-switch-default class="img_gif_image_wrap">\n <img class="img_gif_thumb" my-load-thumb thumb="result.document.thumb" width="{{result.thumbW}}" height="{{result.thumbH}}" />\n </div>\n </div>\n <div ng-switch-default ng-switch="result.contentUrl !== undefined" class="inline_result_gif_http">\n <div ng-switch-when="true" ng-switch="result.content_type == \'video/mp4\'">\n <video ng-switch-when="true" width="{{result.thumbW}}" height="{{result.thumbH}}" loop autoplay class="img_gif_video">\n <source ng-src="{{result.contentUrl}}" type="video/mp4">\n </video>\n <img ng-switch-default class="img_gif_image" ng-src="{{result.contentUrl}}" width="{{result.thumbW}}" height="{{result.thumbH}}" />\n </div>\n <img ng-switch-default ng-if="result.thumbUrl !== undefined" class="img_gif_thumb" width="{{result.thumbW}}" height="{{result.thumbH}}" ng-src="{{result.thumbUrl}}" />\n </div>\n </a>\n\n <a ng-switch-when="sticker" data-inlineid="{{result.qID}}" ng-style="::{width: result.thumbW, height: result.thumbH}">\n <div class="inline_result_ind"></div>\n <div class="inline_result_sticker_image" my-load-sticker document="result.document" dim="{width: result.thumbW, height: result.thumbH}"></div>\n </a>\n\n <a ng-switch-when="photo" data-inlineid="{{result.qID}}" ng-style="::{width: result.thumbW, height: result.thumbH}" ng-switch="result._">\n <div class="inline_result_ind"></div>\n <div ng-switch-when="botInlineMediaResult" class="inline_result_photo_mtproto">\n <img\n class="inline_result_photo_image"\n my-load-thumb\n thumb="result.thumb"\n ng-style="::{width: result.thumbW, height: result.thumbH}"\n />\n </div>\n <div ng-switch-default class="inline_result_photo_http">\n <img ng-if="result.thumbUrl !== undefined" class="inline_result_photo_image" width="{{result.thumbW}}" height="{{result.thumbH}}" ng-src="{{result.thumbUrl}}" />\n </div>\n </a>\n\n <a ng-switch-default class="inline_result_article clearfix" data-inlineid="{{result.qID}}">\n <div class="inline_article_thumb_wrap pull-left" ng-switch="result.thumb !== undefined ? \'thumb\' : (result.thumbUrl !== undefined ? \'thumbHttp\' : (result.send_message.geo ? \'geo\' : false))">\n <img ng-switch-when="thumb" class="inline_article_thumb" my-load-thumb\n thumb="result.thumb"/>\n <img ng-switch-when="thumbHttp" class="inline_article_thumb" ng-src="{{result.thumbUrl}}"/>\n <img\n ng-switch-when="geo"\n class="inline_article_thumb"\n my-geo-point-map="result.send_message.geo"\n width="50"\n height="50"\n />\n <div ng-switch-default class="inline_article_thumb_initials" ng-bind="result.initials"></div>\n </div>\n <div class="inline_article_content_wrap">\n <div class="inline_article_title" ng-if="::result.title.length > 0" ng-bind-html="::result.rTitle"></div>\n <div class="inline_article_description" ng-if="::result.description.length > 0" ng-bind-html="::result.rDescription"></div>\n <div class="inline_article_url" ng-if="::result.url.length > 0" ng-bind="::result.url"></div>\n </div>\n </a>\n\n </li>\n</ul>'),e.put("partials/desktop/lang_footer.html",'<div class="footer_wrap" ng-controller="AppLangSelectController">\n\t<span ng-repeat="locale in ::supportedLocales">\n\t <a class="footer_lang_link" ng-class="{active: curLocale == locale, disabled: curLocale == locale}" ng-disabled="curLocale == locale" ng-click="localeSelect(locale)" ng-bind="langNames[locale]"></a>\n\t <span ng-if="!$last" class="footer_link_divider"></span>\n\t</span>\n</div>'),e.put("partials/desktop/login.html",'<div class="login_page_wrap" my-custom-background="#e7ebf0">\n <div class="login_head_bg"></div>\n <div class="login_page">\n <div class="login_head_wrap clearfix" ng-switch="progress.enabled">\n <div ng-switch-when="true" class="login_head_submit_progress">\n <my-i18n ng-if="!credentials.phone_code_hash" msgid="login_generating_key"></my-i18n><my-i18n ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" msgid="login_checking_code"></my-i18n><my-i18n ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" msgid="login_signing_up"></my-i18n><my-i18n ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" msgid="login_checking_password"></my-i18n><span my-loading-dots></span>\n </div>\n <div ng-switch-default class="login_head_submit_wrap">\n <a class="login_head_submit_btn" ng-if="!credentials.phone_code_hash" ng-click="sendCode()">\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\n </a>\n <a class="login_head_submit_btn" ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" ng-click="logIn()">\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\n </a>\n <a class="login_head_submit_btn" ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" ng-click="logIn(true)">\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\n </a>\n <a class="login_head_submit_btn" ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" ng-click="checkPassword()">\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\n </a>\n </div>\n <a class="login_head_logo_link" href="https://telegram.org" target="_blank">\n <i class="icon icon-tg-logo"></i><i class="icon icon-tg-title"></i>\n </a>\n </div>\n\n <div class="login_form_wrap">\n <div class="error" ng-if="error.message" ng-bind="error.message"></div>\n\n <form name="mySendCodeForm" ng-if="!credentials.phone_code_hash" ng-submit="sendCode()">\n <h3 class="login_form_head" my-i18n="login_sign_in"></h3>\n <p class="login_form_lead" my-i18n="login_enter_number_description"></p>\n\n <div class="md-input-group md-input-has-value login_phone_country_input_group" ng-click="chooseCountry()">\n <label class="md-input-label" my-i18n="login_country_select_placeholder"></label>\n <div autocomplete="off" class="md-input" ng-bind="credentials.phone_country_name"></div>\n </div>\n\n <div class="login_phone_groups_wrap clearfix">\n\n <div class="md-input-group login_phone_code_input_group" ng-class="{\'md-input-error\': error.field == \'phone\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="login_code_input_placeholder"></label>\n <input autocomplete="off" class="md-input" my-focused name="phone_country" type="tel" ng-model="credentials.phone_country" />\n </div>\n\n <div class="md-input-group login_phone_num_input_group" ng-class="{\'md-input-error\': error.field == \'phone\'}" my-labeled-input ng-switch="error.field == \'phone\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_number"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_tel_input_placeholder"></label>\n <input required autocomplete="off" my-submit-on-enter class="md-input" my-focus-on="country_selected" name="phone_number" type="tel" ng-model="credentials.phone_number" />\n </div>\n\n </div>\n <div class="login_form_messaging" ng-show="progress.enabled" my-i18n="login_generating_keys_info"></div>\n </form>\n\n <form name="myLoginForm" ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" ng-submit="logIn()">\n <h3 class="login_phone_head"><span ng-bind="credentials.phone_country"></span> <span ng-bind="credentials.phone_number"></span></h3>\n <div class="login_edit_phone"><a ng-click="editPhone()" my-i18n="login_edit_number"></a></div>\n\n <div ng-switch="credentials.type._">\n <p ng-switch-when="auth.sentCodeTypeApp" class="login_smscode_lead" my-i18n="login_enter_code_label_md"></p>\n <p ng-switch-when="auth.sentCodeTypeCall" class="login_smscode_lead" my-i18n="login_enter_call_code_label_md"></p>\n <p ng-switch-default class="login_smscode_lead" my-i18n="login_enter_sms_code_label_md"></p>\n </div>\n\n <div ng-if="nextPending.type" ng-switch="nextPending.remaining > 0">\n <p ng-switch-when="true" class="login_smscode_lead">\n <span ng-switch="nextPending.type._" my-i18n>\n <span ng-switch-when="auth.codeTypeCall" my-i18n-format="login_call_remaining"></span>\n <span ng-switch-default my-i18n-format="login_code_remaining"></span>\n <my-i18n-param name="remaining" ng-bind="nextPending.remaining | duration"></my-i18n-param>\n </span>\n </p>\n <p ng-switch-default class="login_smscode_lead" ng-switch="nextPending.progress">\n <a ng-switch-when="true" ng-disabled class="disabled">\n <span my-i18n="login_code_requesting"></span><span my-loading-dots></span>\n </a>\n <a ng-switch-default ng-click="sendNext()" ng-switch="nextPending.type._">\n <span ng-switch-when="auth.codeTypeCall" my-i18n="login_code_not_received_call"></span>\n <span ng-switch-default my-i18n="login_code_not_received"></span>\n </a>\n </p>\n </div>\n\n <div class="md-input-group md-input-group-centered" ng-class="{\'md-input-error\': error.field == \'phone_code\'}" my-labeled-input ng-switch="error.field == \'phone_code\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_sms_code"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_number_input_placeholder"></label>\n <input autocomplete="off" class="md-input" my-focused name="phone_code" type="tel" ng-model="credentials.phone_code" required />\n </div>\n </form>\n\n <form name="myFullNameForm" ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" ng-submit="logIn(true)">\n <h3 class="login_form_head" my-i18n="login_your_info"></h3>\n <p class="login_form_lead" my-i18n="login_fulll_name_label"></p>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'first_name\'}" my-labeled-input ng-switch="error.field == \'first_name\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_first_name"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_first_name"></label>\n <input autocomplete="off" class="md-input" my-focused name="first_name" type="text" ng-model="credentials.first_name" my-submit-on-enter required />\n </div>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'last_name\'}" my-labeled-input ng-switch="error.field == \'last_name\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_last_name"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_last_name"></label>\n <input autocomplete="off" class="md-input" name="last_name" type="text" ng-model="credentials.last_name" my-submit-on-enter />\n </div>\n\n </form>\n\n <form name="myPasswordForm" ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" ng-submit="checkPassword()">\n <h3 class="login_form_head" my-i18n="login_password_title"></h3>\n <p class="login_form_lead" my-i18n="login_password_label"></p>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'password\'}" my-labeled-input ng-switch="error.field == \'password\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_password"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_password"></label>\n <input autocomplete="off" class="md-input" my-focused name="password" type="password" ng-model="credentials.password" my-submit-on-enter required />\n </div>\n\n <p ng-if="password.hint.length > 0" class="login_form_hint" ng-bind="password.hint"></p>\n\n <div class="login_forgot_button">\n <button class="btn btn-md" ng-click="forgotPassword($event)" my-i18n="login_password_forgot_link"></button>\n </div>\n\n <div ng-if="canReset" class="login_reset_button">\n <button class="btn btn-md btn-md-danger" ng-click="resetAccount($event)" my-i18n="login_account_reset"></button>\n </div>\n\n </form>\n\n </div>\n\n <div ng-switch="about.shown">\n <div ng-switch-when="true" class="login_footer_about_wrap" my-scroll-to-on="$init">\n <h3><span my-i18n="login_about_title"></span><a ng-click="about.shown = false" class="login_footer_about_hide" my-i18n="login_about_hide"></a></h3>\n <p my-i18n="login_about_desc1_md"></p>\n <p my-i18n="login_about_desc2_md"></p>\n <p my-i18n="login_about_desc3_md">\n <my-i18n-param name="source-link">\n <a href="https://github.com/zhukov/webogram" target="_blank">{0}</a>\n </my-i18n-param>\n </p>\n </div>\n <div ng-switch-default class="login_footer_wrap">\n <p my-i18n="login_about_intro"></p>\n <a class="logo_footer_learn_more_link" href="" ng-click="about.shown = true" my-i18n="login_about_learn"></a>\n </div>\n\n </div>\n </div>\n\n</div>\n\n'),e.put("partials/desktop/media_modal_layout.html",'<div tabindex="-1" role="dialog" class="modal" ng-style="{\'z-index\': 1050 + index*10}" ng-click="close($event)" modal-transclude></div>'),e.put("partials/desktop/megagroup_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateChannel()">\n\n <h4 my-i18n="channel_edit_modal_title"></h4>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_edit_name"></label>\n <input class="md-input" my-focused type="text" ng-model="channel.title" />\n </div>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_edit_about"></label>\n <input class="md-input" type="text" ng-model="channel.about" />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: channel.updating}" ng-click="updateChannel()" ng-bind="channel.updating ? \'group_edit_submit_active\' : \'group_edit_submit\' | i18n" ng-disabled="channel.updating"></button>\n </div>\n\n</div>'),e.put("partials/desktop/message.html",'<div class="im_message_outer_wrap hasselect" ng-click="toggleMessage(historyMessage.mid, $event)">\n\n <div class="im_message_wrap clearfix" ng-switch="::historyMessage._ == \'messageService\'">\n\n <div class="im_service_message_wrap" ng-switch-when="true" ng-switch="historyMessage.action._ == \'messageActionBotIntro\'">\n <div ng-switch-when="true" class="im_bot_intro_message_wrap">\n <div class="im_bot_intro_message_header" my-i18n="message_service_bot_intro_header"></div>\n <div class="im_bot_intro_message" ng-bind-html="::historyMessage.action.rDescription"></div>\n </div>\n <div ng-switch-default class="im_service_message">\n <a class="im_message_author" ng-if="::historyMessage.fromID > 0" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true"></a>\n <span class="im_message_service" my-service-message="historyMessage"></span>\n </div>\n\n <a ng-if="::historyMessage.action._ == \'messageActionChatEditPhoto\' || historyMessage.action._ == \'messageActionChannelEditPhoto\'" class="im_service_message_photo_thumb" href="" ng-click="openPhoto(historyMessage.action.photo.id)">\n <img\n class="im_service_message_photo_thumb"\n my-load-thumb\n thumb="historyMessage.action.photo.thumb"\n />\n </a>\n\n </div>\n\n <div ng-switch-default class="im_content_message_wrap" ng-class="::[historyMessage.pFlags.out ? \'im_message_out\' : \'im_message_in\', historyMessage.fwdFromID ? \'im_message_fwd\' : \'\']">\n <i class="icon icon-select-tick"></i>\n\n <a class="im_message_error_btn" ng-if="::historyMessage.pending || historyMessage.error || false" ng-click="historyMessage.send()">\n <i class="icon-message-status" tooltip="{{\'message_action_retry\' | i18n}}"></i>\n </a>\n <i ng-if="::historyMessage.pFlags.unread &amp;&amp; historyMessage.pFlags.out || historyMessage.pending || false" class="icon-message-status" ng-show="!historyMessage.error"></i>\n\n <a class="im_message_from_photo pull-left" my-peer-photolink="::historyMessage.fromID" img-class="im_message_from_photo"></a>\n\n <div class="im_message_meta pull-right text-right noselect">\n <div class="im_message_views_wrap" ng-if="::!historyMessage.fwdFromID && historyMessage.views > 0">\n <div class="im_message_views">\n <i class="icon-message-views"></i><span class="im_message_views_cnt" my-message-views="historyMessage.mid"></span>\n </div>\n </div>\n <span class="im_message_date clickable">\n <span class="im_message_edited" my-message-edited="historyMessage.mid"></span>\n <span class="im_message_date_text nocopy" data-content="{{::historyMessage.date | time}}"></span>\n </span>\n </div>\n\n <div class="im_message_body" ng-class="::{im_message_body_media: historyMessage._ == \'message\' &amp;&amp; historyMessage.media ? true : false}">\n\n <span class="im_message_author_wrap">\n <span class="copyonly">[<span ng-bind="::historyMessage.date | time"></span>] </span><a class="im_message_author" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true" saved-from="historyMessage.savedFrom"></a><a ng-if="::historyMessage.viaBotID && !historyMessage.fwdFromID" class="im_message_author_via" ng-click="selectInlineBot(historyMessage.viaBotID, $event)"><span class="copyonly">&nbsp;</span><span my-i18n="message_via_bot"><my-i18n-param name="bot"><span class="im_message_fwd_author" my-peer-link="historyMessage.viaBotID" username="true" no-watch="true"></span></my-i18n-param></span></a><span class="copyonly">:</span><span class="im_message_author_admin" my-message-admin-badge="historyMessage"></span>\n </span>\n\n\n <a class="im_message_reply_wrap" my-reply-message="::historyMessage.reply_to_mid" ng-if="::historyMessage.reply_to_mid"></a>\n\n <div ng-if="::historyMessage.fwdFromID || false" class="im_message_fwd_from">\n <span class="copyonly"><span my-i18n="message_forwarded_message"></span>:&nbsp;</span>\n <a class="im_message_fwd_photo pull-left" my-peer-photolink="::historyMessage.fwdFromID" img-class="im_message_fwd_photo"></a>\n <div class="im_message_fwd_author_wrap">\n <a class="im_message_fwd_author" my-peer-link="historyMessage.fwdFromID" post-id="historyMessage.fwdPostID"></a><a ng-if="::historyMessage.viaBotID" class="im_message_fwd_via" ng-click="selectInlineBot(historyMessage.viaBotID, $event)"><span class="copyonly">&nbsp;</span><span my-i18n="message_via_bot"><my-i18n-param name="bot"><span class="im_message_fwd_author" my-peer-link="historyMessage.viaBotID" username="true" no-watch="true"></span></my-i18n-param></span></a><span class="copyonly">&nbsp;[</span><span class="im_message_fwd_date" ng-bind="::historyMessage.fwd_from.date | dateOrTime"></span><span class="copyonly">]&nbsp;</span>\n <span class="im_message_views_inline" ng-if="::historyMessage.views > 0">\n <i class="icon-message-views"></i><span class="im_message_views_cnt" my-message-views="historyMessage.mid"></span>\n </span>\n </div>\n </div>\n\n <div my-message-body="historyMessage">\n <div class="im_message_text" dir="auto"></div>\n <div class="im_message_media"></div>\n <div class="im_message_sign"></div>\n <div class="im_message_keyboard"></div>\n </div>\n\n\n </div>\n\n </div>\n </div>\n\n</div>\n\n'),e.put("partials/desktop/message_attach_contact.html",'<div class="im_message_contact">\n <a ng-if="::media.user_id > 0" class="im_message_contact_photo pull-left" my-peer-photolink="media.user_id" img-class="im_message_contact_photo" user-override="media"></a>\n <div class="im_message_contact_name" ng-switch="media.user_id > 0">\n <a ng-switch-when="true" my-peer-link="media.user_id" user-override="media"></a>\n <span ng-switch-default ng-bind-html="::media.rFullName"></span>\n </div>\n <div class="im_message_contact_phone" ng-bind="::media.phone_number | phoneNumber"></div>\n</div>'),e.put("partials/desktop/message_attach_document.html",'<div ng-switch="::media.document.type">\n\n <div ng-switch-when="gif" my-load-gif document="media.document"></div>\n\n <div ng-switch-when="round" my-load-round document="media.document"></div>\n\n <div ng-switch-when="sticker" my-load-sticker document="media.document" open="true"></div>\n\n <div ng-switch-when="voice" class="im_message_audio">\n <div my-audio-player audio="media.document"></div>\n </div>\n\n <div ng-switch-when="audio" class="im_message_audio">\n <div my-audio-player audio="media.document"></div>\n </div>\n\n <div ng-switch-when="video" class="im_message_video im_message_document_thumbed">\n <a class="im_message_video_thumb" ng-click="videoOpen()" ng-style="::{width: media.document.thumb.width + \'px\'}">\n <span class="im_message_video_duration nocopy" data-content="{{::media.document.duration | duration}}"></span>\n <i class="icon icon-videoplay"></i>\n <img\n class="im_message_video_thumb im_message_video_thumb_blurred"\n my-load-thumb\n thumb="media.document.thumb"\n />\n </a>\n\n <div class="im_message_document_info">\n <div class="im_message_document_name_wrap">\n <span class="copyonly">[</span><span class="im_message_document_name" my-i18n="message_attach_video_video"></span><span class="copyonly">&nbsp;<span ng-bind="::media.document.duration | duration"></span>]</span>\n <span class="im_message_document_size" ng-if="!media.document.progress.enabled" ng-bind="::media.document.size | formatSize"></span>\n <span class="im_message_document_size" ng-if="media.document.progress.enabled" ng-bind="media.document.progress | formatSizeProgress"></span>\n </div>\n <div class="im_message_document_actions noselect" ng-if="!media.document.progress.enabled">\n <a href="" ng-click="docSave()" ng-switch="media.document.downloaded">\n <span class="nocopy" ng-switch-when="true" my-i18n="message_attach_video_save"></span>\n <span class="nocopy" ng-switch-default my-i18n="message_attach_video_download"></span>\n </a>\n <a class="nocopy" href="" ng-click="videoOpen()" my-i18n="message_attach_video_play"></a>\n </div>\n <div class="clearfix im_message_cancelable_progress_wrap" ng-if="media.document.progress.enabled">\n <a class="im_message_media_progress_cancel pull-right nocopy" ng-click="media.document.progress.cancel()" my-i18n="modal_cancel"></a>\n <div class="im_message_download_progress_wrap">\n <div class="progress tg_down_progress">\n <div class="progress-bar progress-bar-success" ng-style="{width: media.document.progress.percent + \'%\'}"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-switch-default class="im_message_document clearfix" ng-class="{im_message_document_thumbed: !!media.document.thumb, im_message_document_progress: media.document.progress.enabled}">\n\n <a ng-if="::!media.document.thumb" class="im_message_file_button" ng-click="docOpen()" ng-class="{im_message_file_button_dl_doc: media.document.downloaded}">\n <i class="im_message_file_button_icon"></i>\n </a>\n <a ng-if="::media.document.thumb" ng-click="docOpen()">\n <div class="im_message_document_thumb_wrap">\n <img\n class="im_message_document_thumb"\n my-load-thumb\n thumb="media.document.thumb"\n />\n </div>\n </a>\n\n <div class="im_message_document_info">\n <div class="im_message_document_name_wrap">\n <a href="" ng-attr-title="{{media.document.file_name}}" ng-attr-data-name="{{media_file_name_without_ext}}" ng-attr-data-ext="{{media_file_ext}}" ng-click="docOpen()" class="im_message_document_name"></a><span class="copyonly">[<span ng-bind="::media.document.file_name"></span>]</span>\n <span class="im_message_document_size" ng-if="!media.document.progress.enabled" ng-bind="::media.document.size | formatSize"></span>\n <span class="im_message_document_size" ng-if="media.document.progress.enabled" ng-bind="media.document.progress | formatSizeProgress"></span>\n </div>\n <div class="im_message_document_actions" ng-if="!media.document.progress.enabled" ng-switch="media.document.downloaded">\n <a class="nocopy" ng-switch-when="true" href="" ng-click="docSave()" my-i18n="message_attach_document_save"></a>\n <a class="nocopy" ng-switch-default href="" ng-click="docSave()" my-i18n="message_attach_document_download"></a>\n <a class="nocopy" ng-if="::media.document.withPreview" href="" ng-click="docOpen()" my-i18n="message_attach_document_open"></a>\n </div>\n <div class="clearfix im_message_cancelable_progress_wrap" ng-if="media.document.progress.enabled">\n <a class="im_message_media_progress_cancel pull-right nocopy" ng-click="media.document.progress.cancel()" my-i18n="modal_cancel"></a>\n <div class="im_message_download_progress_wrap">\n <div class="progress tg_down_progress">\n <div class="progress-bar progress-bar-success" ng-style="{width: media.document.progress.percent + \'%\'}"></div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n</div>\n<div ng-if="::media.rCaption" class="im_message_document_caption" ng-bind-html="::media.rCaption"></div>\n'),e.put("partials/desktop/message_attach_game.html",'<div class="im_message_game">\n <div class="im_message_webpage_wrap clearfix">\n <div class="im_message_webpage_photo">\n <div class="im_message_webpage_title">\n <a href="" ng-click="openGame()" target="_blank" rel="noopener noreferrer" ng-bind-html="media.game.rTitle"></a>\n </div>\n <div class="im_message_webpage_description im_message_game_description" ng-bind-html="::media.game.rDescription"></div>\n <div class="im_message_webpage_description im_message_game_message"></div>\n <a class="im_message_photo_thumb" ng-click="openGame()" ng-style="::{width: media.game.photo.thumb.width + \'px\'}">\n <img\n class="im_message_photo_thumb"\n my-load-thumb\n thumb="media.game.photo.thumb"\n alt="[{{::media.game.title}}]"\n />\n </a>\n </div>\n </div>\n</div>\n'),e.put("partials/desktop/message_attach_geo.html",'<a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_geopoint">\n <img\n class="im_message_venue_geopoint_image"\n my-geo-point-map="media.geo"\n width="300"\n height="150"\n alt="[{{::\'conversation_media_location\' | i18n}} {{::media.mapUrl}}]"\n />\n</a>'),e.put("partials/desktop/message_attach_pending.html",'<div class="im_message_document im_message_upload_file" ng-class="::\'im_message_upload_\' + media.type">\n <div class="im_message_file_button im_message_file_button_upload">\n <i class="im_message_file_button_icon"></i>\n </div>\n <div class="im_message_document_info">\n <div class="im_message_document_name_wrap">\n <span ng-attr-title="{{media.file_name}}" ng-attr-data-name="{{media_file_name_without_ext}}" ng-attr-data-ext="{{media_file_ext}}" class="im_message_document_name"></span>\n <span class="im_message_document_size" ng-if="media.progress" ng-bind="media.progress | formatSizeProgress"></span>\n </div>\n <div class="clearfix im_message_cancelable_progress_wrap">\n <a class="im_message_media_progress_cancel pull-right" ng-click="media.progress.cancel()" my-i18n="modal_cancel"></a>\n <div class="im_message_download_progress_wrap">\n <div class="progress tg_up_progress">\n <div class="progress-bar progress-bar-success" role="progressbar" ng-style="{width: media.progress.percent + \'%\'}"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n'),
e.put("partials/desktop/message_attach_photo.html",'<a class="im_message_photo_thumb" ng-click="openPhoto(media.photo.id, {m: messageId})" ng-style="::{width: media.photo.thumb.width + \'px\'}" ng-mouseover="preloadPhoto(media.photo.id)">\n <img\n class="im_message_photo_thumb"\n my-load-thumb\n thumb="media.photo.thumb"\n alt="[{{::\'conversation_media_photo\' | i18n}}]"\n />\n</a>\n<div ng-if="::media.rCaption" class="im_message_photo_caption" ng-bind-html="::media.rCaption"></div>'),e.put("partials/desktop/message_attach_venue.html",'<div class="im_message_venue clearfix">\n\n <a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_venue_geopoint_wrap">\n <img\n class="im_message_venue_geopoint_image"\n my-geo-point-map="media.geo"\n width="100"\n height="100"\n alt="[{{::\'conversation_media_location\' | i18n}} {{::media.mapUrl}}]"\n />\n </a>\n\n <div class="im_message_venue_info">\n <div class="im_message_venue_title_wrap">\n <a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_document_name" ng-bind="::media.title"></a>\n </div>\n <div class="im_message_venue_address" ng-bind="::media.address"></div>\n </div>\n\n</div>\n'),e.put("partials/desktop/message_attach_webpage.html",'<div ng-show="media.webpage._ == \'webPage\'" class="im_message_webpage_wrap clearfix" ng-switch="media.webpage.type">\n <div ng-switch-when="photo" class="im_message_webpage_photo">\n <div class="im_message_webpage_title">\n <a href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="media.webpage.rTitle"></a>\n </div>\n <div ng-if="media.webpage.description.length" class="im_message_webpage_description" ng-bind-html="media.webpage.rDescription"></div>\n <a class="im_message_photo_thumb" ng-click="openPhoto(media.webpage.photo.id, {w: media.webpage.id, m: messageId})" ng-style="::{width: media.webpage.photo.thumb.width + \'px\'}" ng-mouseover="preloadPhoto(media.webpage.photo.id)">\n <img\n class="im_message_photo_thumb"\n my-load-thumb\n thumb="media.webpage.photo.thumb"\n alt="[{{::\'conversation_media_photo\' | i18n}}]"\n />\n </a>\n </div>\n <div ng-switch-when="video" class="im_message_webpage_video">\n <div class="im_message_webpage_site" ng-bind="media.webpage.site_name || media.webpage.display_url"></div>\n <div class="im_message_webpage_title">\n <a ng-click="openEmbed($event)" href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="media.webpage.rTitle"></a>\n </div>\n <div ng-if="media.webpage.description.length" class="im_message_webpage_description" ng-bind-html="media.webpage.rDescription"></div>\n <a class="im_message_video_thumb" ng-click="openEmbed($event)" ng-href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" ng-style="::{width: video.thumb.width + \'px\'}">\n <span ng-if="media.webpage.duration > 0" class="im_message_video_duration nocopy" data-content="{{::media.webpage.duration | duration}}"></span>\n <i class="icon icon-videoplay"></i>\n <img\n class="im_message_video_thumb"\n my-load-thumb\n thumb="media.webpage.photo.thumb"\n alt="[{{::\'conversation_media_video\' | i18n}}]"\n />\n </a>\n </div>\n\n <div ng-switch-when="document" class="im_message_webpage_document">\n <div my-message-document="media.webpage" message-id="messageId"></div>\n </div>\n\n <div ng-switch-when="gif" class="im_message_webpage_gif">\n <div class="im_message_webpage_title">\n <a href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="media.webpage.rTitle"></a>\n </div>\n <div my-message-document="media.webpage" message-id="messageId"></div>\n </div>\n\n <div ng-switch-default class="im_message_webpage_article">\n <a ng-if="media.webpage.photo" href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" class="im_message_webpage_article_photo pull-right">\n <img\n class="im_message_article_thumb"\n my-load-thumb\n thumb="media.webpage.photo.thumb"\n />\n </a>\n <div ng-if="media.webpage.site_name" class="im_message_webpage_site" ng-bind="media.webpage.site_name"></div>\n <div class="im_message_webpage_title">\n <a ng-click="openEmbed($event)" href="{{media.webpage.url}}" target="_blank" ng-bind-html="media.webpage.rTitle"></a>\n </div>\n <div ng-if="media.webpage.description.length" class="im_message_webpage_description" ng-bind-html="media.webpage.rDescription"></div>\n </div>\n</div>\n'),e.put("partials/desktop/message_media.html",'<div ng-switch="::media._">\n <div ng-switch-when="messageMediaPhoto" my-message-photo="media" message-id="messageId"></div>\n <div ng-switch-when="messageMediaDocument" my-message-document="media" message-id="messageId"></div>\n <div ng-switch-when="messageMediaGeo" my-message-geo="media"></div>\n <div ng-switch-when="messageMediaVenue" my-message-venue="media"></div>\n <div ng-switch-when="messageMediaContact" my-message-contact="media"></div>\n <div ng-switch-when="messageMediaWebPage" my-message-webpage="media" message-id="messageId"></div>\n <div ng-switch-when="messageMediaGame" my-message-game="media" message-id="messageId"></div>\n <div ng-switch-when="messageMediaPending" my-message-pending="media"></div> \n\n <div ng-switch-when="messageMediaUnsupported">\n <div class="im_message_text" my-i18n="message_attach_unsupported">\n <my-i18n-param name="link"><a href="https://web.telegram.org" target="_blank">web.telegram.org</a></my-i18n-param>\n </div>\n </div>\n\n <div ng-switch-when="messageMediaUnsupportedWeb">\n <div class="im_message_text" my-i18n="message_attach_unsupported">\n <my-i18n-param name="link"><a href="https://web.telegram.org" target="_blank">web.telegram.org</a></my-i18n-param>\n </div>\n </div>\n</div>'),e.put("partials/desktop/message_service.html",'<span ng-switch="::historyMessage.action._">\n <my-i18n>\n <span ng-switch-when="messageActionChatCreate" my-i18n-format="message_service_created_group"></span>\n <span ng-switch-when="messageActionChatEditTitle" my-i18n-format="message_service_changed_group_name"></span>\n <my-i18n-param name="group-name">&laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;</my-i18n-param>\n </my-i18n>\n <span ng-switch-when="messageActionChatEditPhoto" my-i18n="message_service_changed_group_photo"></span>\n <span ng-switch-when="messageActionChatDeletePhoto" my-i18n="message_service_removed_group_photo"></span>\n <span ng-switch-when="messageActionChatJoinedByLink" my-i18n="message_service_joined_by_link"></span>\n <span ng-switch-when="messageActionChatReturn" my-i18n="message_service_returned_to_group"></span>\n <span ng-switch-when="messageActionChatJoined" my-i18n="message_service_joined"></span>\n <span ng-switch-when="messageActionChatAddUser" my-i18n="message_service_invited_user">\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.user_id" color="true"></a></my-i18n-param>\n </span>\n <span ng-switch-when="messageActionChatAddUsers" my-i18n="message_service_invited_users">\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.users[0]" color="true"></a></my-i18n-param>\n <my-i18n-param name="num-more"><span ng-bind="historyMessage.action.users.length - 1"></span></my-i18n-param>\n </span>\n <span ng-switch-when="messageActionChatLeave" my-i18n="message_service_left_group"></span>\n <span ng-switch-when="messageActionChatDeleteUser" my-i18n="message_service_kicked_user">\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.user_id" color="true"></a></my-i18n-param>\n </span>\n\n <span ng-switch-when="messageActionChatMigrateTo" my-i18n="message_service_converted_to_supergroup"></span>\n <span ng-switch-when="messageActionChannelMigrateFrom" my-i18n="message_service_converted_to_supergroup"></span>\n <span ng-switch-when="messageActionChannelCreate" my-i18n="message_service_created_channel"></span>\n <span ng-switch-when="messageActionChannelEditTitle" my-i18n="message_service_changed_channel_name">\n <my-i18n-param name="channel-name">&laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;</my-i18n-param>\n </span>\n <span ng-switch-when="messageActionChannelEditPhoto" my-i18n="message_service_changed_channel_photo"></span>\n <span ng-switch-when="messageActionChannelDeletePhoto" my-i18n="message_service_removed_channel_photo"></span>\n\n <span ng-switch-when="messageActionGameScore" my-i18n="message_service_scored_game">\n <my-i18n-param name="scored">\n <ng-pluralize count="historyMessage.action.score"\n when="message_service_scored_X"></ng-pluralize>\n </my-i18n-param>\n <my-i18n-param name="message"><a class="im_service_message_pinned" my-pinned-message="::historyMessage.reply_to_mid"></a></my-i18n-param>\n </span>\n\n <span ng-switch-when="messageActionPinMessage" my-i18n="message_service_pinned_message">\n <my-i18n-param name="message"><a class="im_service_message_pinned" my-pinned-message="::historyMessage.reply_to_mid"></a></my-i18n-param>\n </span>\n\n <a ng-switch-when="messageActionPhoneCall" class="im_service_message_phonecall" ng-click="phoneCallClick(historyMessage.mid)" ng-switch="historyMessage.action.type">\n <span ng-switch-when="out_missed" my-i18n="message_service_phonecall_canceled"></span>\n <span ng-switch-when="in_missed" my-i18n="message_service_phonecall_missed"></span>\n <span ng-switch-when="out_ok" my-i18n="message_service_phonecall_outgoing"></span>\n <span ng-switch-when="in_ok" my-i18n="message_service_phonecall_incoming"></span>\n <span ng-if="historyMessage.action.duration > 0" ng-bind="historyMessage.action.duration | duration" class="im_service_message_phonecall_duration"></span>\n </a>\n\n <span ng-switch-when="messageActionPaymentSent" my-i18n="message_service_payment_sent"></span>\n\n <span ng-switch-when="messageActionScreenshotTaken" my-i18n="message_service_screenshot_taken"></span>\n\n <span ng-switch-when="messageActionCustomAction" ng-bind="historyMessage.action.message"></span>\n \n\n <span ng-switch-default my-i18n="message_service_unsupported_action">\n <my-i18n-param name="action"><span ng-bind="historyMessage.action._"></span></my-i18n-param>\n </span>\n</span>\n'),e.put("partials/desktop/password_recovery_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="checkCode()">\n\n <h4 my-i18n="login_recovery_title"></h4>\n\n <div class="md_simple_form_description" my-i18n="login_recovery_description_md">\n <my-i18n-param name="email">\n <strong ng-bind="recovery.email_pattern"></strong>\n </my-i18n-param>\n </div>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': recovery.error_field == \'code\'}" my-labeled-input ng-switch="recovery.error_field == \'code\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_code_incorrect"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_code_placeholder"></label>\n <input class="md-input" my-focused type="text" ng-model="recovery.code" name="code" my-focused />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: recovery.updating}" ng-click="checkCode()" ng-disabled="recovery.updating" ng-bind="recovery.updating ? \'password_recover_active\' : \'password_recover_submit\' | i18n"></button>\n\n </div>\n\n</div>'),e.put("partials/desktop/password_update_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updatePassword()">\n\n <h4 ng-switch="action">\n <my-i18n ng-switch-when="disable" msgid="password_delete_title"></my-i18n>\n <my-i18n ng-switch-default msgid="password_change_title"></my-i18n>\n </h4>\n\n <div ng-if="password._ != \'account.noPassword\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.error_field == \'cur_password\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="password_current_placeholder"></label>\n <input class="md-input" my-focused type="password" ng-model="passwordSettings.cur_password" name="cur_password" my-focus-on="cur_password_focus" />\n </div>\n\n <div ng-if="action != \'disable\'" class="md-input-group md-input-grouped" ng-class="{\'md-input-error\': passwordSettings.error_field == \'new_password\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="password_new_placeholder"></label>\n <input class="md-input" type="password" ng-model="passwordSettings.new_password" name="new_password" my-focus-on="new_password_focus" />\n </div>\n\n <div ng-if="action != \'disable\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.confirm_password && passwordSettings.new_password && passwordSettings.confirm_password != passwordSettings.new_password}" my-labeled-input>\n <label class="md-input-label" my-i18n="password_confirm_placeholder"></label>\n <input class="md-input" type="password" ng-model="passwordSettings.confirm_password" name="confirm_password" my-focus-on="confirm_password_focus" />\n </div>\n\n <div ng-if="action != \'disable\'" class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="password_hint_placeholder"></label>\n <input class="md-input" type="text" ng-model="passwordSettings.hint" name="hint" />\n </div>\n\n <div ng-if="action != \'disable\'" class="md_simple_form_description" my-i18n="password_create_description"></div>\n\n <div ng-if="action != \'disable\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.error_field == \'email\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="password_email_placeholder"></label>\n <input class="md-input" type="text" ng-model="passwordSettings.email" name="email" />\n </div>\n\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: passwordSettings.updating}" ng-click="updatePassword()" ng-disabled="passwordSettings.updating" ng-switch="action">\n <span ng-switch-when="disable" ng-bind="passwordSettings.updating ? \'password_delete_active\' : \'password_delete_submit\' | i18n"></span>\n <span ng-switch-default ng-bind="passwordSettings.updating ? \'password_create_active\' : \'password_create_submit\' | i18n"></span>\n </button>\n\n </div>\n\n</div>'),e.put("partials/desktop/peer_pinned_message_bar.html",'<div class="im_history_pinned_wrap" ng-if="pinnedMessageID > 0">\n <a class="im_history_pinned_hide" ng-mousedown="hidePinned()"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\n <a class="im_history_pinned_message" my-reply-message="pinnedMessageID" watch="true"></a>\n</div>'),e.put("partials/desktop/peer_select.html",'<div class="peer_select_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head md_modal_head_simple">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\n </div>\n </div>\n <div class="md_modal_title" my-i18n="conversations_modal_forward_title"></div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="im_dialogs_modal_col_wrap" ng-controller="AppImDialogsController" my-dialogs ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\n <div class="im_dialogs_panel">\n <div class="im_dialogs_search">\n <input my-focused class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n </div>\n </div>\n <div my-dialogs-list modal="true" class="im_dialogs_modal_col">\n <div class="im_dialogs_wrap nano">\n <div class="im_dialogs_scrollable_wrap nano-content">\n <ul class="im_dialogs_modal_list nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID" ng-class="{active: selectedPeers[dialogMessage.peerID] !== undefined}"></li>\n </ul>\n <div class="im_dialogs_contacts_wrap" ng-show="myResults.length > 0">\n <h5 my-i18n="conversation_select_modal_chats_contacts"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="myResult in myResults track by myResult.id" ng-class="{active: selectedPeers[myResult.id] !== undefined}">\n <a class="im_dialog" ng-click="dialogSelect(myResult.peerString)">\n <div class="im_dialog_photo pull-left" my-peer-photolink="::myResult.id" img-class="im_dialog_photo"></div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" my-peer-link="myResult.id"></span>\n </div>\n <div class="im_dialog_message" ng-switch="myResult.id > 0">\n <span ng-switch-when="true" class="im_dialog_message_text" my-user-status="::myResult.id"></span>\n <span ng-switch-default class="im_dialog_message_text" my-chat-status="::-myResult.id"></span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n\n <div class="im_dialogs_contacts_wrap" ng-show="foundPeers.length > 0">\n <h5 my-i18n="im_found_title"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="foundPeer in foundPeers track by foundPeer.id" ng-class="{active: selectedPeers[foundPeer.id] !== undefined}">\n <a class="im_dialog" ng-click="dialogSelect(foundPeer.peerString)">\n <div class="im_dialog_photo pull-left" my-peer-photolink="foundPeer.id" img-class="im_dialog_photo" watch="true"></div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" my-peer-link="foundPeer.id"></span>\n </div>\n <div class="im_dialog_message">\n <span class="im_dialog_message_text" ng-bind="::\'@\' + foundPeer.username"></span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div class="md_modal_footer peer_select_modal_footer clearfix" ng-if="multiSelect">\n <button class="btn btn-md btn-md-primary pull-right" ng-click="submitSelected()" my-i18n="conversations_modal_forward_submit"></button>\n\n <div class="peer_select_modal_recipients_wrap" ng-switch="!selectedCount">\n <span ng-switch-when="true" ng-switch="shareLink.loading ? \'url_loading\' : (shareLink.url ? \'url\' : \'empty\')">\n <span ng-switch-when="url_loading" class="peer_select_modal_recipients_empty" my-i18n="conversations_modal_share_url_loading">\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n </span>\n <span ng-switch-when="url">\n <a class="peer_select_modal_share_link" my-copy-link ng-bind="shareLink.url | shortUrl" data-clipboard-text="{{shareLink.url}}"></a>\n </span>\n <span ng-switch-default class="peer_select_modal_recipients_empty" my-i18n="conversations_modal_select_recipients"></span>\n </span>\n <span ng-switch-default>\n <span class="peer_select_modal_recipients_name" my-i18n="conversations_modal_recipients"></span>\n <span class="peer_select_modal_recipients_list" ng-switch="selectedCount" my-i18n>\n <span ng-switch-when="1" my-i18n-format="conversation_one_selected"></span>\n <span ng-switch-when="2" my-i18n-format="conversation_two_selected"></span>\n <span ng-switch-default my-i18n-format="conversation_many_selected"></span>\n <my-i18n-param name="name1"><span class="peer_select_modal_recipient" ng-bind-html="selectedPeers[selectedPeerIDs[0]][selectedPeerIDs[0] > 0 ? \'rFullName\' : \'rTitle\']"></span></my-i18n-param>\n <my-i18n-param name="name2"><span class="peer_select_modal_recipient" ng-bind-html="selectedPeers[selectedPeerIDs[1]][selectedPeerIDs[1] > 0 ? \'rFullName\' : \'rTitle\']"></span></my-i18n-param>\n <my-i18n-param name="count">{{selectedCount - 2}}</my-i18n-param>\n </span>\n\n </span>\n </div>\n </div>\n\n <div class="md_modal_footer md_modal_footer_empty clearfix" ng-if="!multiSelect"></div>\n\n</div>\n'),e.put("partials/desktop/photo_modal.html",'<div class="modal_prev_wrap" ng-class="{modal_prev_active_wrap: nav.hasPrev}" ng-click="nav.prev($event)">\n <div class="modal_prev"></div>\n</div>\n<div class="modal_next_wrap" ng-class="{modal_next_active_wrap: nav.hasNext}" ng-click="nav.next($event)">\n <div class="modal_next"></div>\n</div>\n<div class="modal_close_wrap modal_close_wrap_wnext" ng-click="$close()">\n <div class="modal_close"></div>\n</div>\n\n<div class="media_modal_bottom_panel_wrap">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions">\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\n <i class="media_modal_action_btn_download"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="canForward" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="canDelete" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\n <i class="media_modal_action_btn_delete"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="!webpageID && photo.user_id">\n <a class="media_modal_author_photo pull-left" my-peer-photolink="photo.user_id" img-class="media_modal_author_photo" watch="true"></a>\n <div class="media_modal_author_name">\n <a class="media_modal_author" my-peer-link="photo.user_id" peer-watch="true"></a>\n </div>\n <div class="media_modal_date" ng-if="photo.date > 0" ng-switch="messageID > 0">\n <a ng-switch-when="true" class="media_modal_date" ng-click="goToMessage()" ng-bind="photo.date | dateOrTime :true"></a>\n <span ng-switch-default ng-bind="photo.date | dateOrTime :true"></span>\n </div>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="webpageID">\n <div class="media_modal_author_name">\n <a class="media_modal_author" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\n </div>\n <div class="media_modal_date" ng-bind="webpage.site_name || webpage.display_url"></div>\n </div>\n\n <div class="media_modal_title_wrap" ng-switch="count > 1 &amp;&amp; pos > 0">\n <my-i18n ng-switch-when="true" msgid="media_modal_photo_index">\n <my-i18n-param name="pos" ng-bind="pos"></my-i18n-param>\n <my-i18n-param name="count" ng-bind="count"></my-i18n-param>\n </my-i18n>\n <my-i18n ng-switch-default msgid="media_modal_photo">\n </div>\n </div>\n</div>\n\n<div class="modal-dialog" my-modal-nav next="nav.next()" prev="nav.prev()">\n <div class="modal-content">\n <div my-modal-width="{{photo.full.modalWidth}}" class="media_modal_wrap photo_modal_wrap" my-modal-position animation="no">\n\n <div class="modal-body">\n\n <div class="photo_modal_image_wrap" my-load-full-photo full-photo="photo.full" thumb-location="photo.thumb.location" ng-click="nav.next()"></div>\n\n </div>\n\n </div>\n </div>\n</div>\n\n'),e.put("partials/desktop/pinned_message.html",'<span ng-switch="pinnedMessage.loading"><span ng-switch-when="true" my-i18n="im_reply_loading"><my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param></span><span ng-switch-default my-short-message="pinnedMessage"></span></span>'),e.put("partials/desktop/profile_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateProfile()">\n\n <h4 my-i18n="profile_edit_modal_title"></h4>\n\n <div class="md-input-group" ng-class="{\'has-error\': error.field == \'first_name\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="profile_edit_first_name"></label>\n <input class="md-input" my-focused type="text" ng-model="profile.first_name" />\n </div>\n\n <div class="md-input-group" ng-class="{\'has-error\': error.field == \'last_name\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="profile_edit_last_name"></label>\n <input class="md-input" type="text" ng-model="profile.last_name" />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: profile.updating}" ng-click="updateProfile()" ng-bind="profile.updating ? \'profile_edit_submit_active\' : \'profile_edit_submit\' | i18n" ng-disabled="profile.updating"></button>\n </div>\n\n</div>\n'),e.put("partials/desktop/reply_markup.html",'<div class="reply_markup_wrap">\n <div class="reply_markup" ng-class="replyMarkup.splitCount ? \'reply_markup_h\' + replyMarkup.splitCount : \'\'">\n <div class="reply_markup_row" ng-repeat="row in replyMarkup.rows">\n <div class="reply_markup_button_wrap" ng-class="\'reply_markup_button_w\' + row.buttons.length" ng-repeat="button in row.buttons" ng-switch="button._">\n <a ng-switch-when="keyboardButtonUrl" class="btn reply_markup_button" href="{{button.pUrl}}" ng-bind-html="::button.rText"></a>\n <button ng-switch-default class="btn reply_markup_button" ng-bind-html="::button.rText" ng-click="buttonClick(button)"></button>\n </div>\n </div>\n </div>\n</div>'),e.put("partials/desktop/reply_message.html",'<div class="im_message_reply clearfix" ng-class="{im_message_reply_thumbed: thumb !== false}" ng-switch="replyMessage.loading">\n <div class="im_message_reply_border"></div>\n <div class="im_message_reply_loading" ng-switch-when="true" my-i18n="im_reply_loading">\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n </div>\n <div class="im_message_reply_thumb_wrap pull-left" ng-if="thumb !== false">\n <img\n class="im_message_reply_thumb"\n my-load-thumb\n thumb="thumb"\n watch="true"\n />\n </div>\n <div class="im_message_reply_author" ng-switch-default ng-switch="isEdit">\n <span class="copyonly">&gt;&nbsp;</span>\n <span ng-switch-when="true" my-i18n="im_edit_message_title"></span>\n <span ng-switch-default my-peer-link="replyMessage.fromID" peer-watch="true"></span>\n </div>\n <div class="im_message_reply_body" ng-switch-default>\n <span class="copyonly">&gt;&nbsp;</span>\n <span my-short-message="replyMessage"></span>\n </div>\n</div>'),e.put("partials/desktop/send_form.html",'<form class="im_send_form" ng-class="{im_send_form_empty: !draftMessage.text.length, composer_progress_enabled: draftMessage.inlineProgress, im_voice_recording: voiceRecorder.recording, im_processing_recording: voiceRecorder.processing}">\n\n <div class="im_send_form_inline_results" my-inline-results="inlineResults"></div>\n\n <div class="im_send_reply_wrap" ng-if="draftMessage.replyToMsgID > 0">\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.replyClear(true)"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\n <a class="im_message_reply_wrap" my-reply-message="draftMessage.replyToMsgID" watch="true" edit="{{draftMessage.type == \'edit\'}}"></a>\n </div>\n\n <div class="im_send_reply_wrap im_send_fwds_wrap" ng-if="draftMessage.fwdMessages.length > 0">\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.fwdsClear()"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\n <div class="im_message_reply_wrap" my-forwarded-messages="draftMessage.fwdMessages"></div>\n </div>\n\n <div class="im_send_field_wrap hasselect" ng-class="replyKeyboard._ == \'replyKeyboardMarkup\' ? \'im_send_field_wrap_2ndbtn\' : \'\'">\n <a class="composer_emoji_insert_btn"><i class="icon icon-emoji"></i></a>\n <div class="composer_progress_icon_wrap">\n <div class="composer_progress_icon" my-arc-progress width="22" stroke="2.5"></div>\n </div>\n <a class="composer_command_btn" ng-show="!replyKeyboard && commands.list.length > 0 && (!draftMessage.text.length || draftMessage.text == \'/\')" ng-mousedown="draftMessage.toggleSlash($event)" ng-class="draftMessage.text[0] == \'/\' ? \'active\' : \'\'"><i class="icon icon-slash"></i></a>\n <a class="composer_keyboard_btn" ng-show="replyKeyboard._ == \'replyKeyboardMarkup\'" ng-mousedown="draftMessage.replyKeyboardToggle($event)" ng-class="!replyKeyboard.pFlags.hidden ? \'active\' : \'\'"><i class="icon icon-keyboard"></i></a>\n\n <div class="im_send_dropbox_wrap" my-i18n="im_photos_drop_text"></div>\n <div class="im_voice_recorder_wrap">\n <div class="im_recorder_indicator"><i></i></div>\n <div class="im_recorder_time" ng-bind="voiceRecorder.duration | duration"></div>\n <div class="im_recorder_label" ng-switch="voiceRecorder.processing">\n <span ng-switch-when="true" my-i18n="im_voice_processing_label">\n <my-i18n-param name="dots"></my-i18n-param>\n </span>\n <span ng-switch-default>\n <span class="im_recorder_label_hover" my-i18n="im_voice_recording_label"></span>\n <span class="im_recorder_label_hout" my-i18n="im_voice_recording_cancel_label"></span>\n </span>\n </div>\n </div>\n\n <textarea ng-model="draftMessage.text" class="form-control im_message_field no_outline" dir="auto" ng-trim="false"></textarea>\n </div>\n\n <div class="im_send_buttons_wrap clearfix">\n <button type="submit" class="btn btn-md im_submit" ng-class="draftMessage.type == \'edit\' ? \'im_submit_edit\' : \'im_submit_send\'">\n <span class="im_submit_send_label nocopy" my-i18n="im_submit_message"></span>\n <span class="im_submit_edit_label nocopy" my-i18n="im_submit_edit_message"></span>\n </button>\n\n <div class="im_attach pull-left">\n <input type="file" class="im_attach_input" size="28" multiple="multiple" title="{{\'im_attach_file_title\' | i18n}}" />\n <i class="icon icon-paperclip"></i>\n </div>\n\n <div class="im_media_attach pull-left">\n <input type="file" class="im_media_attach_input" size="28" multiple="multiple" accept="image/*, video/*, audio/*" title="{{\'im_media_attach_title\' | i18n}}"/>\n <i class="icon icon-camera"></i>\n </div>\n\n <a class="im_record pull-left">\n <div class="im_record_bg">\n <i class="icon icon-mic"></i>\n </div>\n </a>\n\n <div class="composer_emoji_panel"></div>\n </div>\n\n <div class="im_send_keyboard_wrap" ng-if="replyKeyboard._ == \'replyKeyboardMarkup\'" ng-show="!replyKeyboard.pFlags.hidden">\n <div my-reply-markup="replyKeyboard"></div>\n </div>\n\n</form>'),
e.put("partials/desktop/sessions_list_modal.html",'<div class="sessions_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head md_modal_head_simple">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\n </div>\n </div>\n <div class="md_modal_title" my-i18n="sessions_modal_title"></div>\n </div>\n\n <div class="md_modal_body">\n\n <div my-sessions-list class="sessions_modal_col">\n\n <div class="sessions_wrap nano" my-infinite-scroller>\n <div class="sessions_scrollable_wrap nano-content" ng-switch="!sessionsLoaded">\n\n <div ng-switch-when="true" class="sessions_modal_loading" my-vertical-position="0.2" padding="true" my-i18n="sessions_modal_loading">\n <my-i18n-param name="dots">\n <span my-loading-dots></span>\n </my-i18n-param>\n </div>\n\n <ul ng-switch-default class="sessions_modal_sessions_list nav nav-pills nav-stacked">\n\n <li class="sessions_modal_session_wrap clearfix" ng-repeat="authorization in authorizations | limitTo: slice.limit track by authorization.hash">\n <div class="sessions_modal_session">\n <div class="session_meta_wrap pull-right">\n <div class="session_active_date" ng-switch="authorization.current">\n <span ng-switch-when="true" class="session_active_date_online" my-i18n="sessions_modal_current_session"></span>\n <span ng-switch-default ng-bind="authorization.date_active | dateOrTime"></span>\n </div>\n\n <a ng-if="!authorization.current" class="session_terminate_btn" ng-click="terminateSession(authorization.hash)" my-i18n="sessions_modal_terminate_one"></a>\n </div>\n\n <div class="sessions_modal_session_app" ng-bind="authorization.app_name + \' \' + authorization.app_version"></div>\n <div class="sessions_modal_session_device" ng-bind="authorization.device_model + \', \' + authorization.platform + \' \' + authorization.system_version"></div>\n <div class="sessions_modal_session_location" ng-bind="authorization.ip + \' - \' + authorization.country"></div>\n </div>\n <div ng-if="authorization.current && authorizations.length > 1">\n <div class="sessions_modal_terminate_all_wrap">\n <a ng-click="terminateAllSessions()" my-i18n="sessions_modal_terminate_all"></a>\n </div>\n\n <hr class="sessions_modal_other_splitter"></hr>\n </div>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/desktop/settings_modal.html",'<div class="settings_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\n <a class="md_modal_action" ng-click="editProfile()" my-i18n="modal_edit"></a>\n </div>\n <div class="md_modal_title" my-i18n="settings_modal_title"></div>\n </div>\n\n <div class="peer_modal_profile_wrap clearfix">\n <div class="peer_modal_photo_wrap pull-left" ng-switch="photo.updating">\n <div ng-switch-when="true" class="peer_modal_photo md_photo_loading loading_dots">\n <i></i><i></i><i></i>\n </div>\n <a ng-switch-default ng-click="openPhoto(profile.photo.photo_id, {p: profile.id})" class="peer_modal_photo" my-peer-photolink="::profile.id" img-class="peer_modal_photo" watch="true" no-open="true" ng-class="{disabled: !profile.photo.photo_id}" ng-disabled="!profile.photo.photo_id"></a>\n </div>\n <div class="peer_modal_profile">\n <div class="peer_modal_profile_name" my-peer-link="profile.id"></div>\n <div class="peer_modal_profile_description" my-user-status="::profile.id"></div>\n </div>\n </div>\n </div>\n\n <div class="md_modal_split_actions_wrap">\n <div class="md_modal_split_actions">\n <div class="md_modal_split_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" title="{{\'settings_modal_set_photo\' | i18n}}" />\n <i class="md_modal_split_action_camera"></i>\n </div>\n </div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="md_modal_sections clearfix">\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_number">\n <i class="md_modal_section_icon md_modal_section_icon_phone"></i>\n\n <div class="md_modal_section_param_wrap">\n <div class="md_modal_section_param_value" ng-bind="profile.phone | phoneNumber"></div>\n <div class="md_modal_section_param_name" my-i18n="user_modal_phone"></div>\n </div>\n\n <div class="md_modal_section_param_wrap">\n <div class="md_modal_section_param_value" ng-switch="profile.username.length > 0">\n <a ng-switch-when="true" class="settings_modal_username_link" ng-click="changeUsername()" ng-bind="\'@\' + profile.username"></a>\n <a ng-switch-default ng-click="changeUsername()" my-i18n="settings_modal_empty_username_set"></a>\n </div>\n <div class="md_modal_section_param_name" my-i18n="user_modal_username"></div>\n </div>\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_toggle">\n <i class="md_modal_section_icon md_modal_section_icon_notification"></i>\n\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="toggleDesktop()" ng-class="notify.desktop ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_notifications"></span>\n </a>\n\n <a ng-if="notify.desktop && notify.pushAvailable" class="md_modal_section_toggle_wrap tg_checkbox" ng-click="togglePush()" ng-class="notify.push ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_pushes"></span>\n </a>\n\n \n\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="togglePreview()" ng-class="notify.preview ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_message_preview"></span>\n </a>\n\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="toggleSound()" ng-class="notify.volume ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_sound"></span>\n </a>\n\n <div class="md_modal_section_range_wrap tg_range_wrap" ng-show="notify.volume > 0">\n <div my-slider slider-model="notify.volume"></div>\n </div>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_radio">\n <i class="md_modal_section_icon md_modal_section_icon_keyboard"></i>\n\n <div class="tg_radios_wrap">\n <a class="md_modal_section_radio_wrap tg_radio" ng-click="toggleCtrlEnter(1)" ng-class="send.enter == 1 ? \'tg_radio_on\' : \'\'">\n <span class="icon icon-radio-outer"><i class="icon-radio"></i></span>\n <span my-i18n="settings_modal_enter_send_description_md"></span>\n </a>\n\n <a class="md_modal_section_radio_wrap tg_radio" ng-click="toggleCtrlEnter(0)" ng-class="send.enter == 0 ? \'tg_radio_on\' : \'\'">\n <span class="icon icon-radio-outer"><i class="icon-radio"></i></span>\n <span my-i18n="settings_modal_ctrl_enter_send_description_md"></span>\n </a>\n </div>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link">\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\n\n <div class="md_modal_section_select_wrap" ng-controller="AppLangSelectController">\n <div class="dropdown md_modal_section_select" dropdown>\n <button class="btn btn-link dropdown-toggle" dropdown-toggle ng-bind="langNames[curLocale]"></button>\n <ul class="dropdown-menu dropdown-menu-to-up">\n <li ng-repeat="locale in ::supportedLocales">\n <a ng-click="localeSelect(locale)" ng-bind="langNames[locale]"></a>\n </li>\n </ul>\n </div>\n\n <div class="md_modal_section_param_name" my-i18n="settings_modal_language"></div>\n </div>\n\n <div class="md_modal_section_link_wrap">\n <a ng-if="password._ == \'account.noPassword\' && password.email_unconfirmed_pattern.length" class="md_modal_section_link pull-right" ng-click="changePassword({action: \'cancel_email\'})" my-i18n="settings_modal_password_email_pending_cancel">\n </a>\n <span class="md_modal_section_text" ng-if="password._ == \'account.noPassword\' && password.email_unconfirmed_pattern.length" class="md_modal_section_link" my-i18n="settings_modal_password_email_pending">\n <my-i18n-param name="email">\n <span ng-bind="password.email_unconfirmed_pattern"></span>\n </my-i18n-param>\n </span>\n <a ng-if="password._ == \'account.noPassword\' && !password.email_unconfirmed_pattern" class="md_modal_section_link" ng-click="changePassword({action: \'create\'})" my-i18n="settings_modal_set_password"></a>\n\n <a ng-if="password._ == \'account.password\'" class="md_modal_section_link pull-right" ng-click="changePassword({action: \'disable\'})" my-i18n="settings_modal_disable_password"></a>\n <a ng-if="password._ == \'account.password\'" class="md_modal_section_link" ng-click="changePassword({action: \'change\'})" my-i18n="settings_modal_change_password"></a>\n </div>\n\n <div class="md_modal_section_link_wrap">\n <a class="md_modal_section_link" ng-click="showSessions()" my-i18n="settings_modal_active_sessions"></a>\n </div>\n\n <div class="md_modal_section_link_wrap">\n <a class="md_modal_section_link" ng-click="logOut()" my-i18n="head_log_out"></a>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/desktop/short_message.html",'<span class="im_short_message_media" ng-if="message.media" ng-switch="message.media._">\n <span ng-switch-when="messageMediaPhoto" my-i18n="conversation_media_photo"></span>\n <span ng-switch-when="messageMediaDocument" ng-switch="message.media.document.type || false">\n <span ng-switch-when="sticker">\n <span ng-bind-html="message.media.document.stickerEmoji"></span>\n <my-i18n msgid="conversation_media_sticker"></my-i18n>\n </span>\n <span ng-switch-when="gif" my-i18n="conversation_media_gif"></span>\n <span ng-switch-when="round" my-i18n="conversation_media_round"></span>\n <span ng-switch-when="audio" my-i18n="conversation_media_audio"></span>\n <span ng-switch-when="voice" my-i18n="conversation_media_audio"></span>\n <span ng-switch-when="video" my-i18n="conversation_media_video"></span>\n <span ng-switch-default ng-bind="message.media.document.file_name"></span>\n </span>\n <span ng-switch-when="messageMediaGeo" my-i18n="conversation_media_location"></span>\n <span ng-switch-when="messageMediaVenue" my-i18n="conversation_media_location"></span>\n <span ng-switch-when="messageMediaContact" my-i18n="conversation_media_contact"></span>\n <span ng-switch-when="messageMediaGame">\n <span my-emoji-image="🎮"></span>\n <span ng-bind-html="message.media.game.rTitle"></span>\n </span>\n <span ng-switch-when="messageMediaUnsupported" my-i18n="conversation_media_unsupported"></span>\n <span ng-switch-when="messageMediaUnsupportedWeb" my-i18n="conversation_media_unsupported"></span>\n</span><span class="im_short_message_service" ng-if="message._ == \'messageService\'" ng-switch="message.action._">\n <span ng-switch-when="messageActionChatCreate" my-i18n="conversation_group_created"></span>\n <span ng-switch-when="messageActionChatEditTitle" my-i18n="conversation_group_renamed"></span>\n <span ng-switch-when="messageActionChatEditPhoto" my-i18n="conversation_group_photo_updated"></span>\n <span ng-switch-when="messageActionChatDeletePhoto" my-i18n="conversation_group_photo_removed"></span>\n <span ng-switch-when="messageActionChatJoinedByLink" my-i18n="conversation_joined_by_link"></span>\n <span ng-switch-when="messageActionChatReturn" my-i18n="conversation_returned_to_group"></span>\n <span ng-switch-when="messageActionChatJoined" my-i18n="conversation_joined_group"></span>\n <span ng-switch-when="messageActionChatAddUser" my-i18n="conversation_invited_user">\n <my-i18n-param name="user"><span my-peer-link="message.action.user_id"></span></my-i18n-param>\n </span>\n <span ng-switch-when="messageActionChatAddUsers" my-i18n="">\n <ng-pluralize count="message.action.users.length"\n when="conversation_invited_users">\n </ng-pluralize>\n </span>\n <span ng-switch-when="messageActionChatLeave" my-i18n="conversation_left_group"></span>\n <span ng-switch-when="messageActionChatDeleteUser" my-i18n="conversation_kicked_user">\n <my-i18n-param name="user"><span my-peer-link="message.action.user_id"></span></my-i18n-param>\n </span>\n <span ng-switch-when="messageActionChatMigrateTo" my-i18n="conversation_converted_to_supergroup"></span>\n <span ng-switch-when="messageActionChannelMigrateFrom" my-i18n="conversation_converted_to_supergroup"></span>\n <span ng-switch-when="messageActionChannelCreate" my-i18n="conversation_created_channel"></span>\n <span ng-switch-when="messageActionChannelEditTitle" my-i18n="conversation_changed_channel_name"></span>\n <span ng-switch-when="messageActionChannelEditPhoto" my-i18n="conversation_changed_channel_photo"></span>\n <span ng-switch-when="messageActionPinMessage" my-i18n="conversation_pinned_message"></span>\n <span ng-switch-when="messageActionGameScore">\n <ng-pluralize count="message.action.score"\n when="conversation_scored_X"></ng-pluralize>\n </my-i18n-param>\n </span>\n <span ng-switch-when="messageActionPhoneCall" ng-switch="message.action.type">\n <span ng-switch-when="out_missed" my-i18n="message_service_phonecall_canceled"></span>\n <span ng-switch-when="in_missed" my-i18n="message_service_phonecall_missed"></span>\n <span ng-switch-when="out_ok" my-i18n="message_service_phonecall_outgoing"></span>\n <span ng-switch-when="in_ok" my-i18n="message_service_phonecall_incoming"></span>\n </span>\n <span ng-switch-when="messageActionPaymentSent" my-i18n="message_service_payment_sent"></span>\n <span ng-switch-when="messageActionScreenshotTaken" my-i18n="message_service_screenshot_taken"></span>\n <span ng-switch-when="messageActionCustomAction" ng-bind="message.action.message"></span>\n\n\n</span><span class="im_short_message_text" ng-if="message.message.length && (!message.media || message.media._ == \'messageMediaWebPage\')" ng-bind-html="message.richMessage"></span>'),e.put("partials/desktop/slider.html",'<div class="tg_slider_wrap">\n\t<div class="tg_slider_thumb"></div>\n\t<div class="tg_slider_track">\n\t\t<div class="tg_slider_track_fill"></div>\n\t</div>\n</div>'),e.put("partials/desktop/stickerset_modal.html",'<div class="stickerset_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head md_modal_head_simple">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\n </div>\n </div>\n <div class="md_modal_title" ng-switch="!stickersetLoaded">\n <span ng-switch-when="true" my-i18n="stickerset_modal_title_loading"></span>\n <span ng-switch-default ng-bind="stickerset.title"></span>\n </div>\n </div>\n\n <div class="md_modal_body">\n\n <div my-stickers-list class="stickerset_modal_col">\n\n <div class="stickerset_wrap nano" my-infinite-scroller>\n <div class="stickerset_scrollable_wrap nano-content" ng-switch="!stickersetLoaded">\n\n <div ng-switch-when="true" class="stickerset_modal_loading" my-vertical-position="0.2" padding="true" my-i18n="stickerset_modal_loading">\n <my-i18n-param name="dots">\n <span my-loading-dots></span>\n </my-i18n-param>\n </div>\n\n <div ng-switch-default class="stickerset_modal_stickers_list clearfix">\n <a class="stickerset_modal_sticker_wrap" ng-repeat="sticker in documents | limitTo: slice.limit" ng-click="chooseSticker(sticker.id)">\n <div class="stickerset_modal_sticker" my-load-sticker document="sticker" dim="stickerDimensions[sticker.id]"></div>\n <div class="stickerset_modal_sticker_alt" ng-bind-html="stickerEmojis[sticker.id]"></div>\n </a>\n </div>\n\n </div>\n </div>\n\n </div>\n\n <div class="stickerset_actions_wrap">\n <div class="stickerset_actions" ng-switch="stickersetInstalled">\n <button ng-if="stickersetLoaded" class="btn btn-md btn-md-primary pull-left" my-i18n="stickerset_modal_share" ng-click="share()"></button>\n <button ng-switch-when="true" class="btn btn-md btn-md-danger" my-i18n="stickerset_modal_uninstall" ng-click="toggleInstalled(false)"></button>\n <button ng-switch-when="false" class="btn btn-md btn-md-primary" my-i18n="stickerset_modal_install" ng-click="toggleInstalled(true)"></button>\n </div>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/desktop/user_modal.html",'<div class="user_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\n <a class="md_modal_action" ng-if="user.pFlags.contact" ng-click="importContact(true)" my-i18n="modal_edit"></a>\n </div>\n <div class="md_modal_title" my-i18n="user_modal_contact_info"></div>\n </div>\n\n <div class="peer_modal_profile_wrap clearfix">\n <div class="peer_modal_photo_wrap pull-left">\n <a ng-click="openPhoto(user.photo.photo_id, {p: user.id})" class="peer_modal_photo" ng-class="{disabled: !user.photo.photo_id}" ng-disabled="!user.photo.photo_id" my-peer-photolink="::user.id" img-class="peer_modal_photo" no-open="true"></a>\n </div>\n <div class="peer_modal_profile">\n <div class="peer_modal_profile_name" my-peer-link="user.id" verified="true"></div>\n <div class="peer_modal_profile_description" my-user-status="::user.id"></div>\n </div>\n </div>\n </div>\n\n <div class="md_modal_split_actions_wrap">\n <div class="md_modal_split_actions">\n <a class="md_modal_split_action" href="" ng-click="goToHistory()" title="{{\'user_modal_send_message\' | i18n}}">\n <i class="md_modal_split_action_msg"></i>\n </a>\n </div>\n </div>\n\n\n <div class="md_modal_body">\n\n <div class="md_modal_sections clearfix">\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_number" ng-if="user.phone || user.username || rAbout">\n <i class="md_modal_section_icon md_modal_section_icon_phone"></i>\n\n <div class="md_modal_section_param_wrap" ng-if="user.phone">\n <div class="md_modal_section_param_value" ng-bind="user.phone | phoneNumber"></div>\n <div class="md_modal_section_param_name" my-i18n="user_modal_phone"></div>\n </div>\n\n <div class="md_modal_section_param_wrap" ng-if="user.username">\n <div class="md_modal_section_param_value">\n <span ng-bind="\'@\' + user.username"></span>\n </div>\n <div class="md_modal_section_param_name" my-i18n="user_modal_username"></div>\n </div>\n\n <div class="md_modal_section_param_wrap" ng-if="rAbout">\n <div class="md_modal_section_param_value">\n <span ng-bind-html="rAbout"></span>\n </div>\n <div class="md_modal_section_param_name" my-i18n="user_modal_about"></div>\n </div>\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_toggle">\n <i class="md_modal_section_icon md_modal_section_icon_notification"></i>\n\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="user_modal_notifications"></span>\n </a>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-init="f.showMoreActions = !user.phone.length">\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\n\n <div class="md_modal_section_link_wrap" ng-if="user.pFlags.bot &amp;&amp; !user.pFlags.bot_nochats">\n <a class="md_modal_section_link" ng-click="inviteToGroup()" my-i18n="user_modal_add_to_group"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="bot_info.commands.settings != null">\n <a class="md_modal_section_link" ng-click="sendCommand(\'settings\')" my-i18n="user_modal_bot_settings"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="bot_info.commands.help != null">\n <a class="md_modal_section_link" ng-click="sendCommand(\'help\')" my-i18n="user_modal_bot_help"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="user.phone.length > 0 &amp;&amp; !user.pFlags.contact &amp;&amp; !user.pFlags.self">\n <a class="md_modal_section_link" ng-click="importContact()" my-i18n="user_modal_add_contact"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="user.phone.length > 0">\n <a class="md_modal_section_link" ng-click="shareContact()" my-i18n="user_modal_share_contact"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="f.showMoreActions &amp;&amp; user.pFlags.contact">\n <a class="md_modal_section_link" ng-click="deleteContact()" my-i18n="user_modal_delete_contact"></a>\n </div>\n\n\n <div class="md_modal_section_link_wrap" ng-if="f.showMoreActions &amp;&amp; !user.pFlags.self">\n <a class="md_modal_section_link" ng-click="toggleBlock(!blocked)" ng-switch="blocked">\n <my-i18n ng-switch-when="true" msgid="user_modal_unblock_user"></my-i18n>\n <my-i18n ng-switch-default msgid="user_modal_block_user"></my-i18n>\n </a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="f.showMoreActions">\n <a class="md_modal_section_link" ng-click="flushHistory(true)" my-i18n="user_modal_clear_history"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="f.showMoreActions">\n <a class="md_modal_section_link" ng-click="flushHistory()" my-i18n="user_modal_delete_chat"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="!f.showMoreActions">\n <a class="md_modal_section_link" ng-click="f.showMoreActions = true" my-i18n="modal_more"></a>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n</div>\n\n'),e.put("partials/desktop/username_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateUsername()">\n\n <h4 my-i18n="username_edit_modal_title"></h4>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': checked.error}" my-labeled-input>\n <label class="md-input-label" my-i18n="username_edit_placeholder"></label>\n <input class="md-input" my-focused type="text" ng-model="profile.username" name="username" ng-model-options="{updateOn: \'default blur\', debounce: {default: 600, blur: 0}}" />\n </div>\n\n <div class="md_simple_form_description" my-i18n="username_edit_description_md"></div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: profile.updating}" ng-click="updateUsername()" ng-bind="profile.updating ? \'username_edit_submit_active\' : \'username_edit_submit\' | i18n" ng-disabled="profile.updating"></button>\n\n </div>\n\n</div>'),e.put("partials/desktop/video_modal.html",'<div class="modal_close_wrap" ng-class="{modal_close_wrap_wnext: nav.hasNext}" ng-click="$close()">\n <div class="modal_close"></div>\n</div>\n\n<div class="media_modal_bottom_panel_wrap">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions pull-right">\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\n <i class="media_modal_action_btn_download"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\n <i class="media_modal_action_btn_delete"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="video.user_id > 0" ng-switch="messageID > 0">\n <a class="media_modal_author_photo pull-left" my-peer-photolink="video.user_id" img-class="media_modal_author_photo" watch="true"></a>\n <div class="media_modal_author_name">\n <a class="media_modal_author" my-peer-link="video.user_id" peer-watch="true"></a>\n </div>\n <div class="media_modal_date" ng-if="video.date > 0">\n <a ng-switch-when="true" class="media_modal_date" ng-click="goToMessage()" ng-bind="video.date | dateOrTime :true"></a>\n <span ng-switch-default ng-bind="video.date | dateOrTime :true"></span>\n </div>\n </div>\n\n <div class="media_modal_title_wrap" my-i18n="media_modal_video"></div>\n </div>\n</div>\n\n<div class="modal-dialog">\n <div class="modal-content">\n <div my-modal-width="{{video.full.width - 32}}" class="media_modal_wrap video_modal_wrap" my-modal-position animation="no">\n\n <div class="modal-body">\n <div class="video_modal_image_wrap" my-load-video video="video"></div>\n\n </div>\n\n </div>\n </div>\n</div>'),e.put("partials/mobile/audio_player.html",'<div class="audio_player_wrap clearfix">\n\t<a class="im_message_file_button" ng-click="togglePlay()" ng-class="{im_message_file_button_dl_audio: audio.downloaded}">\n\t <i class="im_message_file_button_icon" ng-class="{audio_player_btn_icon_pause: mediaPlayer.player.playing}"></i>\n\t</a>\n\t<div class="audio_player_title_wrap">\n\t\t<div class="audio_player_meta pull-right" ng-if="audio.downloaded &amp;&amp; (mediaPlayer.player.duration || audio.duration)" ng-switch="mediaPlayer.player.playing || mediaPlayer.player.currentTime > 0">\n\t\t\t<span ng-switch-when="true" class="audio_player_duration" ng-bind="mediaPlayer.player.currentTime | durationRemains : duration()"></span>\n\t\t\t<span ng-switch-default class="audio_player_duration" ng-bind="duration() | duration"></span>\n\t\t</div>\n\t\t<span class="copyonly">[ </span>\n\t\t<a ng-attr-title="{{audio.file_name}}" ng-click="download()" class="audio_player_title" ng-switch="::audio.audioTitle.length > 0 ? 2 : (audio.file_name.length > 0 ? 1 : 0)">\n\t\t\t<span ng-switch-when="2">\n\t\t\t\t<strong ng-bind="::audio.audioPerformer"></strong>\n\t\t\t\t<span ng-bind="::(audio.audioPerformer ? \'– \' : \'\') + audio.audioTitle"></span>\n\t\t\t</span>\n\t\t\t<span ng-switch-when="1" ng-bind="::audio.file_name"></span>\n\t\t\t<span ng-switch-default my-i18n="message_attach_audio_message"></span>\n\t\t</a>\n\t\t<span class="copyonly">]</span>\n\t\t<i ng-if="::message.pFlags.media_unread || false" ng-show="message.pFlags.media_unread" class="icon icon-audio-unread"></i>\n\t\t<div class="audio_player_meta" ng-if="!audio.downloaded || !duration()" ng-switch="audio.progress.enabled">\n\t\t\t<span ng-switch-when="true" class="audio_player_size" ng-bind="audio.progress | formatSizeProgress"></span>\n\t\t\t<span ng-switch-default class="audio_player_size" ng-bind="audio.size | formatSize"></span>\n\t\t</div>\n\t</div>\n\t<div class="audio_player_actions noselect" ng-if="!audio.progress.enabled &amp;&amp; !audio.downloaded">\n <a class="nocopy" ng-if="audio._ == \'document\'" ng-click="download()" my-i18n="message_attach_document_download"></a>\n <a class="nocopy" ng-click="togglePlay()" my-i18n="message_attach_audio_play"></a>\n\t</div>\n\t<div class="audio_player_progress_wrap" ng-if="audio.progress.enabled || audio.downloaded" ng-switch="audio.progress.enabled">\n\t\t<div ng-switch-when="true" class="clearfix im_message_cancelable_progress_wrap">\n\t\t <a class="im_message_media_progress_cancel pull-right nocopy" ng-click="audio.progress.cancel()" my-i18n="modal_cancel"></a>\n\t\t <div class="im_message_download_progress_wrap">\n\t\t <div class="progress tg_down_progress">\n\t\t <div class="progress-bar progress-bar-success" ng-style="{width: audio.progress.percent + \'%\'}"></div>\n\t\t </div>\n\t\t </div>\n\t\t</div>\n\t <div ng-switch-default class="im_message_playback_progress_wrap">\n\t \t<div class="audio_player_seek_slider" my-slider slider-model="mediaPlayer.player.currentTime" slider-max="duration()" slider-onchange="seek(value)"></div>\n\t \t<div class="audio_player_volume_slider" my-slider slider-model="mediaPlayer.player.volume" slider-min="0" slider-max="1" slider-onchange="setVolume(value)"></div>\n\t </div>\n\t</div>\n\t<div class="audio_player_media" ng-if="audio.url" my-ogv-player="mediaPlayer.player" src="audio.url" volume="{{::volume}}"></div>\n</div>'),e.put("partials/mobile/changelog_modal.html",'<div class="changelog_modal_wrap">\n\n <a class="modal-close-button" ng-click="$close()"><i></i></a>\n\n <div class="modal-body">\n\n <div class="changelog_card_wrap" ng-switch="lastVersion === false">\n <div ng-switch-when="true">\n <div class="changelog_card"></div>\n <h2 class="changelog_header" my-i18n="changelog_modal_header_recent_updates_md"></h2>\n </div>\n <div ng-switch-default>\n <div class="changelog_card"></div>\n <h2 class="changelog_header" my-i18n="changelog_modal_header_new_updates_md"></h2>\n </div>\n </div>\n\n <div class="changelog_versions_wrap">\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.5.6\n <span class="pull-right" my-i18n="changelog_modal_title_current_version"></span>\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Edit the text of your messages after sending them. This works across all Telegram chats, including groups and one-on-one conversations. Select a message and click \'Edit\' or just press the up arrow button to edit your last message.</li>\n <li>Unsend Messages: retract any messages within 48 hours of sending them. Check out the <a href="https://telegram.org/blog/unsend-and-usage" target="_blank">Telegram Blog</a> for more info.</li>\n <li>Pinned chats. Check out the <a href="https://telegram.org/blog/pin-and-ifttt" target="_blank">Telegram Blog</a> for more info.</li>\n <li>Sticker suggestions by emoji.</li>\n <li>Search for messages in specific chats.</li>\n <li>Background notifications in Chrome and Firefox (can be disabled in Settings)</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.5.5\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Introducing Drafts: Seamless syncing for unsent messages on all your devices. Drafts are now visible in your chats list.</li>\n <li>Mention people in groups by typing @ and selecting them from the list — even if they don\'t have a username.</li>\n <li>Share links to specific posts in channels via quick forwarding menu (click on the date in a message to try this out).</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.5.4\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Introducing Bot API 2.0, the biggest update to our bot platform since June 2015.</li>\n <li>New inline keyboards with callback, \'open URL\' or \'switch to inline mode\' buttons help create seamless interfaces.</li>\n <li>Bots can now update existing messages on the fly as you interact with them.</li>\n <li>Prepare for the rise of location-based bots: all bots can now ask users to share their location.</li>\n <li>Inline bots can now send all attachments supported in Telegram (videos, music, stickers, files, etc.).</li>\n <li>Try out these sample bots to see what\'s coming your way soon: @music, @sticker, @youtube, @foursquare</li>\n <li>Check out the <a href="https://telegram.org/blog/bots-2-0" target="_blank">Telegram Blog</a> for more info.</li>\n <li>New quick forwarding in channels (click on the date in a message to try this out).</li>\n <li>Improved performance.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.5.3\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Inline bots: A new way to add bot content to any chat. Type a bot\'s username and your query in the text field to get instant results and send them to your chat partner. Try typing <code>@gif dog</code> in your next chat. Sample bots: @gif, @wiki, @bing, @vid, @bold.</li>\n <li>Check out the <a href="https://telegram.org/blog/inline-bots" target="_blank">Telegram Blog</a> for more info.</li>\n <li>Improved GIFs: 20x faster sending and downloading, nice animated progress</li>\n <li>Click on message date to reply (or to forward from channels).</li>\n <li>Preview images before sending when pasting from clipboard.</li>\n <li>Improved formatting for copy-pasted history fragments (date, time and sender names inserted automatically).</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.5.2\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Unread counters for muted chats now colored in gray.</li>\n <li>Improved previews for sticker sets: Click on a sticker to view the whole set, click on stickers in a set to send right away, added a \'Share\' button.</li>\n <li>Improved performance.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.5.1\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Groups that have reached their capacity of 200 users can be upgraded to supergroups of up to 1,000 members.</li>\n <li>[Mobile] Supported web page previews.</li>\n <li>[FirefoxOS] Added sender userpic to notifications.</li>\n <li>[FirefoxOS] Supported share url from Browser.</li>\n <li>Check out the <a href="https://telegram.org/blog/supergroups" target="_blank">Telegram Blog</a> for more info</li>\n </ul>\n </div>\n </div>\n\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.5.0\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Removed annoying "multiple tabs open" error.</li>\n <li>Improved message forwarding.</li>\n <li>Added view counter to messages from channels.</li>\n <li>Improved image loading in Safari and Firefox.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.9\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>New emoji and sticker menu, tabs for sticker packs.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.8\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Introducing Channels – a great new way to broadcast your messages to unlimited audiences.</li>\n <li>Check out the <a href="https://telegram.org/blog/channels" target="_blank">Telegram Blog</a> for more info</li>\n <li>Improved performance in Safari on OS X El Capitan.</li>\n <li>Added formatting for fixed-width code, surround text with `single backticks` for inline text and ```triple backticks``` for blocks of pre-formatted text.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.7\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>New bot API, free for everyone. If you\'re an engineer, create your own bots for games, services or integrations.\n </li>\n <li>Check out <a href="https://telegram.org/blog/bot-revolution" target="_blank">Telegram Blog</a> for more info</li>\n <li>Improved Stickers support: now stickers are loading much faster.</li>\n <li>Click on any custom stickers in chats to view and add sticker sets.</li>\n <li>[Mobile] Reply to a message easily: tap on any message and select "Reply".</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.6\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Install and share custom sticker sets like this one: <a href="tg://addstickers?set=Animals">telegram.me/addstickers/Animals</a></li>\n <li>If you\'re an artist, create custom sticker sets using our <a href="tg://resolve?domain=stickers">@Stickers</a> bot.</li>\n <li>Check out <a href="https://telegram.org/blog/stickers-revolution" target="_blank">Telegram Blog</a> for more info</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.5\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>\n Invite links for group chats:<br/>\n Check out <a href="https://telegram.org/blog/invite-links" target="_blank">Telegram Blog</a> for more info\n </li>\n <li>Smart notifications</li>\n <li>\'Listened\' status for voice messages</li>\n <li>Places in locations (venues, landmarks)</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.4\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Link Previews:<br/>\n Get rich link summaries for tweets, YouTube videos, Instagram photos and other content.</li>\n\n <li>Check out <a href="https://telegram.org/blog/link-preview" target="_blank">Telegram Blog</a> for more info.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.3\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Sessions List:<br/>\n View your active Telegram sessions (on desktop, tablet and mobile devices) and close specific sessions remotely.</li>\n\n <li>Two-step verification:<br/>\n Set up an additional password that will be required to log into your Telegram account.</li>\n\n <li>Check out <a href="https://telegram.org/blog/sessions-and-2-step-verification" target="_blank">Telegram Blog</a> for more info.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.2\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Optimization for screens with smaller Y-resolutions.</li>\n <li>Supported Spotify URL embeds.</li>\n <li>Mentions of the current user in group chats are now highlighted.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.1\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Reply to specific messages in groups.</li>\n <li>Mention @usernames in groups to notify multiple users.</li>\n <li>Revised notifications in groups: mentioned users and people you reply to will be notified (private chat notification settings apply in this case instead of group settings). Check out <a href="https://telegram.org/blog/replies-mentions-hashtags" target="_blank">Telegram Blog</a> for more info.</li>\n <li>Setting to disable message preview</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.4.0\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Full stickers support</li>\n <li>Multisearch box: instantly find chats, usernames and messages</li>\n <li>Emoji autocomplete: e.g., type <strong>:kiss</strong> in the message field to see the list. <a href="http://www.emoji-cheat-sheet.com/" target="_blank">Full cheat sheet &raquo;</a></li>\n <li>Added \'typing\' notification in chats list</li>\n <li>Online members counter in group headers</li>\n </ul>\n </div>\n </div>\n\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.9\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>[Desktop] Material design completed</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.8\n <span class="pull-right" my-i18n="changelog_modal_title_current_version"></span>\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Telegram.me links open right in Telegram Web when authorized</li>\n <li>@username mentions in messages are clickable and open a conversation with the user</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.7\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>[Desktop] [Beta] New material design for modal windows</li>\n <li>[Desktop] Forward messages to multiple recipients</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.6\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>New viewer for photos, videos, documents.</li>\n <li>[FirefoxOS] Improved media downloads.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.5\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Added embedded Soundcloud tracks and playlists.</li>\n <li>Added global user search to contacts list.</li>\n <li>Added switch to mobile version on window resize.</li>\n <li>Migrate to HTTPS notification</li>\n <li>Bugfixes.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.4\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Added embedded Facebook posts and Vimeo videos.</li>\n <li>Improved IE10+ support: downloading files and style fixes.</li>\n <li>Added unsupported media playback warning.</li>\n <li>Bugfixes.</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.3\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Added Native Client module: dramatically improved encryption speed; Download and upload speed is now as high as in native applications.</li>\n <li>HTTPS. We recommend you to use <a href="https://web.telegram.org" target="_blank">https://web.telegram.org</a>.</li>\n <li>Added multiple open tabs warning. Please note, that only one tab with Telegram Web will work.</li>\n <li>Added embedded Instagram, Twitter, Vine, YouTube links.</li>\n <li>Jump to selected spot when playing back audio.</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.2\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Usernames support: <a href="" ng-click="changeUsername()">Choose a username right now!</a></li>\n <li>Search can now find public users by username.</li>\n <li>Most popular emoticons shown in \'recent\' when empty</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.1\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>New languages: Spanish, German and Italian are now available </li>\n <li>New custom-made audio player</li>\n <li>Bad browser page for IE 6-9</li>\n <li>Perfomance improvements and bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.3.0\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Log in codes may be received in other Telegram apps</li>\n <li>Partner\'s online status updates automatically</li>\n <li>Added support for non-english hashtags in messages</li>\n <li>Fixed invalid scrollbar width bug</li>\n <li>[Desktop] Added automatic country code detection</li>\n <li>[FirefoxOS] Improved PUSH-notifications for &lt;= 1.1</li>\n <li>[FirefoxOS] Fixed emoji in notifications</li>\n <li>[FirefoxOS] Fixed attachment bug for &lt;= 1.1</li>\n <li>[FirefoxOS] Added phonebook permissions handling</li>\n <li>[FirefoxOS] Added ability to share Gallery photos in Telegram</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.2.9\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Updated mobile layout</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.2.5\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Updated mobile layout</li>\n <li>Improved performance</li>\n <li>Improved messages grouping</li>\n <li>[FirefoxOS] Fixed notifications for &lt;= 1.1</li>\n <li>[FirefoxOS] Fixed phonebook import</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.2.1\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Improved key generation performance on slow devices</li>\n <li>Added network sleep for mobile devices</li>\n <li>[FirefoxOS] Added support of PUSH notifications</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.2\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Updated contacts list, added edit mode</li>\n <li>First Firefox OS release. See <a href="https://marketplace.firefox.com/app/telegram" target="_blank">Firefox Marketplace</a></li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.9\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.9\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Improvements of performance</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.8\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.8\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Improved mobile layout</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.7\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.7\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Improved mobile layout</li>\n <li>Added file cache for Firefox and Android</li>\n <li>New design for forwarded messages</li>\n <li>Hash-tags support</li>\n <li>Messaging bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.6\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.6\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Added search of messages</li>\n <li>Improved performance of chats with lots of unread messages</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.5\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.5\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Added registration</li>\n <li>Improved experience for newly registered users</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.4\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.4\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Browse userpic history (click on the photo in user info)</li>\n <li>New <a href="https://github.com/zhukov/webogram" target="_blank" title="Source code on GitHub">GitHub</a>, <a href="https://twitter.com/telegram_web" target="_blank" title="Follow us on Twitter!">Twitter</a> buttons in Settings</li>\n <li>Updated keyboard shortcuts:</li>\n <ul>\n <li><strong>Alt+Home</strong> - switch to first (most recent) conversation</li>\n <li>Removed <strong>Alt+1, 2, 3..</strong> shortcuts due to conflicts in different browsers</li>\n </ul>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.3\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.3\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Added version history to welcome screen</li>\n <li>Added keyboard shortcuts:</li>\n <ul>\n <li><strong>Tab</strong> - set focus to message field</li>\n <li><strong>Esc</strong> or <strong>Shift+Tab</strong> - set focus to search field</li>\n <li><strong>Up/Down</strong> (while in search field) - move between conversations</li>\n <li><strong>Enter</strong> (while in search field) - open selected or first conversation</li>\n <li><strong>Alt+Up/Down</strong> - move to previous/next conversation</li>\n </ul>\n <li>Improved grouping for messages</li>\n <li>Fixed video modal positioning bug</li>\n <li>Fixed focusing issues on mobile</li>\n </ul>\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>\n'),
e.put("partials/mobile/channel_modal.html",'<div class="chat_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown" dropdown ng-if="hasRights(\'edit_title\') || hasRights(\'edit_photo\')">\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-if="chatFull.chat.photo.photo_small" ng-if="hasRights(\'edit_photo\')">\n <a ng-click="deletePhoto()" my-i18n="group_modal_menu_delete_photo"></a>\n </li>\n <li ng-if="hasRights(\'edit_title\')">\n <a ng-click="editChannel()" ng-switch="isMegagroup">\n <span ng-switch-when="true" my-i18n="group_modal_menu_edit_group"></span>\n <span ng-switch-default my-i18n="channel_modal_menu_edit"></span>\n </a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title" ng-switch="isMegagroup">\n <h4>\n <span ng-switch-when="true" my-i18n="group_modal_info"></span>\n <span ng-switch-default my-i18n="channel_modal_info"></span>\n </h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="mobile_user_modal_photo_profile_wrap">\n\n <a ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="mobile_user_modal_image_wrap pull-left" my-peer-photolink="::-chatFull.chat.id" img-class="mobile_user_modal_image mobile_chat_modal_image" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\n\n <div class="mobile_user_modal_info_wrap clearfix">\n <h4 class="mobile_user_modal_header" my-peer-link="-chatFull.chat.id"></h4>\n <p class="mobile_user_modal_status" ng-if="chatFull.participants_count > 0" ng-switch="isMegagroup">\n <ng-pluralize ng-switch-when="true"\n count="chatFull.participants_count"\n when="group_modal_pluralize_participants">\n </ng-pluralize>\n <ng-pluralize ng-switch-default\n count="chatFull.participants_count"\n when="group_modal_pluralize_subscribers">\n </ng-pluralize>\n </p>\n </div>\n\n </div>\n\n <div class="mobile_modal_section" ng-if="chatFull.chat.username">\n <h4 class="mobile_modal_section_header" my-i18n="channel_modal_share_link"></h4>\n <div class="mobile_modal_section_value">\n <a class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="\'https://t.me/\' + chatFull.chat.username" ng-href="https://t.me/{{chatFull.chat.username}}" target="_blank"></a>\n </div>\n </div>\n\n <div class="mobile_modal_section" ng-if="!chatFull.chat.username &amp;&amp; chatFull.chat.pFlags.creator">\n <h4 class="mobile_modal_section_header" my-i18n="channel_modal_share_link"></h4>\n <div class="mobile_modal_section_value" ng-switch="chatFull.exported_invite._">\n <a ng-switch-when="chatInviteExported" class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="chatFull.exported_invite.link" ng-href="{{chatFull.exported_invite.link}}" target="_blank"></a>\n <span ng-switch-default my-i18n="channel_modal_share_loading">\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n </span>\n </div>\n </div>\n\n <div class="mobile_modal_section" ng-if="chatFull.rAbout">\n <h4 class="mobile_modal_section_header" my-i18n="channel_modal_description"></h4>\n <div class="mobile_modal_section_value" ng-bind-html="chatFull.rAbout"></div>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="hasRights(\'edit_photo\') &amp;&amp; !photo.updating">\n <span class="mobile_modal_action mobile_modal_upload_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" />\n <span my-i18n="group_modal_update_photo"></span>\n </span>\n </div>\n <div class="mobile_modal_action_wrap" ng-if="photo.updating">\n <span class="mobile_modal_action" my-i18n>\n <span my-i18n="group_modal_update_active"></span>\n <span my-loading-dots></span>\n </span>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="hasRights(\'invite\') || chatFull.chat.pFlags.left" ng-switch="chatFull.chat.pFlags.left">\n <a ng-switch-when="true" class="mobile_modal_action" ng-click="joinChannel()" ng-switch="isMegagroup">\n <span ng-switch-when="true" my-i18n="group_modal_join"></span>\n <span ng-switch-default my-i18n="channel_modal_join"></span>\n </a>\n <a ng-switch-default class="mobile_modal_action" ng-click="inviteToChannel()" my-i18n="channel_modal_add_member"></a>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="group_modal_notifications"></span>\n </a>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="isMegagroup && !chatFull.chat.username && !chatFull.chat.pFlags.left && !chatFull.chat.pFlags.kicked">\n <a class="mobile_modal_action" ng-click="flushHistory()" my-i18n="group_modal_menu_clear_history"></a>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="!chatFull.chat.pFlags.left && !chatFull.chat.pFlags.kicked && !isMegagroup">\n <a class="mobile_modal_action" ng-click="leaveChannel()" my-i18n="channel_modal_leave_channel"></a>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="chatFull.chat.pFlags.creator">\n <a class="mobile_modal_action" ng-click="deleteChannel()" ng-switch="isMegagroup">\n <span ng-switch-when="true" my-i18n="group_modal_delete_group"></span>\n <span ng-switch-default my-i18n="channel_modal_delete_channel"></span>\n </a>\n </div>\n\n <div class="mobile_modal_section" ng-if="participants.length > 0">\n <h4 class="mobile_modal_section_header" my-i18n="group_modal_members"></h4>\n <div class="mobile_modal_section_body">\n\n <div class="chat_modal_members_list">\n\n <div class="chat_modal_participant_wrap clearfix" ng-repeat="participant in participants | orderBy:\'-user.sortStatus\'">\n\n <a ng-if="participant.canLeave" ng-click="leaveChannel()" class="chat_modal_participant_kick pull-right" my-i18n="group_modal_menu_leave"></a>\n <a ng-if="participant.canKick" ng-click="kickFromChannel(participant.user_id)" class="chat_modal_participant_kick pull-right" my-i18n="group_modal_members_kick"></a>\n\n <a class="chat_modal_participant_photo pull-left" my-peer-photolink="participant.user_id" img-class="chat_modal_participant_photo" status="true"></a>\n\n <div class="chat_modal_participant_name">\n <a my-peer-link="participant.user_id"></a>\n </div>\n <div class="chat_modal_participant_status" my-user-status="::participant.user_id" bot-chat-privacy="true"></div>\n </div>\n\n </div>\n\n </div>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/mobile/chat_create_modal.html",'<div class="contacts_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-class="{disabled: group.creating}" ng-click="createGroup()" ng-bind="group.creating ? \'group_create_submit_active\' : \'group_create_submit\' | i18n" ng-disabled="group.creating"></a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="group_create_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="createGroup()" my-vertical-position="0.25">\n\n <div class="form-group">\n <input class="form-control input-lg" my-focused type="text" placeholder="{{\'group_create_name\' | i18n}}" ng-model="group.name"/>\n </div>\n\n </form>\n\n </div>\n\n</div>'),e.put("partials/mobile/chat_edit_modal.html",'<div class="contacts_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-class="{disabled: group.updating}" ng-click="updateGroup()" ng-bind="group.updating ? \'group_edit_submit_active\' : \'group_edit_submit\' | i18n" ng-disabled="group.updating"></a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="group_edit_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="updateGroup()" my-vertical-position="0.25">\n\n <div class="form-group">\n <input class="form-control input-lg" my-focused type="text" placeholder="{{\'group_edit_name\' | i18n}}" ng-model="group.name"/>\n </div>\n\n </form>\n\n </div>\n\n</div>'),e.put("partials/mobile/chat_modal.html",'<div class="chat_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown" dropdown>\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-if="chatFull.thumb.location" ng-if="hasRights(\'edit_title\')">\n <a ng-click="deletePhoto()" my-i18n="group_modal_menu_delete_photo"></a>\n </li>\n <li ng-if="hasRights(\'edit_title\')">\n <a ng-click="editTitle()" my-i18n="group_modal_menu_edit_group"></a>\n </li>\n <li>\n <a ng-click="flushHistory(true)" my-i18n="group_modal_menu_clear_history"></a>\n </li>\n <li ng-if="chatFull.chat.pFlags.creator">\n <a ng-click="migrateToSuperGroup()" my-i18n="group_modal_migrate_to_supergroup"></a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="group_modal_info"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="mobile_user_modal_photo_profile_wrap">\n\n <a ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="mobile_user_modal_image_wrap pull-left" my-peer-photolink="::-chatFull.chat.id" img-class="mobile_user_modal_image mobile_chat_modal_image" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\n\n <div class="mobile_user_modal_info_wrap clearfix">\n <h4 class="mobile_user_modal_header" my-peer-link="-chatFull.chat.id"></h4>\n <p class="mobile_user_modal_status" ng-if="chatFull.chat.participants_count > 0">\n <ng-pluralize count="chatFull.chat.participants_count"\n when="group_modal_pluralize_participants">\n </ng-pluralize>\n </p>\n </div>\n\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="hasRights(\'invite\') &amp;&amp; chatFull.participants.participants.length">\n <a class="mobile_modal_action" ng-click="inviteToGroup()" my-i18n="group_modal_add_member"></a>\n </div>\n <div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ != \'chatForbidden\' && !chatFull.chat.pFlags.left && chatFull.chat.pFlags.creator">\n <a class="mobile_modal_action" ng-click="inviteViaLink()" my-i18n="group_modal_menu_share_link"></a>\n </div>\n <div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ == \'chatForbidden\'">\n <a class="mobile_modal_action" ng-click="flushHistory()" my-i18n="group_modal_delete_group"></a>\n </div>\n <div class="mobile_modal_action_wrap" ng-if="hasRights(\'edit_photo\') &amp;&amp; !photo.updating">\n <span class="mobile_modal_action mobile_modal_upload_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" />\n <span my-i18n="group_modal_update_photo"></span>\n </span>\n </div>\n <div class="mobile_modal_action_wrap" ng-if="photo.updating">\n <span class="mobile_modal_action" my-i18n>\n <span my-i18n="group_modal_update_active"></span>\n <span my-loading-dots></span>\n </span>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="group_modal_notifications"></span>\n </a>\n </div>\n\n <div class="mobile_modal_section">\n <h4 class="mobile_modal_section_header" my-i18n="group_modal_members"></h4>\n <div class="mobile_modal_section_body">\n\n <div class="chat_modal_members_list">\n\n <div class="chat_modal_participant_wrap clearfix" ng-repeat="participant in chatFull.participants.participants | orderBy:\'-user.sortStatus\'">\n <a ng-if="participant.canKick" ng-click="kickFromGroup(participant.user_id)" class="chat_modal_participant_kick pull-right" my-i18n="group_modal_members_kick"></a>\n <a ng-if="participant.canLeave" ng-click="leaveGroup()" class="chat_modal_participant_kick pull-right" my-i18n="group_modal_menu_delete_group"></a>\n\n <a class="chat_modal_participant_photo pull-left" my-peer-photolink="participant.user_id" img-class="chat_modal_participant_photo" status="true"></a>\n\n <div class="chat_modal_participant_name">\n <a my-peer-link="participant.user_id"></a>\n </div>\n <div class="chat_modal_participant_status" my-user-status="::participant.user_id" bot-chat-privacy="true"></div>\n </div>\n\n </div>\n\n </div>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/mobile/contacts_modal.html",'<div class="contacts_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header" ng-switch="action">\n\n <ul ng-switch-when="edit" class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-left">\n <a ng-click="toggleEdit(false)" my-i18n="contacts_modal_edit_cancel"></a>\n </li>\n <li class="navbar-quick-right">\n <a ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="deleteSelected()">\n <my-i18n msgid="contacts_modal_edit_delete"></my-i18n>\n <strong ng-bind="selectedCount"></strong>\n </a>\n </li>\n </ul>\n\n <div ng-switch-default class="navbar-toggle-wrap dropdown" ng-show="!action" dropdown>\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li>\n <a ng-click="toggleEdit(true)" my-i18n="contacts_modal_edit_list"></a>\n </li>\n <li>\n <a ng-click="importContact()" my-i18n="contacts_modal_new_contact"></a>\n </li>\n </ul>\n </div>\n\n <ul ng-switch-default class="nav navbar-nav navbar-quick-nav">\n <li ng-if="action == \'select\' || action == \'new_group\'" class="navbar-quick-right">\n <a ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" my-i18n="modal_next"></a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 ng-switch="action">\n <div ng-switch-when="new_group" ng-switch="selectedCount > 0">\n <span ng-switch-when="true">\n <ng-pluralize count="selectedCount" when="contacts_modal_pluralize_new_group_members">\n </ng-pluralize>\n </span>\n <span ng-switch-default my-i18n="group_create_contacts_modal_title"></span>\n </div>\n <span ng-switch-default my-i18n="contacts_modal_title"></span>\n </h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="contacts_modal_search">\n <input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query"/>\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n </div>\n\n\n <div class="contacts_modal_col contacts_wrap contacts_scrollable_wrap mobile_scrollable_wrap" my-contacts-list-mobile my-infinite-scroller-mobile>\n <ul class="contacts_modal_members_list nav nav-pills nav-stacked">\n\n <li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | limitTo: slice.limit track by contact.userID" ng-class="{active: selectedContacts[contact.userID], disabled: disabledContacts[contact.userID]}">\n <a class="contacts_modal_contact" ng-click="contactSelect(contact.userID)">\n\n <i ng-if="multiSelect" class="icon icon-contact-tick"></i>\n\n <div class="contacts_modal_contact_photo pull-left" my-peer-photolink="contact.userID" status="true" img-class="contacts_modal_contact_photo"></div>\n <div class="contacts_modal_contact_name" my-peer-link="contact.userID"></div>\n <div class="contacts_modal_contact_status" ng-switch="contact.found">\n <span ng-switch-when="true" ng-bind="\'@\' + contact.user.username"></span>\n <span ng-switch-default my-user-status="::contact.userID"></span>\n </div>\n </a>\n </li>\n\n </ul>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/mobile/country_select_modal.html",'<div class="countries_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 class="modal_simple_header" my-i18n="country_select_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="countries_modal_search">\n <input class="form-control countries_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query"/>\n <a class="countries_modal_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n </div>\n\n <div class="countries_modal_col countries_wrap countries_scrollable_wrap mobile_scrollable_wrap" my-countries-list-mobile my-infinite-scroller-mobile>\n <ul class="countries_modal_members_list nav nav-pills nav-stacked">\n\n <li class="countries_modal_country_wrap clearfix" ng-repeat="country in countries | limitTo : slice.limit track by $index">\n <a class="countries_modal_country" ng-click="$close(country)">\n <span class="countries_modal_country_code pull-right" ng-bind="country.code"></span>\n <span class="countries_modal_country_name" ng-bind="country.name"></span>\n </a>\n </li>\n\n </ul>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/mobile/dialog.html",'<a class="im_dialog" ng-mousedown="dialogSelect(dialogMessage.peerString, dialogMessage.unreadCount == -1 && dialogMessage.mid)">\n\n <div class="im_dialog_meta pull-right text-right">\n <div class="im_dialog_date" ng-bind="dialogMessage.dateText"></div>\n <span\n class="im_dialog_badge badge ng-hide"\n ng-show="dialogMessage.unreadCount > 0 && !dialogMessage.pFlags.out"\n ng-bind="dialogMessage.unreadCount"\n my-peer-muted="dialogMessage.peerID" muted-class="im_dialog_badge_muted"\n ></span>\n <i\n class="im_dialog_unread ng-hide"\n ng-show="dialogMessage.pFlags.out && dialogMessage.pFlags.unread"\n ></i>\n <i\n class="im_dialog_pinned ng-hide"\n ng-show="dialogMessage.pinned && !dialogMessage.unreadCount && !dialogMessage.pFlags.unread"\n ></i>\n </div>\n\n <div class="im_dialog_photo pull-left" my-peer-photolink="::dialogMessage.peerID" img-class="im_dialog_photo" watch="true" for-dialog="true"></div>\n\n <div class="im_dialog_message_wrap" ng-class="{im_dialog_message_wtyping: dialogMessage.typing > 0}">\n\n <div class="im_dialog_peer">\n <span my-peer-link="dialogMessage.peerID" verified="true" for-dialog="true"></span>\n </div>\n\n <div ng-switch="dialogMessage.typing ? \'typing\' : (!dialogMessage.unreadCount && dialogMessage.draft ? \'draft\' : (dialogMessage.deleted ? \'deleted\' : \'message\'))">\n\n <div ng-switch-when="typing" class="im_dialog_message im_dialog_message_typing">\n <span class="im_short_message_service" my-i18n="im_conversation_group_typing">\n <my-i18n-param name="name"><span my-peer-link="dialogMessage.typing" short="true" class="im_dialog_chat_from_wrap"></span></my-i18n-param><my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n </span>\n </div>\n\n <div ng-switch-when="draft" class="im_dialog_message">\n <span class="im_dialog_chat_from_wrap">\n <span class="im_dialog_draft_from" my-i18n="conversation_draft"></span>\n </span>\n <span class="im_short_message_text" ng-bind-html="dialogMessage.draft.richMessage"></span>\n </div>\n\n <div ng-switch-when="deleted" class="im_dialog_message">\n <span class="im_short_message_text">&nbsp;</span>\n </div>\n\n <div ng-switch-when="message" class="im_dialog_message">\n <span ng-switch="dialogMessage.peerID > 0 || dialogMessage.fromID < 0">\n <span ng-switch-when="true">\n <span class="im_dialog_chat_from_wrap" ng-if="dialogMessage.pFlags.out && dialogMessage.fromID > 0">\n <span\n class="im_dialog_chat_from"\n my-i18n="conversation_you"\n ></span><span ng-if="dialogMessage.message.length > 0 || !!dialogMessage.media">:</span>\n </span>\n </span>\n <span ng-switch-default>\n <span class="im_dialog_chat_from_wrap" ng-switch="dialogMessage.pFlags.out && dialogMessage._ != \'messageService\'">\n <span\n ng-switch-when="false"\n class="im_dialog_chat_from"\n my-peer-link="dialogMessage.from_id" short="true" peer-watch="true"\n ></span><span\n ng-switch-when="true"\n class="im_dialog_chat_from"\n my-i18n="conversation_you"\n ></span><span ng-if="dialogMessage.message.length || dialogMessage.media">:</span>\n </span>\n </span>\n </span>\n\n <span my-short-message="dialogMessage"></span>\n </div>\n </div>\n\n </div>\n\n</a>\n'),e.put("partials/mobile/edit_contact_modal.html",'<div class="import_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'contact_edit_modal_submit_active\' : \'contact_edit_modal_submit\'| i18n" ng-disabled="progress.enabled"></a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="contact_edit_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="doImport()" my-vertical-position="0.3">\n\n <div class="form-group">\n <span class="form-control uneditable_input input-lg disabled" disabled my-focused type="text" ng-bind="importContact.phone | phoneNumber"></span>\n </div>\n <div class="form-group">\n <input class="form-control input-lg" type="text" placeholder="{{\'contact_edit_modal_first_name\' | i18n}}" ng-model="importContact.first_name" my-submit-on-enter/>\n </div>\n <div class="form-group">\n <input class="form-control input-lg" type="text" placeholder="{{\'contact_edit_modal_last_name\' | i18n}}" ng-model="importContact.last_name" my-submit-on-enter/>\n </div>\n\n </form>\n\n </div>\n\n</div>'),e.put("partials/mobile/full_gif.html",'<a class="img_gif_with_progress_wrap" ng-click="toggle($event)">\n\n <div class="img_gif_image_wrap">\n\n <div class="img_gif_meta" ng-show="!isActive || needClick" ng-switch="document.progress.enabled">\n <div ng-switch-when="true" class="img_gif_meta_contents">\n <i class="icon icon-cancel">\n <i class="icon icon-bar"></i>\n <i class="icon icon-bar"></i>\n </i>\n <div my-arc-progress="document.progress.percent"></div>\n </div>\n <div ng-switch-default class="img_gif_label noselect img_gif_meta_contents">GIF</div>\n </div>\n\n <div ng-if="document.url" ng-show="document.downloaded &amp;&amp; isActive" ng-switch="document.mime_type == \'video/mp4\'">\n <video ng-switch-when="true" width="{{document.thumb.width}}" height="{{document.thumb.height}}" controls loop muted class="img_gif_video">\n <source ng-src="{{document.url}}" type="video/mp4">\n </video>\n <img ng-switch-default class="img_gif_image" ng-src="{{document.url}}" width="{{document.thumb.width}}" height="{{document.thumb.height}}" />\n </div>\n <img ng-hide="document.downloaded &amp;&amp; isActive" class="img_gif_thumb" my-load-thumb thumb="document.thumb" />\n\n </div>\n\n</a>'),e.put("partials/mobile/full_photo.html",'<div class="img_fullsize_with_progress_wrap">\n <div class="img_fullsize_progress_overlay" ng-show="progress.enabled">\n <div class="img_fullsize_progress_wrap">\n <div class="img_fullsize_progress progress tg_progress" ng-show="progress.percent > 0">\n <div class="progress-bar progress-bar-success" ng-style="{width: progress.percent + \'%\'}">\n </div>\n </div>\n </div>\n </div>\n <div class="photo_full_wrap">\n <a class="photo_modal_image">\n <img class="photo_modal_image"/>\n </a>\n </div>\n <div class="photo_modal_error_wrap" ng-if="error">\n <div class="photo_modal_error" ng-if="error.html" ng-bind-html="error.html"></div>\n <div class="photo_modal_error" ng-if="error.text" ng-bind="error.text"></div>\n </div>\n</div>'),e.put("partials/mobile/full_video.html",'<div class="img_fullsize_with_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\n <div class="img_fullsize_progress_overlay" ng-show="video.progress.enabled">\n <div class="img_fullsize_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\n <div class="img_fullsize_progress progress tg_progress">\n <div class="progress-bar progress-bar-success" style="width: {{video.progress.percent}}%"></div>\n </div>\n </div>\n </div>\n <div class="img_fullsize_wrap" ng-if="!video.url">\n <img\n class="img_fullsize"\n my-load-thumb\n thumb="video.fullThumb"\n />\n </div>\n <div class="video_full_player" ng-if="video.url" ng-switch="player.quicktime">\n <embed ng-switch-when="true" ng-src="{{video.url}}" width="{{video.full.width}}" height="{{video.full.height}}" autoplay="true" CONTROLLER="TRUE" SHOWCONTROLS="TRUE" controller="true" loop="false" pluginspace="http://www.apple.com/quicktime/" />\n <video ng-switch-default width="{{video.full.width}}" height="{{video.full.height}}" controls autoplay >\n <source ng-src="{{video.url}}" type="video/mp4">\n </video>\n </div>\n <div class="video_full_error_wrap" ng-if="error">\n <div class="video_full_error" ng-if="error.html" ng-bind-html="error.html"></div>\n <div class="video_full_error" ng-if="error.text" ng-bind="error.text"></div>\n </div>\n</div>'),e.put("partials/mobile/game_modal.html",'<div class="game_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown" dropdown>\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li>\n <a ng-click="forward()" my-i18n="game_modal_share_game"></a>\n </li>\n <li>\n <a ng-click="forward(true)" my-i18n="game_modal_share_score"></a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 ng-bind-html="game.rTitle"></h4>\n <small>@<span my-peer-link="botID"></span></small>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body" ng-bind-html="game.full.html" my-game-communication></div>\n\n</div>\n'),
e.put("partials/mobile/head.html",'<div class="tg_page_head">\n <div class="navbar navbar-static-top navbar-inverse" role="navigation" ng-class="{navbar_peer_not_selected: !curDialog.peer, navbar_offline: offline, navbar_history_select: historyState.selectActions}">\n <div class="container">\n\n\n <a class="navbar-peer-wrap" my-peer-photolink="historyPeer.id" peer-watch="true"></a>\n\n <div class="navbar-toggle-wrap dropdown" dropdown ng-switch="!curDialog.peer">\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul ng-switch-when="true" class="dropdown-menu">\n <li><a ng-click="openGroup()" my-i18n="head_new_group"></a></li>\n <li><a ng-click="importContact()" my-i18n="head_new_contact"></a></li>\n <li ng-if="!isEmpty.contacts"><a ng-click="openContacts()" my-i18n="head_contacts"></a></li>\n <li><a ng-click="openSettings()" my-i18n="head_settings"></a></li>\n <li><a ng-click="logOut()" my-i18n="head_log_out"></a></li>\n </ul>\n <ul ng-switch-default class="dropdown-menu">\n <li><a ng-click="toggleEdit()" my-i18n="head_select_messages"></a></li>\n <li ng-if="!historyFilter.mediaType" class="divider"></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'photos\')" my-i18n="head_media_photos"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'video\')" my-i18n="head_media_video"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'documents\')" my-i18n="head_media_documents"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'music\')" my-i18n="head_media_music"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'urls\')" my-i18n="head_media_links"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'audio\')" my-i18n="head_media_audio"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'round\')" my-i18n="head_media_round"></a></li>\n <li ng-if="!historyFilter.mediaType && isHistoryPeerGroup()" class="divider"></li>\n <li ng-if="!historyFilter.mediaType && isHistoryPeerGroup()"><a ng-click="toggleMedia(\'mentions\')" my-i18n="head_media_mymentions"></a></li>\n </ul>\n </div>\n\n <a class="navbar-search-wrap" ng-click="toggleSearch()">\n <i class="icon-search"></i>\n </a>\n\n <div class="navbar-header">\n\n <a class="navbar-brand tg_logo_wrap" href="#/im"><i class="icon icon-tg-logo"></i><i class="icon icon-tg-title"></i></a>\n\n <span class="tg_head_logo"></span></a>\n\n <div class="tg_head_peer_menu_wrap" ng-switch="curDialog.peer &amp;&amp; historyFilter.mediaType.length > 0">\n <ul ng-switch-when="true" class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="toggleMedia()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title" ng-switch="historyFilter.mediaType">\n <h4 ng-switch-when="photos" my-i18n="im_media_photos"></h4>\n <h4 ng-switch-when="video" my-i18n="im_media_video"></h4>\n <h4 ng-switch-when="documents" my-i18n="im_media_documents"></h4>\n <h4 ng-switch-when="audio" my-i18n="im_media_audio"></h4>\n <h4 ng-switch-when="round" my-i18n="im_media_round"></h4>\n <h4 ng-switch-when="music" my-i18n="im_media_music"></h4>\n <h4 ng-switch-when="urls" my-i18n="im_media_links"></h4>\n <h4 ng-switch-when="mentions" my-i18n="im_media_mentions"></h4>\n </div>\n </a>\n </li>\n </ul>\n <div ng-switch-default ng-switch="historyState.selectActions">\n <ul ng-switch-when="selected" class="nav navbar-navbar navbar-quick-nav navbar-history-edit">\n <li class="navbar-quick-right">\n <a ng-click="toggleEdit()" my-i18n="modal_cancel"></a>\n </li>\n <li class="navbar-quick-left">\n <a ng-click="selectedFlush()" my-i18n="head_clear_all"></a>\n </li>\n <li class="navbar-quick-title" my-i18n="head_select"></li>\n </ul>\n <ul ng-switch-default class="nav navbar-nav navbar-quick-nav" ng-switch="historyPeer.id > 0">\n <li ng-switch-when="true">\n <a href="#/im" class="navbar-quick-profile-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-peer-link="historyPeer.id" peer-watch="true"></h4>\n <small ng-switch="historyState.typing.length">\n <span ng-switch-when="1" class="status_online">\n <my-i18n msgid="head_typing"></my-i18n><span my-loading-dots></span>\n </span>\n <span ng-switch-default my-user-status="historyPeer.id" for-dialog="true"></span>\n </small>\n </div>\n </a>\n </li>\n <li ng-switch-default>\n <a href="#/im" class="navbar-quick-group-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-peer-link="historyPeer.id" peer-watch="true" for-dialog="true"></h4>\n <small ng-switch="historyState.typing.length">\n <span ng-switch-when="0" class="tg_head_peer_status" my-chat-status="-historyPeer.id"></span>\n <my-i18n>\n <span ng-switch-when="1" class="status_online" my-i18n-format="head_one_typing"></span>\n <span ng-switch-when="2" class="status_online" my-i18n-format="head_two_typing"></span>\n <span ng-switch-default class="status_online" my-i18n-format="head_many_typing"></span>\n <my-i18n-param name="name1"><span my-peer-link="historyState.typing[0]" short="true"></span></my-i18n-param>\n <my-i18n-param name="name2"><span my-peer-link="historyState.typing[1]" short="true"></span></my-i18n-param>\n <my-i18n-param name="names" ng-bind="historyState.typing.length - 1"></my-i18n-param>\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n </my-i18n>\n </small>\n </div>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n <div class="navbar-menu" ng-if="offline">\n\n <ul class="nav navbar-nav navbar-offline">\n <li ng-show="!offlineConnecting"><span class="navbar-offline-text"><my-i18n msgid="head_waiting_for_network"></my-i18n><span my-loading-dots></span></span></li>\n <li ng-show="!offlineConnecting" class="hidden-xs"><a href="" ng-click="retryOnline()" my-i18n="head_retry"></a></li>\n <li ng-show="offlineConnecting"><span class="navbar-offline-text"><my-i18n msgid="head_connecting"></my-i18n><span my-loading-dots></span></span></li>\n </ul>\n </div>\n\n </div>\n </div>\n</div>\n'),e.put("partials/mobile/im.html",'<div my-head></div>\n\n<div class="im_page_wrap" ng-class="{im_page_peer_not_selected: !curDialog.peer}">\n\n <div class="im_page_split clearfix">\n\n <div ng-controller="AppImDialogsController" my-dialogs class="im_dialogs_col_wrap" ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\n <div class="im_dialogs_panel">\n <div class="im_dialogs_search">\n <input class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="searchClear()" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n </div>\n </div>\n\n <div my-dialogs-list-mobile class="im_dialogs_col im_dialogs_scrollable_wrap mobile_scrollable_wrap">\n\n <div class="im_dialogs_empty_wrap" ng-if="isEmpty.contacts" my-vertical-position="0.4">\n <h3 class="im_dialogs_empty_header" my-i18n="im_no_contacts"></h3>\n <p class="im_dialogs_empty_lead" my-i18n="im_get_started_long"></p>\n <button type="button" class="btn btn-primary btn-block im_dialogs_add_contact" ng-click="importContact()" my-i18n="im_add_contact"></button>\n <button ng-if="phonebookAvailable" type="button" class="btn btn-primary btn-block im_dialogs_import_phonebook" ng-click="importPhonebook()" my-i18n="im_import_phonebook"></button>\n </div>\n\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID" ng-class="{active: curDialog.peerID == dialogMessage.peerID}"></li>\n </ul>\n\n <div class="im_dialogs_contacts_wrap" ng-show="myResults.length > 0">\n <h5 my-i18n="im_chat_contacts_title"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="myResult in myResults track by myResult.id" ng-class="{active: curDialog.peerID == myResult.id}">\n <a class="im_dialog" ng-mousedown="dialogSelect(myResult.peerString)">\n <div class="im_dialog_photo pull-left" my-peer-photolink="myResult.id" img-class="im_dialog_photo" watch="true" for-dialog="true"></div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" my-peer-link="myResult.id" verified="true" for-dialog="true"></span>\n </div>\n <div class="im_dialog_message" ng-switch="myResult.id > 0">\n <span ng-switch-when="true" class="im_dialog_message_text" my-user-status="::myResult.id" for-dialog="true"></span>\n <span ng-switch-default class="im_dialog_message_text" my-chat-status="::-myResult.id"></span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n\n <div class="im_dialogs_contacts_wrap" ng-show="foundPeers.length > 0">\n <h5 my-i18n="im_found_title"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="foundPeer in foundPeers track by foundPeer.id" ng-class="{active: curDialog.peerID == foundPeer.id}">\n <a class="im_dialog" ng-mousedown="dialogSelect(foundPeer.peerString)">\n <div class="im_dialog_photo pull-left" my-peer-photolink="foundPeer.id" img-class="im_dialog_photo" watch="true" for-dialog="true"></div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" my-peer-link="foundPeer.id" verified="true" for-dialog="true"></span>\n </div>\n <div class="im_dialog_message">\n <span class="im_dialog_message_text" ng-switch="foundPeer.id > 0">\n <span ng-bind="::\'@\' + foundPeer.username + \', \'"></span>\n <span ng-switch-when="true" class="im_dialog_message_text" my-user-status="::foundPeer.id" for-dialog="true"></span>\n <span ng-switch-default class="im_dialog_message_text" my-chat-status="::-foundPeer.id"></span>\n </span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n\n <div class="im_dialogs_messages_wrap" ng-show="foundMessages.length > 0">\n <h5 my-i18n="im_messages"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in foundMessages track by dialogMessage.mid" ng-class="{active: curDialog.peerID == dialogMessage.peerID &amp;&amp; curDialog.messageID == dialogMessage.mid}"></li>\n </ul>\n </div>\n\n </div>\n </div>\n\n <div class="im_history_col_wrap" ng-controller="AppImHistoryController" ng-class="{im_history_loaded: state.loaded}">\n\n <div class="im_history_not_selected_wrap im_history_not_selected" my-vertical-position="0.35" padding="true">\n <my-i18n msgid="im_loading_history"></my-i18n><span my-loading-dots></span>\n </div>\n\n <div class="im_history_selected_wrap">\n <div my-history-mobile class="im_history_col">\n\n <div my-peer-pinned-message-bar="curDialog.peerID" class="im_history_pinned_panel"></div>\n\n <div class="im_history_wrap im_history_scrollable_wrap mobile_scrollable_wrap">\n\n <div class="im_history_scrollable">\n <div class="im_history" ng-class="{im_history_selectable: !historyState.botActions, im_history_select_active: historyState.selectActions}">\n <div ng-if="state.empty" class="im_history_empty" ng-switch="state.mayBeHasMore" my-vertical-position="0.25" padding="true">\n <span ng-switch-when="true">\n <my-i18n msgid="im_loading_history"></my-i18n><span my-loading-dots></span>\n </span>\n <span ng-switch-default my-i18n="im_no_messages"></span>\n </div>\n\n <div class="im_history_messages" ng-class="{im_history_messages_group: historyPeer.id < 0}">\n <div class="im_history_messages_peer" ng-show="peerHistory.peerID == historyPeer.id" ng-repeat="peerHistory in peerHistories">\n <div class="im_history_message_wrap" my-message ng-repeat="historyMessage in peerHistory.messages"></div>\n </div>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n <div class="im_bottom_panel_wrap">\n\n <div class="im_edit_panel_wrap clearfix" ng-show="historyState.actions()" ng-switch="historyState.actions()">\n <div class="im_edit_panel_border"></div>\n\n <div ng-switch-when="bot">\n <a ng-show="historyState.botActions == \'param\'" class="btn btn-md btn-md-primary im_edit_cancel_link" ng-click="cancelBot()" my-i18n="modal_cancel"></a>\n <div class="im_edit_start_actions">\n <a class="btn btn-primary im_start_btn" ng-click="startBot()" my-i18n="im_start"></a>\n </div>\n </div>\n <div ng-switch-when="channel">\n <div class="im_edit_start_actions" ng-switch="historyState.channelActions">\n <a ng-switch-when="join" class="btn btn-primary im_start_btn" ng-click="joinChannel()" my-i18n="im_channel_join"></a>\n <a ng-switch-when="mute" class="btn btn-link im_start_btn" ng-click="togglePeerMuted(true)" my-i18n="im_channel_mute"></a>\n <a ng-switch-when="unmute" class="btn btn-link im_start_btn" ng-click="togglePeerMuted(false)" my-i18n="im_channel_unmute"></a>\n </div>\n </div>\n <div ng-switch-when="selected" class="im_edit_selected_actions" my-i18n>\n <a class="btn btn-primary im_edit_forward_btn" ng-click="selectedForward()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" my-i18n-format="im_forward"></a><a class="btn btn-primary im_edit_delete_btn" ng-click="selectedDelete()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" my-i18n-format="im_delete" ng-show="historyState.canDelete"></a>\n <my-i18n-param name="count"><strong class="im_selected_count" ng-show="selectedCount > 0" ng-bind="selectedCount"></strong></my-i18n-param>\n </div>\n </div>\n\n <div class="im_send_panel_wrap" ng-show="!historyState.actions()">\n\n <div class="im_send_form_wrap1">\n\n <div class="im_send_form_wrap clearfix" ng-controller="AppImSendController">\n <div my-send-form draft-message="draftMessage" mentions="mentions" commands="commands" reply-keyboard="historyState.replyKeyboard"></div>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>\n\n<toaster-container toaster-options="{\'position-class\': \'toast-bottom-center\'}"></toaster-container>\n'),e.put("partials/mobile/import_contact_modal.html",'<div class="import_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'contact_import_modal_submit_active\' : \'contact_import_modal_submit\' | i18n" ng-disabled="progress.enabled"></a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="contact_import_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="doImport()" my-vertical-position="0.2">\n\n <div class="form-group">\n <input class="form-control input-lg" my-focused type="text" placeholder="{{\'contact_import_modal_phone\' | i18n}}" ng-model="importContact.phone" my-submit-on-enter/>\n </div>\n <div class="form-group">\n <input class="form-control input-lg" type="text" placeholder="{{\'contact_edit_modal_first_name\' | i18n}}" ng-model="importContact.first_name" my-submit-on-enter/>\n </div>\n <div class="form-group">\n <input class="form-control input-lg" type="text" placeholder="{{\'contact_edit_modal_last_name\' | i18n}}" ng-model="importContact.last_name" my-submit-on-enter/>\n </div>\n\n <div class="import_modal_phonebook_wrap" ng-if="phonebookAvailable">\n <a class="btn btn-link" ng-click="importPhonebook()" my-i18n="contact_import_modal_phonebook"></a>\n </div>\n\n </form>\n\n </div>\n</div>'),e.put("partials/mobile/login.html",'<div class="tg_page_head">\n <div class="navbar navbar-static-top navbar-inverse navbar_peer_not_selected">\n <div class="container">\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right login_head_submit_wrap">\n <a class="disabled" disabled="disabled" ng-if="progress.enabled" class="login_head_submit_progress">\n <my-i18n ng-if="!credentials.phone_code_hash" msgid="login_generating_key"></my-i18n><my-i18n ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" msgid="login_checking_code"></my-i18n><my-i18n ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" msgid="login_signing_up"></my-i18n><my-i18n ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" msgid="login_checking_password"></my-i18n><span my-loading-dots></span>\n </a>\n <a ng-if="!progress.enabled &amp;&amp; !credentials.phone_code_hash" ng-click="sendCode()">\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\n </a>\n <a ng-if="!progress.enabled &amp;&amp; credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" ng-click="logIn()">\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\n </a>\n <a ng-if="!progress.enabled &amp;&amp; credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" ng-click="logIn(true)">\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\n </a>\n <a ng-if="!progress.enabled &amp;&amp; credentials.phone_code_valid &amp;&amp; credentials.password_needed" ng-click="checkPassword()">\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\n </a>\n </li>\n <li>\n <a class="navbar-brand tg_logo_wrap" href="https://telegram.org" target="_blank"><i class="icon icon-tg-logo"></i><i class="icon icon-tg-title"></i></a>\n </li>\n </ul>\n </div>\n\n </div>\n </div>\n</div>\n\n\n<div class="login_page_wrap" my-custom-background="#e7ebf0">\n <div class="login_page">\n <div class="login_form_wrap" my-vertical-position="0.2" padding="true">\n <div class="error" ng-if="error.message" ng-bind="error.message"></div>\n\n <form name="mySendCodeForm" ng-if="!credentials.phone_code_hash" ng-submit="sendCode()">\n <h3 class="login_form_head" my-i18n="login_sign_in"></h3>\n <p class="login_form_lead" my-i18n="login_enter_number_description"></p>\n\n <div class="md-input-group md-input-has-value login_phone_country_input_group" ng-click="chooseCountry()">\n <label class="md-input-label" my-i18n="login_country_select_placeholder"></label>\n <div autocomplete="off" class="md-input" ng-bind="credentials.phone_country_name"></div>\n </div>\n\n <div class="login_phone_groups_wrap clearfix">\n\n <div class="md-input-group login_phone_code_input_group" ng-class="{\'md-input-error\': error.field == \'phone\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="login_code_input_placeholder"></label>\n <input autocomplete="off" class="md-input" my-focused name="phone_country" type="tel" ng-model="credentials.phone_country" />\n </div>\n\n <div class="md-input-group login_phone_num_input_group" ng-class="{\'md-input-error\': error.field == \'phone\'}" my-labeled-input ng-switch="error.field == \'phone\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_number"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_tel_input_placeholder"></label>\n <input required autocomplete="off" class="md-input" my-focus-on="country_selected" name="phone_number" type="tel" ng-model="credentials.phone_number" />\n </div>\n\n </div>\n <div class="login_form_messaging" ng-show="progress.enabled" my-i18n="login_generating_keys_info"></div>\n </form>\n\n <form name="myLoginForm" ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" ng-submit="logIn()">\n <h3 class="login_phone_head"><span ng-bind="credentials.phone_country"></span> <span ng-bind="credentials.phone_number"></span></h3>\n <div class="login_edit_phone"><a ng-click="editPhone()" my-i18n="login_edit_number"></a></div>\n\n <div ng-switch="credentials.type._">\n <p ng-switch-when="auth.sentCodeTypeApp" class="login_smscode_lead" my-i18n="login_enter_code_label_md"></p>\n <p ng-switch-when="auth.sentCodeTypeCall" class="login_smscode_lead" my-i18n="login_enter_call_code_label_md"></p>\n <p ng-switch-default class="login_smscode_lead" my-i18n="login_enter_sms_code_label_md"></p>\n </div>\n\n <div ng-if="nextPending.type" ng-switch="nextPending.remaining > 0">\n <p ng-switch-when="true" class="login_smscode_lead">\n <span ng-switch="nextPending.type._" my-i18n>\n <span ng-switch-when="auth.codeTypeCall" my-i18n-format="login_call_remaining"></span>\n <span ng-switch-default my-i18n-format="login_code_remaining"></span>\n <my-i18n-param name="remaining" ng-bind="nextPending.remaining | duration"></my-i18n-param>\n </span>\n </p>\n <p ng-switch-default class="login_smscode_lead" ng-switch="nextPending.progress">\n <a ng-switch-when="true" ng-disabled class="disabled">\n <span my-i18n="login_code_requesting"></span><span my-loading-dots></span>\n </a>\n <a ng-switch-default ng-click="sendNext()" ng-switch="nextPending.type._">\n <span ng-switch-when="auth.codeTypeCall" my-i18n="login_code_not_received_call"></span>\n <span ng-switch-default my-i18n="login_code_not_received"></span>\n </a>\n </p>\n </div>\n\n <div class="md-input-group md-input-group-centered" ng-class="{\'md-input-error\': error.field == \'phone_code\'}" my-labeled-input ng-switch="error.field == \'phone_code\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_sms_code"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_number_input_placeholder"></label>\n <input autocomplete="off" class="md-input" my-focused name="phone_code" type="tel" ng-model="credentials.phone_code" required />\n </div>\n </form>\n\n <form name="myFullNameForm" ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" ng-submit="logIn(true)">\n <h3 class="login_form_head" my-i18n="login_your_info"></h3>\n <p class="login_form_lead" my-i18n="login_fulll_name_label"></p>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'first_name\'}" my-labeled-input ng-switch="error.field == \'first_name\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_first_name"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_first_name"></label>\n <input autocomplete="off" class="md-input" my-focused name="first_name" type="text" ng-model="credentials.first_name" required />\n </div>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'last_name\'}" my-labeled-input ng-switch="error.field == \'last_name\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_last_name"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_last_name"></label>\n <input autocomplete="off" class="md-input" name="last_name" type="text" ng-model="credentials.last_name" />\n </div>\n\n </form>\n\n <form name="myPasswordForm" ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" ng-submit="checkPassword()">\n <h3 class="login_form_head" my-i18n="login_password_title"></h3>\n <p class="login_form_lead" my-i18n="login_password_label"></p>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'password\'}" my-labeled-input ng-switch="error.field == \'password\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_password"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_password"></label>\n <input autocomplete="off" class="md-input" my-focused name="password" type="password" ng-model="credentials.password" my-submit-on-enter required />\n </div>\n\n <p ng-if="password.hint.length > 0" class="login_form_hint" ng-bind="password.hint"></p>\n\n <div class="login_forgot_button">\n <button class="btn btn-md" ng-click="forgotPassword($event)" my-i18n="login_password_forgot_link"></button>\n </div>\n\n <div ng-if="canReset" class="login_reset_button">\n <button class="btn btn-md btn-md-danger" ng-click="resetAccount($event)" my-i18n="login_account_reset"></button>\n </div>\n\n </form>\n\n </div>\n\n <div ng-switch="about.shown">\n <div ng-switch-when="true" class="login_footer_about_wrap" my-scroll-to-on="$init">\n <h3><span my-i18n="login_about_title"></span><a ng-click="about.shown = false" class="login_footer_about_hide" my-i18n="login_about_hide"></a></h3>\n <p my-i18n="login_about_desc1_md"></p>\n <p my-i18n="login_about_desc2_md"></p>\n <p my-i18n="login_about_desc3_md">\n <my-i18n-param name="source-link">\n <a href="https://github.com/zhukov/webogram" target="_blank">{0}</a>\n </my-i18n-param>\n </p>\n </div>\n <div ng-switch-default class="login_footer_wrap">\n <p my-i18n="login_about_intro"></p>\n <a class="logo_footer_learn_more_link" href="" ng-click="about.shown = true" my-i18n="login_about_learn"></a>\n </div>\n\n </div>\n </div>\n\n</div>\n\n'),e.put("partials/mobile/message.html",'<div class="im_message_outer_wrap" ng-click="toggleMessage(historyMessage.mid, $event)">\n\n\n <div class="im_message_wrap clearfix" ng-switch="::historyMessage._ == \'messageService\'">\n\n <div class="im_service_message_wrap" ng-switch-when="true" ng-switch="historyMessage.action._ == \'messageActionBotIntro\'">\n <div ng-switch-when="true" class="im_bot_intro_message_wrap">\n <div class="im_bot_intro_message_header" my-i18n="message_service_bot_intro_header"></div>\n <div class="im_bot_intro_message" ng-bind-html="::historyMessage.action.rDescription"></div>\n </div>\n <div ng-switch-default class="im_service_message">\n <a class="im_message_author" ng-if="::historyMessage.fromID > 0" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true"></a>\n <span class="im_message_service" my-service-message="historyMessage"></span>\n </div>\n\n <a ng-if="::historyMessage.action._ == \'messageActionChatEditPhoto\' || historyMessage.action._ == \'messageActionChannelEditPhoto\'" class="im_service_message_photo_thumb" href="" ng-click="openPhoto(historyMessage.action.photo.id)">\n <img\n class="im_service_message_photo_thumb"\n my-load-thumb\n thumb="historyMessage.action.photo.thumb"\n />\n </a>\n\n </div>\n\n <div ng-switch-default class="im_content_message_wrap" ng-class="::[historyMessage.pFlags.out ? \'im_message_out\' : \'im_message_in\', historyMessage.fwdFromID ? \'im_message_fwd\' : \'\']">\n\n <a class="im_message_from_photo pull-left" my-peer-photolink="::historyMessage.fromID" img-class="im_message_from_photo"></a>\n\n <div class="im_message_meta">\n <div class="im_message_views_wrap" ng-if="::historyMessage.views > 0">\n <div class="im_message_views">\n <i class="icon-message-views"></i><span class="im_message_views_cnt" my-message-views="historyMessage.mid"></span>\n </div>\n </div>\n <a class="im_message_error_btn" ng-if="::historyMessage.pending || historyMessage.error || false" ng-click="historyMessage.send()">\n <i class="icon-message-status" tooltip="{{\'message_action_retry\' | i18n}}"></i>\n </a>\n <span class="im_message_date">\n <span class="im_message_edited" my-message-edited="historyMessage.mid"></span>\n <span class="im_message_date_text">\n <i ng-if="::historyMessage.pFlags.out &amp;&amp; (historyMessage.pFlags.unread || historyMessage.pending) || false" class="icon-message-status" ng-show="!historyMessage.error"></i>\n <span ng-bind="::historyMessage.date | time"></span>\n </span>\n </span>\n </div>\n\n <div my-message-body="historyMessage">\n <div class="im_message_body" ng-class="::{im_message_body_media: historyMessage._ == \'message\' &amp;&amp; historyMessage.media && historyMessage.media._ != \'messageMediaWebPage\' && !historyMessage.media.rCaption && !historyMessage.viaBotID ? true : false}">\n\n <a class="im_message_author" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true"></a>\n <a ng-if="::historyMessage.viaBotID && !historyMessage.fwdFromID" class="im_message_author_via" my-i18n="message_via_bot" ng-click="selectInlineBot(historyMessage.viaBotID, $event)"><my-i18n-param name="bot"><span class="im_message_fwd_author" my-peer-link="historyMessage.viaBotID" username="true" no-watch="true"></span></my-i18n-param></a>\n <span class="im_message_author_admin" my-message-admin-badge="historyMessage"></span>\n\n <a class="im_message_reply_wrap" my-reply-message="::historyMessage.reply_to_mid" ng-if="::historyMessage.reply_to_mid"></a>\n\n <div ng-if="::!!historyMessage.fwdFromID &amp;&amp; !historyMessage.media" class="im_message_fwd_header" ng-switch="!!historyMessage.viaBotID" my-i18n>\n <span ng-switch-when="true" my-i18n-format="message_forwarded_via_message_mobile"></span>\n <span ng-switch-default my-i18n-format="message_forwarded_message_mobile"></span>\n <my-i18n-param name="from"><a class="im_message_fwd_author" my-peer-link="historyMessage.fwdFromID" no-watch="true" post-id="historyMessage.fwdPostID"></a></my-i18n-param>\n <my-i18n-param name="bot"><a class="im_message_fwd_author" my-peer-link="historyMessage.viaBotID" username="true" no-watch="true"></a></my-i18n-param>\n </div>\n\n <div class="im_message_text" dir="auto"></div>\n <div class="im_message_media"></div>\n <div class="im_message_sign"></div>\n\n </div>\n\n <div class="im_message_keyboard"></div>\n\n </div>\n\n </div>\n </div>\n\n</div>\n\n'),
e.put("partials/mobile/message_actions_modal.html",'<div class="message_actions_modal_wrap" my-modal-position>\n\n <div class="message_actions_wrap">\n <button ng-if="historyState.canReply" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_reply" ng-click="$close(\'reply\')"></button>\n <button ng-if="historyState.canEdit" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_edit" ng-click="$close(\'edit\')"></button>\n <button class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_forward" ng-click="$close(\'forward\')"></button>\n <button ng-if="historyState.canDelete" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_delete" ng-click="$close(\'delete\')"></button>\n <button class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_select" ng-click="$close(\'select\')"></button>\n <button class="btn btn-md btn-block" my-i18n="message_action_cancel" ng-click="$dismiss()"></button>\n </div>\n\n</div>\n'),e.put("partials/mobile/message_attach_contact.html",'<div class="im_message_contact">\n <a ng-if="::media.user_id > 0" class="im_message_contact_photo pull-left" my-peer-photolink="media.user_id" img-class="im_message_contact_photo" user-override="media"></a>\n <div class="im_message_contact_name" ng-switch="media.user_id > 0">\n <a ng-switch-when="true" my-peer-link="media.user_id" user-override="media"></a>\n <span ng-switch-default ng-bind-html="::media.rFullName"></span>\n </div>\n <div class="im_message_contact_phone" ng-bind="::media.phone_number | phoneNumber"></div>\n</div>'),e.put("partials/mobile/message_attach_document.html",'<div ng-switch="::media.document.type">\n\n <div ng-switch-when="gif" my-load-gif document="media.document"></div>\n \n <div ng-switch-when="round" my-load-round document="media.document"></div>\n\n <div ng-switch-when="sticker" my-load-sticker document="media.document" open="true"></div>\n\n <div ng-switch-when="voice" class="im_message_audio">\n <div my-audio-player audio="media.document"></div>\n </div>\n\n <div ng-switch-when="audio" class="im_message_audio">\n <div my-audio-player audio="media.document"></div>\n </div>\n\n <div ng-switch-when="video" class="im_message_video im_message_document_thumbed">\n <a class="im_message_video_thumb" href="" ng-click="videoOpen()" ng-style="::{width: media.document.thumb.width + \'px\'}">\n <span class="im_message_video_duration" ng-bind="::media.document.duration | duration"></span>\n <i class="icon icon-videoplay"></i>\n <img\n class="im_message_video_thumb im_message_video_thumb_blurred"\n my-load-thumb\n thumb="media.document.thumb"\n />\n </a>\n </div>\n\n <div ng-switch-default class="im_message_document clearfix" ng-class="{im_message_document_thumbed: !!media.document.thumb, im_message_document_progress: media.document.progress.enabled}">\n\n <a ng-if="::!media.document.thumb" class="im_message_file_button" ng-click="docOpen()" ng-class="{im_message_file_button_dl_doc: media.document.downloaded}">\n <i class="im_message_file_button_icon"></i>\n </a>\n <a ng-if="::media.document.thumb" ng-click="docOpen()">\n <div class="im_message_document_thumb_wrap">\n <img\n class="im_message_document_thumb"\n my-load-thumb\n thumb="media.document.thumb"\n />\n </div>\n </a>\n\n <div class="im_message_document_info">\n <div class="im_message_document_name_wrap">\n <a href="" ng-attr-data-name="{{media_file_name_without_ext}}" ng-attr-data-ext="{{media_file_ext}}" ng-click="docOpen()" class="im_message_document_name"></a>\n <span class="im_message_document_size" ng-if="!media.document.progress.enabled" ng-bind="::media.document.size | formatSize"></span>\n <span class="im_message_document_size" ng-if="media.document.progress.enabled" ng-bind="media.document.progress | formatSizeProgress"></span>\n </div>\n <div class="im_message_document_actions" ng-if="!media.document.progress.enabled" ng-switch="media.document.downloaded">\n <a ng-switch-when="true" href="" ng-click="docSave()" my-i18n="message_attach_document_save"></a>\n <a ng-switch-default href="" ng-click="docSave()" my-i18n="message_attach_document_download"></a>\n <a ng-if="::media.document.withPreview" href="" ng-click="docOpen()" my-i18n="message_attach_document_open"></a>\n </div>\n <div class="clearfix im_message_cancelable_progress_wrap" ng-if="media.document.progress.enabled">\n <a class="im_message_media_progress_cancel pull-right" ng-click="media.document.progress.cancel()" my-i18n="modal_cancel"></a>\n <div class="im_message_download_progress_wrap">\n <div class="progress tg_down_progress">\n <div class="progress-bar progress-bar-success" ng-style="{width: media.document.progress.percent + \'%\'}"></div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n</div>\n<div ng-if="::media.rCaption" class="im_message_document_caption" ng-bind-html="::media.rCaption"></div>\n'),e.put("partials/mobile/message_attach_geo.html",'<a ng-href="{{::media.mapUrl}}" target="_blank" class="im_message_geopoint">\n <img\n class="im_message_venue_geopoint_image"\n my-geo-point-map="media.geo"\n width="200"\n height="100"\n />\n</a>'),e.put("partials/mobile/message_attach_pending.html",'<div class="im_message_document im_message_upload_file" ng-class="::\'im_message_upload_\' + media.type">\n <div class="im_message_file_button im_message_file_button_upload">\n <i class="im_message_file_button_icon"></i>\n </div>\n <div class="im_message_document_info">\n <div class="im_message_document_name_wrap">\n <span class="im_message_document_name" ng-attr-data-name="{{media_file_name_without_ext}}" ng-attr-data-ext="{{media_file_ext}}"></span>\n <span class="im_message_document_size" ng-if="media.progress" ng-bind="media.progress | formatSizeProgress"></span>\n </div>\n <div class="clearfix im_message_cancelable_progress_wrap">\n <a class="im_message_media_progress_cancel pull-right" ng-click="media.progress.cancel()" my-i18n="modal_cancel"></a>\n <div class="im_message_download_progress_wrap">\n <div class="progress tg_down_progress">\n <div class="progress-bar progress-bar-success" role="progressbar" ng-style="{width: media.progress.percent + \'%\'}"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n'),e.put("partials/mobile/message_attach_photo.html",'<a class="im_message_photo_thumb" ng-click="openPhoto(media.photo.id, {m: messageId})" ng-style="::{width: media.photo.thumb.width + \'px\'}" ng-mouseover="preloadPhoto(media.photo.id)">\n <img\n class="im_message_photo_thumb"\n my-load-thumb\n thumb="media.photo.thumb"\n />\n</a>\n<div ng-if="::media.rCaption" class="im_message_photo_caption" ng-bind-html="::media.rCaption"></div>'),e.put("partials/mobile/message_attach_venue.html",'<div class="im_message_venue clearfix">\n\n <a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_venue_geopoint_wrap">\n <img\n class="im_message_venue_geopoint_image"\n my-geo-point-map="media.geo"\n width="100"\n height="100"\n alt="[{{::\'conversation_media_location\' | i18n}} {{::media.mapUrl}}]"\n />\n </a>\n\n <div class="im_message_venue_info">\n <div class="im_message_venue_title_wrap">\n <a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_document_name" ng-bind="::media.title"></a>\n </div>\n <div class="im_message_venue_address" ng-bind="::media.address"></div>\n </div>\n\n</div>\n'),e.put("partials/mobile/message_attach_webpage.html",'<div ng-show="webpage._ == \'webPage\'" class="im_message_webpage_wrap clearfix" ng-switch="webpage.type">\n <div ng-switch-when="photo" class="im_message_webpage_photo">\n <div class="im_message_webpage_site" ng-bind="webpage.site_name || webpage.display_url"></div>\n <div class="im_message_webpage_title">\n <a href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\n </div>\n <div ng-if="webpage.description.length" class="im_message_webpage_description" ng-bind-html="webpage.rDescription"></div>\n <a class="im_message_photo_thumb" ng-click="openPhoto(webpage.photo.id, {w: webpage.id, m: messageId})" ng-style="::{width: webpage.photo.thumb.width + \'px\'}" ng-mouseover="preloadPhoto(webpage.photo.id)">\n <img\n class="im_message_photo_thumb"\n my-load-thumb\n thumb="webpage.photo.thumb"\n />\n </a>\n </div>\n <div ng-switch-when="video" class="im_message_webpage_video">\n <div class="im_message_webpage_site" ng-bind="webpage.site_name || webpage.display_url"></div>\n <div class="im_message_webpage_title">\n <a ng-click="openEmbed($event)" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\n </div>\n <div ng-if="webpage.description.length" class="im_message_webpage_description" ng-bind-html="webpage.rDescription"></div>\n <a class="im_message_video_thumb" ng-click="openEmbed($event)" ng-href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-style="::{width: video.thumb.width + \'px\'}">\n <span ng-if="webpage.duration > 0" class="im_message_video_duration" ng-bind="::webpage.duration | duration"></span>\n <i class="icon icon-videoplay"></i>\n <img\n class="im_message_video_thumb"\n my-load-thumb\n thumb="webpage.photo.thumb"\n />\n </a>\n </div>\n\n <div ng-switch-default class="im_message_webpage_article">\n <div class="im_message_webpage_site" ng-bind="webpage.site_name"></div>\n <a ng-if="webpage.photo" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" class="im_message_webpage_article_photo pull-right">\n <img\n class="im_message_article_thumb"\n my-load-thumb\n thumb="webpage.photo.thumb"\n />\n </a>\n <div class="im_message_webpage_title">\n <a ng-click="openEmbed($event)" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\n </div>\n <div ng-if="webpage.description.length" class="im_message_webpage_description" ng-bind-html="webpage.rDescription"></div>\n </div>\n</div>\n'),e.put("partials/mobile/message_service.html",'<span ng-switch="::historyMessage.action._">\n <my-i18n>\n <span ng-switch-when="messageActionChatCreate" my-i18n-format="message_service_created_group"></span>\n <span ng-switch-when="messageActionChatEditTitle" my-i18n-format="message_service_changed_group_name"></span>\n <my-i18n-param name="group-name">&laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;</my-i18n-param>\n </my-i18n>\n <span ng-switch-when="messageActionChatEditPhoto" my-i18n="message_service_changed_group_photo"></span>\n <span ng-switch-when="messageActionChatDeletePhoto" my-i18n="message_service_removed_group_photo"></span>\n <span ng-switch-when="messageActionChatJoinedByLink" my-i18n="message_service_joined_by_link"></span>\n <span ng-switch-when="messageActionChatReturn" my-i18n="message_service_returned_to_group"></span>\n <span ng-switch-when="messageActionChatJoined" my-i18n="message_service_joined"></span>\n <span ng-switch-when="messageActionChatAddUser" my-i18n="message_service_invited_user">\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.user_id" color="true"></a></my-i18n-param>\n </span>\n <span ng-switch-when="messageActionChatAddUsers" my-i18n="message_service_invited_users">\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.users[0]" color="true"></a></my-i18n-param>\n <my-i18n-param name="num-more"><span ng-bind="historyMessage.action.users.length - 1"></span></my-i18n-param>\n </span>\n <span ng-switch-when="messageActionChatLeave" my-i18n="message_service_left_group"></span>\n <span ng-switch-when="messageActionChatDeleteUser" my-i18n="message_service_kicked_user">\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.user_id" color="true"></a></my-i18n-param>\n </span>\n\n <span ng-switch-when="messageActionChatMigrateTo" my-i18n="message_service_converted_to_supergroup"></span>\n <span ng-switch-when="messageActionChannelMigrateFrom" my-i18n="message_service_converted_to_supergroup"></span>\n <span ng-switch-when="messageActionChannelCreate" my-i18n="message_service_created_channel"></span>\n <span ng-switch-when="messageActionChannelEditTitle" my-i18n="message_service_changed_channel_name">\n <my-i18n-param name="channel-name">&laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;</my-i18n-param>\n </span>\n <span ng-switch-when="messageActionChannelEditPhoto" my-i18n="message_service_changed_channel_photo"></span>\n <span ng-switch-when="messageActionChannelDeletePhoto" my-i18n="message_service_removed_channel_photo"></span>\n\n <span ng-switch-when="messageActionGameScore" my-i18n="message_service_scored_game">\n <my-i18n-param name="scored">\n <ng-pluralize count="historyMessage.action.score"\n when="message_service_scored_X"></ng-pluralize>\n </my-i18n-param>\n <my-i18n-param name="message"><a class="im_service_message_pinned" my-pinned-message="::historyMessage.reply_to_mid"></a></my-i18n-param>\n </span>\n\n <span ng-switch-when="messageActionPinMessage" my-i18n="message_service_pinned_message">\n <my-i18n-param name="message"><a my-pinned-message="historyMessage.reply_to_mid"></a></my-i18n-param>\n </span>\n\n <a ng-switch-when="messageActionPhoneCall" class="im_service_message_phonecall" ng-click="phoneCallClick(historyMessage.mid)" ng-switch="historyMessage.action.type">\n <span ng-switch-when="out_missed" my-i18n="message_service_phonecall_canceled"></span>\n <span ng-switch-when="in_missed" my-i18n="message_service_phonecall_missed"></span>\n <span ng-switch-when="out_ok" my-i18n="message_service_phonecall_outgoing"></span>\n <span ng-switch-when="in_ok" my-i18n="message_service_phonecall_incoming"></span>\n <span ng-if="historyMessage.action.duration > 0" ng-bind="historyMessage.action.duration | duration" class="im_service_message_phonecall_duration"></span>\n </a>\n \n <span ng-switch-when="messageActionPaymentSent" my-i18n="message_service_payment_sent"></span>\n\n <span ng-switch-when="messageActionScreenshotTaken" my-i18n="message_service_screenshot_taken"></span>\n\n <span ng-switch-when="messageActionCustomAction" ng-bind="historyMessage.action.message"></span>\n\n <span ng-switch-default my-i18n="message_service_unsupported_action">\n <my-i18n-param name="action"><span ng-bind="historyMessage.action._"></span></my-i18n-param>\n </span>\n</span>\n'),e.put("partials/mobile/password_recovery_modal.html",'<div class="username_edit_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-class="{disabled: recovery.updating}" ng-click="checkCode()" ng-bind="recovery.updating ? \'password_recover_active\' : \'password_recover_submit\' | i18n" ng-disabled="recovery.updating"></a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="login_recovery_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="checkCode()">\n\n <div class="md_simple_form_description" my-i18n="login_recovery_description_md">\n <my-i18n-param name="email">\n <strong ng-bind="recovery.email_pattern"></strong>\n </my-i18n-param>\n </div>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': recovery.error_field == \'code\'}" my-labeled-input ng-switch="recovery.error_field == \'code\'">\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_code_incorrect"></label>\n <label ng-switch-default class="md-input-label" my-i18n="login_code_placeholder"></label>\n <input class="md-input" my-focused type="text" ng-model="recovery.code" name="code" my-focused />\n </div>\n\n </form>\n\n </div>\n\n</div>'),e.put("partials/mobile/password_update_modal.html",'<div class="username_edit_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-class="{disabled: passwordSettings.updating}" ng-click="updatePassword()" ng-disabled="passwordSettings.updating" ng-switch="action">\n <span ng-switch-when="disable" ng-bind="passwordSettings.updating ? \'password_delete_active\' : \'password_delete_submit\' | i18n"></span>\n <span ng-switch-default ng-bind="passwordSettings.updating ? \'password_create_active\' : \'password_create_submit\' | i18n"></span>\n </a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 ng-switch="action">\n <my-i18n ng-switch-when="disable" msgid="password_delete_title"></my-i18n>\n <my-i18n ng-switch-default msgid="password_change_title"></my-i18n>\n </h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="updatePassword()" my-vertical-position="0.3">\n\n <div ng-if="password._ != \'account.noPassword\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.error_field == \'cur_password\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="password_current_placeholder"></label>\n <input class="md-input" my-focused type="password" ng-model="passwordSettings.cur_password" name="cur_password" my-focus-on="cur_password_focus" />\n </div>\n\n <div ng-if="action != \'disable\'" class="md-input-group md-input-grouped" ng-class="{\'md-input-error\': passwordSettings.error_field == \'new_password\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="password_new_placeholder"></label>\n <input class="md-input" type="password" ng-model="passwordSettings.new_password" name="new_password" my-focus-on="new_password_focus" />\n </div>\n\n <div ng-if="action != \'disable\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.confirm_password && passwordSettings.new_password && passwordSettings.confirm_password != passwordSettings.new_password}" my-labeled-input>\n <label class="md-input-label" my-i18n="password_confirm_placeholder"></label>\n <input class="md-input" type="password" ng-model="passwordSettings.confirm_password" name="confirm_password" my-focus-on="confirm_password_focus" />\n </div>\n\n <div ng-if="action != \'disable\'" class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="password_hint_placeholder"></label>\n <input class="md-input" type="text" ng-model="passwordSettings.hint" name="hint" />\n </div>\n\n <div ng-if="action != \'disable\'" class="md_simple_form_description" my-i18n="password_create_description"></div>\n\n <div ng-if="action != \'disable\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.error_field == \'email\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="password_email_placeholder"></label>\n <input class="md-input" type="text" ng-model="passwordSettings.email" name="email" />\n </div>\n\n </form>\n\n </div>\n\n</div>'),e.put("partials/mobile/peer_select.html",'<div class="peer_select_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <a class="navbar-search-wrap" ng-click="toggleSearch()">\n <i class="icon-search"></i>\n </a>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="conversation_select_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="im_dialogs_modal_col_wrap" ng-controller="AppImDialogsController" my-dialogs ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\n <div class="im_dialogs_panel">\n <div class="im_dialogs_search">\n <input my-focused class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n </div>\n </div>\n <div my-dialogs-list-mobile modal="true" class="im_dialogs_modal_col im_dialogs_scrollable_wrap mobile_scrollable_wrap">\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID"></li>\n </ul>\n <div class="im_dialogs_contacts_wrap" ng-show="myResults.length > 0">\n <h5 my-i18n="conversation_select_modal_chats_contacts"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="myResult in myResults track by myResult.id" ng-class="{active: curDialog.peerID == myResult.id}">\n <a class="im_dialog" ng-click="dialogSelect(myResult.peerString)">\n <div class="im_dialog_photo pull-left" my-peer-photolink="::myResult.id" img-class="im_dialog_photo" watch="true"></div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" my-peer-link="myResult.id"></span>\n </div>\n <div class="im_dialog_message" ng-switch="myResult.id > 0">\n <span ng-switch-when="true" class="im_dialog_message_text" my-user-status="::myResult.id"></span>\n <span ng-switch-default class="im_dialog_message_text" my-chat-status="::-myResult.id"></span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n <div class="im_dialogs_contacts_wrap" ng-show="foundPeers.length > 0">\n <h5 my-i18n="im_found_title"></h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="foundPeer in foundPeers track by foundPeer.id" ng-class="{active: selectedPeers[foundPeer.id] !== undefined}">\n <a class="im_dialog" ng-click="dialogSelect(foundPeer.peerString)">\n <div class="im_dialog_photo pull-left" my-peer-photolink="foundPeer.id" img-class="im_dialog_photo" watch="true"></div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" my-peer-link="foundPeer.id"></span>\n </div>\n <div class="im_dialog_message">\n <span class="im_dialog_message_text" ng-bind="::\'@\' + foundPeer.username"></span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/mobile/phonebook_modal.html",'<div class="contacts_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-class="{disabled: !selectedCount || progress.enabled}" ng-click="submitSelected()" ng-switch="progress.enabled">\n <span ng-switch-when="true">\n <my-i18n msgid="phonebook_modal_submit_active"></my-i18n>\n <span my-loading-dots></span>\n </span>\n <span ng-switch-default my-i18n="phonebook_modal_submit"></span>\n </a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="phonebook_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="contacts_modal_search">\n <input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\n <a class="contacts_modal_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n </div>\n\n\n <div class="contacts_modal_col contacts_wrap contacts_scrollable_wrap mobile_scrollable_wrap" my-contacts-list-mobile my-infinite-scroller-mobile>\n <div ng-switch="contactsEmpty">\n\n <div ng-switch-when="true" class="contacts_modal_contacts_empty" my-vertical-position="0.2" padding="true" my-i18n="phonebook_modal_empty"></div>\n\n <ul ng-switch-default class="contacts_modal_members_list nav nav-pills nav-stacked">\n\n <li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | limitTo: slice.limit track by contact.id" ng-class="{active: selectedContacts[contact.id]}">\n <a class="contacts_modal_contact" ng-click="contactSelect(contact.id)">\n\n <i ng-if="multiSelect" class="icon icon-contact-tick"></i>\n\n <div class="contacts_modal_contact_photo pull-left">\n <img\n class="contacts_modal_contact_photo"\n ng-src="{{contact.photo}}"\n />\n </div>\n\n <div class="contacts_modal_contact_name">\n <span ng-bind="contact.first_name"></span>\n <span ng-bind="contact.last_name"></span>\n </div>\n <div class="contacts_modal_contact_status" ng-repeat="phone in contact.phones">\n <span ng-bind="phone | phoneNumber"></span>\n </div>\n\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n <div class="modal-footer contacts_modal_panel" ng-show="multiSelect">\n <button class="btn btn-primary" ng-click="toggleSelection()" ng-switch="selectedCount > 0">\n <span ng-switch-when="true" my-i18n="phonebook_modal_deselect_all"></span>\n <span ng-switch-default my-i18n="phonebook_modal_select_all"></span>\n </button>\n </div>\n\n</div>\n'),e.put("partials/mobile/photo_modal.html",'<div class="media_modal_bottom_panel_wrap" ng-show="!hideToolbars">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions pull-right">\n <a class="media_modal_action_btn" ng-if="canDelete" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\n <i class="media_modal_action_btn_delete"></i>\n </a>\n </div>\n\n <div class="media_modal_bottom_actions pull-left">\n <a class="media_modal_action_btn" ng-if="canForward" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap" ng-if="photo.user_id > 0">\n <a class="media_modal_author" my-peer-link="photo.user_id" peer-watch="true"></a>\n <br/>\n <span class="media_modal_date" ng-bind="photo.date | dateOrTime :true"></span>\n </div>\n\n </div>\n</div>\n\n<div class="media_modal_top_panel_wrap" ng-show="!hideToolbars">\n <div class="media_modal_top_panel">\n <div class="media_modal_top_actions pull-right">\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\n <i class="media_modal_action_btn_download"></i>\n </a>\n </div>\n <div class="media_modal_top_actions pull-left">\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n\n <div class="navbar-quick-back-title">\n <h4 class="media_modal_title_wrap" ng-switch="count > 1 &amp;&amp; pos > 0">\n <my-i18n ng-switch-when="true" msgid="media_modal_photo_index">\n <my-i18n-param name="pos" ng-bind="pos"></my-i18n-param>\n <my-i18n-param name="count" ng-bind="count"></my-i18n-param>\n </my-i18n>\n <my-i18n ng-switch-default msgid="media_modal_photo">\n </h4>\n </div>\n </a>\n </div>\n </div>\n</div>\n\n<div class="modal-dialog" ng-swipe-right="nav.prev()" ng-swipe-left="nav.next()" ng-click="hideToolbars = !hideToolbars">\n <div class="modal-content">\n <div my-modal-width="{{photo.full.modalWidth}}" class="media_modal_wrap photo_modal_wrap" my-vertical-position="0.5">\n\n <div class="modal-body">\n\n <div class="photo_modal_image_wrap" my-load-full-photo full-photo="photo.full" thumb-location="photo.thumb.location"></div>\n\n </div>\n\n </div>\n </div>\n</div>\n\n'),e.put("partials/mobile/profile_edit_modal.html",'<div class="profile_edit_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-class="{disabled: profile.updating}" ng-click="updateProfile()" ng-bind="profile.updating ? \'profile_edit_submit_active\' : \'profile_edit_submit\' | i18n" ng-disabled="profile.updating"></a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="profile_edit_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="updateProfile()" my-vertical-position="0.3">\n\n <div class="form-group" ng-class="{\'has-error\': error.field == \'first_name\'}">\n <input class="form-control input-lg" my-focused type="text" placeholder="{{\'profile_edit_first_name\' | i18n}}" ng-model="profile.first_name" name="first_name"/>\n </div>\n <div class="form-group" ng-class="{\'has-error\': error.field == \'last_name\'}">\n <input class="form-control input-lg" type="text" placeholder="{{\'profile_edit_last_name\' | i18n}}" ng-model="profile.last_name"/>\n </div>\n\n </form>\n\n </div>\n\n</div>'),
e.put("partials/mobile/send_form.html",'<form class="im_send_form" ng-class="{im_send_form_empty: !draftMessage.text.length && draftMessage.type != \'edit\', composer_progress_enabled: draftMessage.inlineProgress, im_voice_recording: voiceRecorder.recording, im_processing_recording: voiceRecorder.processing}">\n\n <div class="im_send_reply_wrap" ng-if="draftMessage.replyToMsgID > 0">\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.replyClear(true)"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\n <a class="im_message_reply_wrap" my-reply-message="draftMessage.replyToMsgID" watch="true" edit="{{draftMessage.type == \'edit\'}}"></a>\n </div>\n\n <div class="im_send_reply_wrap im_send_fwds_wrap" ng-if="draftMessage.fwdMessages.length > 0">\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.fwdsClear()"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\n <div class="im_message_reply_wrap" my-forwarded-messages="draftMessage.fwdMessages"></div>\n </div>\n\n <div class="im_send_field_panel">\n\n <div class="im_voice_recorder_wrap">\n <div class="im_recorder_indicator"><i></i></div>\n <div class="im_recorder_time" ng-bind="voiceRecorder.duration | duration"></div>\n <div class="im_recorder_label" ng-switch="voiceRecorder.processing">\n <span ng-switch-when="true" my-i18n="im_voice_processing_label">\n <my-i18n-param name="dots"></my-i18n-param>\n </span>\n <span ng-switch-default>\n <span class="im_recorder_label_hover" my-i18n="im_voice_recording_label"></span>\n <span class="im_recorder_label_hout" my-i18n="im_voice_recording_cancel_label"></span>\n </span>\n </div>\n </div>\n\n <div class="im_send_field_wrap" ng-class="replyKeyboard._ == \'replyKeyboardMarkup\' ? \'im_send_field_wrap_2ndbtn\' : \'\'">\n <a class="composer_emoji_insert_btn pull-right"><i class="icon icon-emoji"></i></a>\n <a class="composer_command_btn" ng-show="!replyKeyboard && commands.list.length > 0 && (!draftMessage.text.length || draftMessage.text[0] == \'/\')" ng-mousedown="draftMessage.toggleSlash($event)" ng-class="draftMessage.text[0] == \'/\' ? \'active\' : \'\'"><i class="icon icon-slash"></i></a>\n <a class="composer_keyboard_btn" ng-show="replyKeyboard._ == \'replyKeyboardMarkup\'" ng-mousedown="draftMessage.replyKeyboardToggle($event)" ng-class="!replyKeyboard.pFlags.hidden ? \'active\' : \'\'"><i class="icon icon-keyboard"></i></a>\n\n <div class="composer_progress_icon_wrap">\n <div class="composer_progress_icon" my-arc-progress width="22" stroke="2.5"></div>\n </div>\n\n <div class="im_send_dropbox_wrap" my-i18n="im_photos_drop_text"></div>\n <textarea ng-model="draftMessage.text" class="form-control im_message_field no_outline" dir="auto" ng-trim="false"></textarea>\n </div>\n\n <div class="im_attach pull-left">\n <input type="file" class="im_attach_input" size="28" multiple="true" title="{{\'im_media_attach_title\' | i18n}}" />\n <i class="icon icon-paperclip"></i>\n </div>\n\n <div class="im_record pull-right">\n <i class="icon icon-mic"></i>\n </div>\n\n <button type="submit" class="btn btn-success im_submit"></button>\n </div>\n\n\n <div class="im_send_keyboard_wrap" ng-if="replyKeyboard._ == \'replyKeyboardMarkup\'" ng-show="!replyKeyboard.pFlags.hidden">\n <div my-reply-markup="replyKeyboard"></div>\n </div>\n\n</form>'),e.put("partials/mobile/sessions_list_modal.html",'<div class="sessions_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="sessions_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div my-sessions-list class="sessions_modal_col">\n\n <div class="sessions_wrap nano" my-infinite-scroller>\n <div class="sessions_scrollable_wrap nano-content" ng-switch="!sessionsLoaded">\n\n <div ng-switch-when="true" class="sessions_modal_loading" my-vertical-position="0.2" padding="true" my-i18n="sessions_modal_loading">\n <my-i18n-param name="dots">\n <span my-loading-dots></span>\n </my-i18n-param>\n </div>\n\n <ul ng-switch-default class="sessions_modal_sessions_list nav nav-pills nav-stacked">\n\n <li class="sessions_modal_session_wrap clearfix" ng-repeat="authorization in authorizations | limitTo: slice.limit track by authorization.hash">\n <div class="sessions_modal_session">\n <div class="session_meta_wrap pull-right">\n <div class="session_active_date" ng-switch="authorization.current">\n <span ng-switch-when="true" class="session_active_date_online" my-i18n="sessions_modal_current_session"></span>\n <span ng-switch-default ng-bind="authorization.date_active | dateOrTime"></span>\n </div>\n\n <a ng-if="!authorization.current" class="session_terminate_btn" ng-click="terminateSession(authorization.hash)" my-i18n="sessions_modal_terminate_one"></a>\n </div>\n\n <div class="sessions_modal_session_app" ng-bind="authorization.app_name + \' \' + authorization.app_version"></div>\n <div class="sessions_modal_session_device" ng-bind="authorization.device_model + \', \' + authorization.platform + \' \' + authorization.system_version"></div>\n <div class="sessions_modal_session_location" ng-bind="authorization.ip + \' - \' + authorization.country"></div>\n </div>\n <div ng-if="authorization.current && authorizations.length > 1">\n <div class="sessions_modal_terminate_all_wrap">\n <a ng-click="terminateAllSessions()" my-i18n="sessions_modal_terminate_all"></a>\n </div>\n\n <hr class="sessions_modal_other_splitter"></hr>\n </div>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/mobile/settings_modal.html",'<div class="settings_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown" dropdown>\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-if="photo.location">\n <a ng-click="deletePhoto()" my-i18n="settings_modal_delete_photo"></a>\n </li>\n <li>\n <a ng-click="editProfile()" my-i18n="settings_modal_edit_profile"></a>\n </li>\n <li>\n <a ng-click="changeUsername()" my-i18n="settings_modal_edit_username"></a>\n </li>\n <li>\n <a ng-if="password._ == \'account.noPassword\' && password.email_unconfirmed_pattern.length" ng-click="changePassword({action: \'cancel_email\'})" my-i18n="settings_modal_password_email_pending_cancel_mobile">\n </a>\n <a ng-if="password._ == \'account.noPassword\' && !password.email_unconfirmed_pattern" ng-click="changePassword({action: \'create\'})" my-i18n="settings_modal_set_password"></a>\n <a ng-if="password._ == \'account.password\'" ng-click="changePassword({action: \'change\'})" my-i18n="settings_modal_change_password"></a>\n </li>\n <li ng-if="password._ == \'account.password\'">\n <a ng-click="changePassword({action: \'disable\'})" my-i18n="settings_modal_disable_password_mobile"></a>\n </li>\n\n <li>\n <a ng-click="showSessions()" my-i18n="settings_modal_active_sessions"></a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="settings_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="mobile_user_modal_photo_profile_wrap">\n\n <a ng-click="openPhoto(profile.photo.photo_id, {p: profile.id})" class="mobile_user_modal_image_wrap pull-left" my-peer-photolink="::profile.id" img-class="mobile_user_modal_image" no-open="true" watch="true" ng-class="{disabled: !profile.photo.photo_id}" ng-disabled="!profile.photo.photo_id"></a>\n\n <div class="mobile_user_modal_info_wrap clearfix">\n <h4 class="mobile_user_modal_header" my-peer-link="profile.id"></h4>\n <p class="mobile_user_modal_status" my-user-status="::profile.id"></p>\n </div>\n\n </div>\n\n <div class="mobile_modal_action_wrap" ng-switch="photo.updating">\n <span ng-switch-when="true" class="mobile_modal_action" my-i18n>\n <my-i18n msgid="settings_modal_photo_updating"></my-i18n>\n <span my-loading-dots></span>\n </span>\n <span ng-switch-default class="mobile_modal_action mobile_modal_upload_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" />\n <my-i18n msgid="settings_modal_set_photo"></my-i18n>\n </span>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleDesktop()" ng-class="notify.desktop ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_notification_alert"></span>\n </a>\n </div>\n\n <div ng-if="notify.desktop && notify.pushAvailable" class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="togglePush()" ng-class="notify.push ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_notification_push"></span>\n </a>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="togglePreview()" ng-class="notify.preview ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_message_preview"></span>\n </a>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="!notify.desktop &amp;&amp; notify.canVibrate">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleVibrate()" ng-class="notify.vibrate ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_vibrate"></span>\n </a>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleSound()" ng-class="notify.volume ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_sounds"></span>\n </a>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleCtrlEnter(send.enter == 1 ? 0 : 1)" ng-class="send.enter == 1 ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="settings_modal_send_on_enter"></span>\n </a>\n </div>\n\n\n <div class="mobile_modal_action_wrap" ng-controller="AppLangSelectController">\n <div class="mobile_modal_select_wrap pull-right">\n <select class="form-control" ng-change="localeSelect()" ng-model="form.locale">\n <option ng-repeat="locale in ::supportedLocales" value="{{locale}}" ng-bind="langNames[locale]" ng-selected="locale == curLocale"></option>\n </select>\n </div>\n <span class="mobile_modal_action" my-i18n="settings_modal_language"></span>\n </div>\n\n <div class="mobile_modal_section" ng-if="profile.phone">\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_phone"></h4>\n <div class="mobile_modal_section_value" ng-bind="profile.phone | phoneNumber"></div>\n </div>\n\n <div class="mobile_modal_section">\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_username"></h4>\n <div class="mobile_modal_section_value" ng-click="changeUsername()" ng-switch="profile.username.length > 0">\n <a class="settings_modal_username_link" ng-switch-when="true" href="" ng-click="changeUsername()" ng-bind="\'@\' + profile.username"></a>\n <a ng-switch-default href="" ng-click="changeUsername()" my-i18n="settings_modal_empty_username_set"></a>\n </div>\n </div>\n\n <div class="mobile_modal_section" ng-if="switchBackToDesktop">\n <div class="mobile_modal_section_value">\n <a href="" ng-click="switchToDesktop()" my-i18n="settings_switch_back_to_desktop"></a>\n </div>\n </div>\n\n <div class="mobile_modal_section">\n <h4 class="mobile_modal_section_header" my-i18n="settings_modal_about"></h4>\n <div class="mobile_modal_section_body settings_about_section_body clearfix">\n <div class="settings_external_services pull-right">\n <a href="https://github.com/zhukov/webogram" target="_blank" title="{{\'settings_modal_source_code_github\' | i18n}}" class="settings_external_service"><i class="icon icon-github"></i></a>\n <a href="https://twitter.com/telegram_web" target="_blank" title="{{\'settings_modal_follow_us_twitter\' | i18n}}" class="settings_external_service"><i class="icon icon-twitter"></i></a>\n </div>\n <p>\n <a href="https://github.com/zhukov/webogram/blob/master/CHANGELOG.md" target="_blank" my-i18n="settings_modal_recent_updates">\n <my-i18n-param name="version" ng-bind="version"></my-i18n-param>\n </a>\n </p>\n </div>\n </div>\n\n </div>\n</div>\n'),e.put("partials/mobile/stickerset_modal.html",'<div class="stickerset_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right" ng-if="stickersetLoaded" ng-switch="stickersetInstalled">\n <a ng-switch-when="true" my-i18n="stickerset_modal_uninstall" ng-click="toggleInstalled(false)"></a>\n <a ng-switch-when="false" my-i18n="stickerset_modal_install" ng-click="toggleInstalled(true)"></a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 ng-switch="!stickersetLoaded">\n <span ng-switch-when="true" my-i18n="stickerset_modal_title_loading"></span>\n <span ng-switch-default ng-bind="stickerset.title"></span>\n </h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body">\n\n <div my-stickers-list class="stickerset_modal_col">\n\n <div class="stickerset_wrap nano" my-infinite-scroller>\n <div class="stickerset_scrollable_wrap nano-content" ng-switch="!stickersetLoaded">\n\n <div ng-switch-when="true" class="stickerset_modal_loading" my-vertical-position="0.2" padding="true" my-i18n="stickerset_modal_loading">\n <my-i18n-param name="dots">\n <span my-loading-dots></span>\n </my-i18n-param>\n </div>\n\n <div ng-switch-default class="stickerset_modal_stickers_list clearfix">\n <div class="stickerset_modal_sticker_wrap" ng-repeat="sticker in documents | limitTo: slice.limit">\n <div class="stickerset_modal_sticker" my-load-sticker document="sticker" thumb="true"></div>\n <div class="stickerset_modal_sticker_alt" ng-bind-html="sticker.stickerEmoji"></div>\n </div>\n </div>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>'),e.put("partials/mobile/user_modal.html",'<div class="mobile_user_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown" dropdown>\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-if="user.pFlags.contact">\n <a ng-click="importContact(true)" my-i18n="user_modal_edit_contact"></a>\n </li>\n <li ng-if="user.pFlags.contact">\n <a ng-click="deleteContact()" my-i18n="user_modal_delete_contact"></a>\n </li>\n <li ng-if="user.phone.length > 0 &amp;&amp; !user.pFlags.contact &amp;&amp; !user.pFlags.self">\n <a ng-click="importContact()" my-i18n="user_modal_add_contact"></a>\n </li>\n <li>\n <a ng-click="flushHistory(true)" my-i18n="user_modal_clear_history"></a>\n </li>\n <li>\n <a ng-click="flushHistory()" my-i18n="user_modal_delete_chat"></a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="user_modal_contact_info"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="mobile_user_modal_photo_profile_wrap">\n\n <a ng-click="openPhoto(user.photo.photo_id, {p: user.id})" class="mobile_user_modal_image_wrap pull-left" my-peer-photolink="::user.id" img-class="mobile_user_modal_image" no-open="true" watch="true" ng-class="{disabled: !user.photo.photo_id}" ng-disabled="!user.photo.photo_id"></a>\n\n <div class="mobile_user_modal_info_wrap clearfix">\n <h4 class="mobile_user_modal_header" my-peer-link="user.id" verified="true"></h4>\n <p class="mobile_user_modal_status" ng-if="user.status" my-user-status="::user.id"></p>\n </div>\n\n </div>\n\n <div class="mobile_modal_section" ng-if="user.phone.length > 0">\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_phone"></h4>\n <div class="mobile_modal_section_value" ng-bind="user.phone | phoneNumber"></div>\n </div>\n\n <div class="mobile_modal_section" ng-if="user.username">\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_username"></h4>\n <div class="mobile_modal_section_value" ng-bind="\'@\' + user.username"></div>\n </div>\n\n <div class="mobile_modal_section" ng-if="rAbout">\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_about"></h4>\n <div class="mobile_modal_section_value" ng-bind-html="rAbout"></div>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action" ng-click="goToHistory()" my-i18n="user_modal_send_message"></a>\n </div>\n\n <div ng-if="user.phone.length > 0" class="mobile_modal_action_wrap">\n <a class="mobile_modal_action" ng-click="shareContact()" my-i18n="user_modal_share_contact"></a>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="user.pFlags.bot &amp;&amp; !user.pFlags.bot_nochats">\n <a class="mobile_modal_action" ng-click="inviteToGroup()" my-i18n="user_modal_add_to_group"></a>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="bot_info.commands.settings != null">\n <a class="mobile_modal_action" ng-click="sendCommand(\'settings\')" my-i18n="user_modal_bot_settings"></a>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="bot_info.commands.help != null">\n <a class="mobile_modal_action" ng-click="sendCommand(\'help\')" my-i18n="user_modal_bot_help"></a>\n </div>\n\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="user_modal_notifications"></span>\n </a>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="!user.pFlags.self">\n <a class="mobile_modal_action" ng-click="toggleBlock(!blocked)" ng-switch="blocked">\n <my-i18n ng-switch-when="true" msgid="user_modal_unblock_user"></my-i18n>\n <my-i18n ng-switch-default msgid="user_modal_block_user"></my-i18n>\n </a>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/mobile/username_edit_modal.html",'<div class="username_edit_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-class="{disabled: profile.updating}" ng-click="updateUsername()" ng-bind="profile.updating ? \'username_edit_submit_active\' : \'username_edit_submit\' | i18n" ng-disabled="profile.updating"></a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 my-i18n="username_edit_modal_title"></h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="updateUsername()" my-vertical-position="0.3">\n\n <div class="form-group import_modal_field_wrap" ng-class="{\'has-error\': checked.error, \'has-feedback\': checked.feedback.length > 0}">\n <input class="form-control input-md" my-focused type="text" placeholder="{{\'username_edit_placeholder\' | i18n}}" ng-model="profile.username" name="username" ng-model-options="{updateOn: \'default blur\', debounce: {default: 600, blur: 0}}"/>\n <span ng-if="checked.error" class="glyphicon form-control-feedback" ng-class="{\'glyphicon-remove\': checked.error}"></span>\n </div>\n\n <div class="modal_simple_form_description" my-i18n="username_edit_description_md"></div>\n\n </form>\n\n </div>\n\n</div>'),e.put("partials/mobile/video_modal.html",'<div class="media_modal_bottom_panel_wrap">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions pull-right">\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\n <i class="media_modal_action_btn_delete"></i>\n </a>\n </div>\n\n <div class="media_modal_bottom_actions pull-left">\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap" ng-if="video.user_id > 0">\n <a class="media_modal_author" my-peer-link="video.user_id" peer-watch="true"></a>\n <br/>\n <span class="media_modal_date" ng-bind="video.date | dateOrTime :true"></span>\n </div>\n\n </div>\n</div>\n\n<div class="media_modal_top_panel_wrap">\n <div class="media_modal_top_panel">\n <div class="media_modal_top_actions pull-right">\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\n <i class="media_modal_action_btn_download"></i>\n </a>\n </div>\n <div class="media_modal_top_actions pull-left">\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 class="media_modal_title_wrap" my-i18n="media_modal_video"></h4>\n </div>\n </a>\n </div>\n </div>\n</div>\n\n<div class="modal-dialog">\n <div class="modal-content">\n <div my-modal-width="{{video.full.width}}" class="media_modal_wrap video_modal_wrap" my-vertical-position="0.5">\n\n <div class="modal-body">\n\n <div class="video_modal_image_wrap" my-load-video video="video"></div>\n\n </div>\n\n </div>\n </div>\n</div>\n\n')}]),function(e,t,n,i){function a(e){ConfigStorage.get("emojis_popular",function(t){var n=[];if(t&&t.length){for(var i=0,a=t.length;i<a;i++)n.push({code:t[i][0],rate:t[i][1]});return void e(n)}ConfigStorage.get("emojis_recent",function(t){t=t||w||[];for(var i,a,r=0,o=t.length;r<o;r++)i=t[r],Array.isArray(i)&&(i=i[0]),i&&"string"==typeof i&&(":"==i.charAt(0)&&(i=i.substr(1,i.length-2)),(a=_[i])&&n.push({code:a,rate:1}));e(n)})})}function r(e){a(function(t){for(var n=!1,i=t.length,a=[],r=0;r<i;r++)t[r].code==e&&(n=!0,t[r].rate++),a.push([t[r].code,t[r].rate]);n?a.sort(function(e,t){return t[1]-e[1]}):(a.length>41&&(a=a.slice(0,41)),a.push([e,1])),ConfigStorage.set({emojis_popular:a})})}function o(){if(b===!1){b=SearchIndexManager.createIndex();var e;for(e in _)_.hasOwnProperty(e)&&SearchIndexManager.indexObject(_[e],e,b)}}function s(e){o();var t,n=SearchIndexManager.search(e,b),i=[];for(t in n)n.hasOwnProperty(t)&&i.push(t);return i}var l,c,d,u,p,f,m,h,g={},_={},v={},y={},b=!1,w="joy,kissing_heart,heart,heart_eyes,blush,grin,+1,relaxed,pensive,smile,sob,kiss,unamused,flushed,stuck_out_tongue_winking_eye,see_no_evil,wink,smiley,cry,stuck_out_tongue_closed_eyes,scream,rage,smirk,disappointed,sweat_smile,kissing_closed_eyes,speak_no_evil,relieved,grinning,yum,laughing,ok_hand,neutral_face,confused".split(",");for(l=0,m=n.length;l<m;l++)for(f=i[l][1],c=0,h=n[l].length;c<h;c++)d=n[l][c],p=t[d],u=p[1][0],g[d]=[p[0],u],_[u]=d,y[d]=[l,c,Math.floor(c/f),c%f];angular.forEach(t,function(e,t){v[e[0]]=t}),e.EmojiHelper={emojis:g,emojiMap:v,shortcuts:_,spritesheetPositions:y,getPopularEmoji:a,pushPopularEmoji:r,indexEmojis:o,searchEmojis:s}}(window,Config.Emoji,Config.EmojiCategories,Config.EmojiCategorySpritesheetDimens),EmojiTooltip.prototype.onMouseEnter=function(e){this.hideTimeout?(clearTimeout(this.hideTimeout),delete this.hideTimeout):e&&!this.showTimeout&&(this.showTimeout=setTimeout(this.show.bind(this),100))},EmojiTooltip.prototype.onMouseLeave=function(e){if(this.hideTimeout)e&&this.showTimeout&&(clearTimeout(this.showTimeout),delete this.showTimeout);else{var t=this;this.hideTimeout=setTimeout(function(){t.hide()},600)}},EmojiTooltip.prototype.createTooltip=function(){if(this.tooltipEl)return!1;var e='<div class="composer_emoji_tooltip noselect"> <div class="composer_emoji_tooltip_tabs"> <div class="composer_emoji_tooltip_tab composer_emoji_tooltip_tab_emoji">'+this.langpack.im_emoji_tab+'</div> <div class="composer_emoji_tooltip_tab composer_emoji_tooltip_tab_stickers">'+this.langpack.im_stickers_tab+'</div> <div class="composer_emoji_tooltip_tab_shadow"></div> </div> <div class="composer_emoji_tooltip_tabs_wrap"> <div class="composer_emoji_tooltip_tabs_contents clearfix"> <div class="composer_emoji_tooltip_tab_emoji_content"> <div class="composer_emoji_tooltip_content_wrap"> <div class="composer_emoji_tooltip_content composer_emoji_tooltip_content_emoji clearfix"></div> </div> <div class="composer_emoji_tooltip_categories"> <a class="composer_emoji_tooltip_category active" data-category="0"><i class="composer_emoji_tooltip_category_recent"></i></a> <a class="composer_emoji_tooltip_category" data-category="1"><i class="composer_emoji_tooltip_category_smile"></i></a> <a class="composer_emoji_tooltip_category" data-category="2"><i class="composer_emoji_tooltip_category_flower"></i></a> <a class="composer_emoji_tooltip_category" data-category="3"><i class="composer_emoji_tooltip_category_bell"></i></a> <a class="composer_emoji_tooltip_category" data-category="4"><i class="composer_emoji_tooltip_category_car"></i></a> <a class="composer_emoji_tooltip_category" data-category="5"><i class="composer_emoji_tooltip_category_grid"></i></a> </div> </div> <div class="composer_emoji_tooltip_tab_stickers_content"> <div class="composer_emoji_tooltip_content_wrap"> <div class="composer_emoji_tooltip_content composer_emoji_tooltip_content_stickers clearfix"></div> </div> <div class="composer_emoji_tooltip_categories"></div> </div> </div> </div> <div class="composer_emoji_tooltip_tail"><i class="icon icon-tooltip-tail"></i></div></div>';e=e.replace(/>\s+</g,"><");var t=this;this.tooltipEl=$(e).appendTo(document.body),this.tabsEl=$(".composer_emoji_tooltip_tabs",this.tooltipEl),this.categoriesEl=$(".composer_emoji_tooltip_categories",this.tooltipEl),this.stickersCategoriesEl=$(".composer_emoji_tooltip_tab_stickers_content .composer_emoji_tooltip_categories",this.tooltipEl),this.contentEl=$(".composer_emoji_tooltip_content",this.tooltipEl),this.emojiContentEl=$(".composer_emoji_tooltip_content_emoji",this.tooltipEl),this.stickersContentEl=$(".composer_emoji_tooltip_content_stickers",this.tooltipEl),angular.forEach(["emoji","stickers"],function(e,n){var i=$(".composer_emoji_tooltip_tab_"+e,t.tabsEl).on("mousedown",function(e){return t.selectTab(n),cancelEvent(e)});Config.Navigator.touch||i.on("mouseenter mouseleave",function(e){clearTimeout(t.selectTabTimeout),"mouseenter"==e.type&&(t.selectTabTimeout=setTimeout(function(){t.selectTab(n)},300))})});var n="mousedown";return Config.Navigator.touch||(n+=" mouseover mouseout"),this.categoriesEl.on(n,function(e){e=e.originalEvent||e;var n=e.target;if("A"!=n.tagName&&(n=n.parentNode),"A"==n.tagName){var i=parseInt(n.getAttribute("data-category"));if("mousedown"==e.type)return t.selectCategory(i),cancelEvent(e);if(!t.tab){var a="mouseover"==e.type;a&&t.selectCategoryIndex==i||(clearTimeout(t.selectCategoryTimeout),delete t.selectCategoryTimeout,a?(t.selectCategoryIndex=i,
t.selectCategoryTimeout=setTimeout(function(){delete t.selectCategoryIndex,delete t.selectCategoryTimeout,t.selectCategory(i)},300)):delete t.selectCategoryIndex)}}}),this.emojiScroller=new Scroller(this.emojiContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller=new Scroller(this.stickersContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller.onScroll(function(e,n){t.onStickersScroll(e,n)}),this.contentEl.on("mousedown",function(e){e=e.originalEvent||e;var n,i,a,r=$(e.target);return"A"!=r[0].tagName&&(r=$(r[0].parentNode)),(n=r.attr("data-code"))&&(t.onEmojiSelected&&t.onEmojiSelected(n),EmojiHelper.pushPopularEmoji(n)),(i=r.attr("data-sticker"))&&(t.onStickerSelected&&t.onStickerSelected(i),Config.Mobile&&t.hide()),(a=r.attr("data-stickerset"))&&(t.onStickersetSelected&&t.onStickersetSelected(a),t.hide()),cancelEvent(e)}),Config.Navigator.touch||this.tooltipEl.on("mouseenter mouseleave",function(e){"mouseenter"==e.type?t.onMouseEnter():t.onMouseLeave()}),this.selectTab(0),$(window).on("resize",this.updatePosition.bind(this)),!0},EmojiTooltip.prototype.selectCategory=function(e,t){return!(!this.tab&&this.cat===e&&!t)&&($(".active",this.categoriesEl).removeClass("active"),this.cat=e,void(this.tab?(this.activateStickerCategory(),this.updateStickersContents(t)):($(this.categoriesEl[this.tab].childNodes[e]).addClass("active"),this.updateEmojiContents())))},EmojiTooltip.prototype.selectTab=function(e,t){if(this.tab===e&&!t)return!1;this.tab=e,this.selectCategory(0,!0);var n=this;setTimeout(function(){$(n.tooltipEl).toggleClass("composer_emoji_tooltip_tabs_stickers_active",1==e)},0)},EmojiTooltip.prototype.updateEmojiContents=function(){var e=[],t=this,n=26,i=function(){t.emojiContentEl.html(e.join("")),t.emojiScroller.reinit()};if(this.cat>0){var a,r,o,s,l,c=this.cat-1,d=Config.EmojiCategories[c],u=Config.EmojiCategorySpritesheetDimens[c][1],p=d.length;for(o=0;o<p;o++)a=d[o],r=Config.Emoji[a],s=n*(o%u),l=n*Math.floor(o/u),e.push('<a class="composer_emoji_btn" title=":'+encodeEntities(r[1][0])+':" data-code="'+encodeEntities(a)+'"><i class="emoji emoji-w'+n+" emoji-spritesheet-"+c+'" style="background-position: -'+s+"px -"+l+'px;"></i></a>');i()}else EmojiHelper.getPopularEmoji(function(t){var a,r,o,s,l,c,d,u,p=t.length;for(c=0;c<p;c++)a=t[c].code,(r=Config.Emoji[a])&&(o=EmojiHelper.spritesheetPositions[a],l=o[0],s=o[1],d=n*o[3],u=n*o[2],e.push('<a class="composer_emoji_btn" title=":'+encodeEntities(r[1][0])+':" data-code="'+encodeEntities(a)+'"><i class="emoji emoji-w'+n+" emoji-spritesheet-"+l+'" style="background-position: -'+d+"px -"+u+'px;"></i></a>'));i()})},EmojiTooltip.prototype.updateStickersContents=function(e){var t=[],n=[],i=this,a=function(){var t=i.cat?i.stickersetPositions[i.cat][0]:0;i.stickersScroller.scrollTo(t,e?0:200)};if(!e&&i.stickersetPositions.length)return void a();var r=function(e){var r,o,s,l,c,d;for(s=0,c=e.length;s<c;s++)if(r=e[s],r.docIDs.length){for(t.push('<div class="composer_stickerset_wrap clearfix">'),r.title&&t.push('<a class="composer_stickerset_title',r.id?"":" disabled",'" data-stickerset="',encodeEntities(r.short_name),'">',encodeEntities(r.title),"</a>"),r.id?n.push('<a class="composer_sticker_btn" data-sticker="'+r.docIDs[0]+'" data-category="'+s+'"></a>'):n.push('<a class="composer_emoji_tooltip_category active" data-category="0"><i class="composer_emoji_tooltip_category_recent"></i></a>'),l=0,d=r.docIDs.length;l<d;l++)o=r.docIDs[l],t.push('<a class="composer_sticker_btn" data-sticker="'+o+'"></a>');t.push("</div>")}i.stickersContentEl.html(t.join("")),i.stickersCategoriesEl.html(n.join("")),i.stickersScroller.reinit();var u=[];$(".composer_stickerset_wrap",i.stickersContentEl).each(function(e,t){var n=t.offsetHeight,i=t.offsetTop;u.push([i,n])}),i.stickersetPositions=u,a();var p=[];i.contentEl.find(".composer_sticker_btn").each(function(e,t){e<12?i.replaceStickerImage(t):p.push([t.offsetTop,t])}),i.stickersPreload=p,i.stickersCategoriesEl.find(".composer_sticker_btn").each(function(e,t){i.replaceStickerImage(t)})};this.getStickers(r)},EmojiTooltip.prototype.replaceStickerImage=function(e){e=$(e),this.getStickerImage(e,e.attr("data-sticker"))},EmojiTooltip.prototype.onStickersScroll=function(e,t){var n,i,a=e.clientHeight,r=e.scrollHeight,o=this.stickersetPositions.length,s=!1;if(t<20)s=0;else if(t>r-a-20)s=o-1;else for(i=0;i<o;i++)if(n=this.stickersetPositions[i],t>=n[0]&&t<n[0]+n[1]){s=i;break}var o=this.stickersPreload.length;if(o)for(i=0;i<o;i++)n=this.stickersPreload[i],n[0]>=t&&n[0]<=t+a&&(this.replaceStickerImage(n[1]),this.stickersPreload.splice(i,1),i--,o--);this.cat!==s&&s!==!1&&($(".active",this.categoriesEl).removeClass("active"),this.cat=s,this.activateStickerCategory())},EmojiTooltip.prototype.onStickersChanged=function(){this.tab&&this.updateStickersContents(!0)},EmojiTooltip.prototype.activateStickerCategory=function(){var e=this.categoriesEl[1],t=e.childNodes[this.cat];if(t){$(t).addClass("active");var n=t.offsetLeft,i=t.offsetWidth,a=e.clientWidth;$(e).stop(!0).animate({scrollLeft:n-(a-i)/2},200)}},EmojiTooltip.prototype.updatePosition=function(){var e=this.btnEl.offset();this.tooltipEl.css({top:e.top,left:e.left})},EmojiTooltip.prototype.show=function(){this.updatePosition(),this.tab?this.updateStickersContents(!0):this.updateEmojiContents(),this.tooltipEl.addClass("composer_emoji_tooltip_shown"),this.btnEl.addClass("composer_emoji_insert_btn_on"),delete this.showTimeout,this.shown=!0},EmojiTooltip.prototype.hide=function(){this.tooltipEl&&(this.tooltipEl.removeClass("composer_emoji_tooltip_shown"),this.btnEl.removeClass("composer_emoji_insert_btn_on")),delete this.hideTimeout,delete this.shown},EmojiPanel.prototype.update=function(){var e=[],t=this,n=Config.Mobile?26:20;EmojiHelper.getPopularEmoji(function(i){var a,r,o,s,l,c,d,u,p=i.length;for(c=0;c<p;c++)a=i[c].code,(r=Config.Emoji[a])&&(o=EmojiHelper.spritesheetPositions[a],l=o[0],s=o[1],d=n*o[3],u=n*o[2],e.push('<a class="composer_emoji_btn" title=":'+encodeEntities(r[1][0])+':" data-code="'+encodeEntities(a)+'"><i class="emoji emoji-w20 emoji-spritesheet-'+l+'" style="background-position: -'+d+"px -"+u+'px;"></i></a>'));t.containerEl.html(e.join(""))})},MessageComposer.autoCompleteRegEx=/(\s|^)(:|@|\/)([\S]*)$/,MessageComposer.prototype.setUpInput=function(){if(this.inlinePlaceholderWrap=$('<div class="im_inline_placeholder_wrap"></div>').prependTo(this.textareaEl[0].parentNode),this.inlinePlaceholderPrefixEl=$('<span class="im_inline_placeholder_prefix"></span>').appendTo(this.inlinePlaceholderWrap),this.inlinePlaceholderEl=$('<span class="im_inline_placeholder"></span>').appendTo(this.inlinePlaceholderWrap),"contentEditable"in document.body?this.setUpRich():this.setUpPlaintext(),!Config.Mobile){var e=getScrollWidth();e&&(this.richTextareaEl||this.textareaEl).css({left:-e,width:"calc(100% + "+2*e+"px)","padding-left":e+2,"padding-right":e+28})}},MessageComposer.prototype.setInlinePlaceholder=function(e,t){this.inlinePlaceholderPrefix=e,this.inlinePlaceholderPrefixEl.html(encodeEntities(e)),this.inlinePlaceholderEl.html(encodeEntities(t)),this.onChange()},MessageComposer.prototype.updateInlinePlaceholder=function(){var e=this.inlinePlaceholderPrefix;if(e){var t=this.textareaEl.val();this.inlinePlaceholderWrap.toggleClass("active",t==e)}},MessageComposer.prototype.setUpAutoComplete=function(){this.scroller=new Scroller(this.autoCompleteEl,{maxHeight:180});var e=this;this.autoCompleteEl.on("mousedown",function(t){t=t.originalEvent||t;for(var n,i,a,r,o=t.target;o&&"A"!=o.tagName;)o=o.parentNode;return o?(o=$(o),(i=o.attr("data-code"))&&(e.onEmojiSelected&&e.onEmojiSelected(i,!0),EmojiHelper.pushPopularEmoji(i)),n=t.altKey||!o.attr("data-username")?o.attr("data-user-id"):o.attr("data-username"),n&&e.onMentionSelected(n,o.attr("data-name")),(a=o.attr("data-command"))&&(e.onCommandSelected&&e.onCommandSelected(a),e.hideSuggestions()),(r=o.attr("data-inlineid"))&&(e.onInlineResultSend&&e.onInlineResultSend(r),e.hideSuggestions()),cancelEvent(t)):cancelEvent(t)})},MessageComposer.prototype.setUpRich=function(){this.textareaEl.hide(),this.richTextareaEl=$('<div class="composer_rich_textarea" contenteditable="true" dir="auto"></div>'),this.textareaEl[0].parentNode.insertBefore(this.richTextareaEl[0],this.textareaEl[0]),this.richTextareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.richTextareaEl.on("focus blur",this.onFocusBlur.bind(this)),this.richTextareaEl.on("paste",this.onRichPaste.bind(this)),this.richTextareaEl.on("DOMNodeInserted",this.onRichPasteNode.bind(this)),$(document.body).on("keydown",this.backupSelection.bind(this))},MessageComposer.prototype.setUpPlaintext=function(){this.textareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.textareaEl.on("focus blur",this.onFocusBlur.bind(this))},MessageComposer.prototype.onKeyEvent=function(e){var t=this;if("keyup"==e.type){this.checkAutocomplete();var n=!1;if(this.richTextareaEl){clearTimeout(this.updateValueTO);var i=tsNow();void 0===this.keyupStarted&&(this.keyupStarted=i),i-this.keyupStarted>3e3,this.onChange()}if(this.onTyping){var i=tsNow();i-this.lastTyping>5e3&&(n===!1&&(n=(this.richTextareaEl?this.richTextareaEl[0].textContent:this.textareaEl[0].value).length),n!=this.lastLength&&(this.lastTyping=i,this.lastLength=n,this.onTyping()))}}if("keydown"==e.type){var a=!this.autocompleteShown;if(this.autocompleteShown){if(38==e.keyCode||40==e.keyCode){var r,o=40==e.keyCode,s=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active"),l=Array.prototype.slice.call($(this.autoCompleteEl).find("li"));if(s.length){var c=l.indexOf(s[0]),d=c+(o?1:-1);if(r=l[d],s.removeClass("composer_autocomplete_option_active"),r)return $(r).addClass("composer_autocomplete_option_active"),this.scroller.scrollToNode(r),cancelEvent(e)}return r=l[o?0:l.length-1],this.scroller.scrollToNode(r),$(r).addClass("composer_autocomplete_option_active"),cancelEvent(e)}if(13==e.keyCode||9==e.keyCode){var s=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active");s.length||9!=e.keyCode||(s=$(this.autoCompleteEl).find("li:first")),s=s.find("a:first");var u,p,f,m;if(u=s.attr("data-code"))return this.onEmojiSelected(u,!0),EmojiHelper.pushPopularEmoji(u),cancelEvent(e);if(p=e.altKey||!s.attr("data-username")?s.attr("data-user-id"):s.attr("data-username"))return this.onMentionSelected(p,s.attr("data-name")),cancelEvent(e);if(f=s.attr("data-command"))return this.onCommandSelected&&this.onCommandSelected(f,9==e.keyCode),cancelEvent(e);if(m=s.attr("data-inlineid"))return t.onInlineResultSend&&t.onInlineResultSend(m),t.hideSuggestions(),cancelEvent(e);a=!0}}if(a&&13==e.keyCode){var h=!1,g=!0;if(this.getSendOnEnter&&!this.getSendOnEnter()&&(g=!1),g&&!e.shiftKey?h=!0:g||!e.ctrlKey&&!e.metaKey||(h=!0),h)return this.onMessageSubmit(e),cancelEvent(e)}if([33,34,35,36,38,39].indexOf(e.keyCode)!=-1&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&this.richTextareaEl&&!this.richTextareaEl[0].textContent.length)return this.onDirectionKey(e)}},MessageComposer.prototype.backupSelection=function(){if(delete this.selection,this.isActive)if(window.getSelection){var e=window.getSelection();e.getRangeAt&&e.rangeCount&&(this.selection=e.getRangeAt(0))}else document.selection&&document.selection.createRange&&(this.selection=document.selection.createRange())},MessageComposer.prototype.restoreSelection=function(){if(!this.selection)return!1;var e=!1;if(window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(this.selection),e=!0}else document.selection&&this.selection.select&&(this.selection.select(),e=!0);return delete this.selection,e},MessageComposer.prototype.checkAutocomplete=function(e){var t,n;if(this.richTextareaEl){var i=this.richTextareaEl[0],a=getRichValueWithCaret(i),n=a[0],t=a[1]>=0?a[1]:n.length;t||this.cleanRichTextarea(n,!0)}else var i=this.textareaEl[0],t=getFieldSelection(i),n=i.value;if(n&&this.curInlineResults&&this.curInlineResults.text==n)return void this.showInlineSuggestions(this.curInlineResults);e||(n=n.substr(0,t));var r=n.match(MessageComposer.autoCompleteRegEx);if(r){if(this.previousQuery==r[0])return;this.previousQuery=r[0];var o=SearchIndexManager.cleanSearchText(r[3]);if("@"==r[2])if(this.mentions&&this.mentions.index){if(o.length)for(var s,l=SearchIndexManager.search(o,this.mentions.index),c=[],d=0,u=this.mentions.users.length;d<u;d++)s=this.mentions.users[d],l[s.id]&&c.push(s);else var c=this.mentions.users;c.length?this.showMentionSuggestions(c):this.hideSuggestions()}else this.hideSuggestions();else if(r[1]||"/"!=r[2]){if(":"==r[2]){if(n.match(/^\s*:(.+):\s*$/))return;EmojiHelper.getPopularEmoji(function(e){if(o.length){var t=EmojiHelper.searchEmojis(o);if(t.length){for(var n,i,a=[],r=0,s=e.length;r<s&&(n=e[r].code,i=t.indexOf(n),!(i>=0)||(a.push(n),t.splice(i,1),t.length));r++);this.showEmojiSuggestions(a.concat(t))}else this.hideSuggestions()}else this.showEmojiSuggestions(e)}.bind(this))}}else if(this.commands&&this.commands.index){if(o.length)for(var p,l=SearchIndexManager.search(o,this.commands.index),f=[],d=0,u=this.commands.list.length;d<u;d++)p=this.commands.list[d],l[p.value]&&f.push(p);else var f=this.commands.list;f.length?this.showCommandsSuggestions(f):this.hideSuggestions()}else this.hideSuggestions()}else delete this.previousQuery,this.hideSuggestions()},MessageComposer.prototype.onFocusBlur=function(e){this.isActive="focus"==e.type,this.isActive?setTimeout(this.checkAutocomplete.bind(this),100):(this.cleanRichTextarea(),this.hideSuggestions()),this.richTextareaEl&&document.execCommand("enableObjectResizing",!this.isActive,!this.isActive)},MessageComposer.prototype.onRichPaste=function(e){var t,n=(e.originalEvent||e).clipboardData,i=n&&n.items||[];for(t=0;t<i.length;t++)if("file"==i[t].kind)return e.preventDefault(),!0;try{var a=n.getData("text/plain")}catch(e){return!0}return setZeroTimeout(this.onChange.bind(this),0),!a.length||(document.execCommand("insertText",!1,a),cancelEvent(e))},MessageComposer.prototype.cleanRichTextarea=function(e,t){if(this.richTextareaEl[0]&&(void 0===e&&(e=getRichValue(this.richTextareaEl[0])),e.match(/^\s*$/)&&this.richTextareaEl.html().length>0&&(this.richTextareaEl.html(""),this.lastLength=0,this.wasEmpty=!0,t))){var n=this;setZeroTimeout(function(){n.focus()})}},MessageComposer.prototype.onRichPasteNode=function(e){var t=(e.originalEvent||e).target,n=(t||{}).src||"",i=!1;if("data:"==n.substr(0,5)){i=!0;var a=dataUrlToBlob(n);this.onFilePaste(a),setZeroTimeout(function(){t.parentNode.replaceChild(document.createTextNode("   "),t)})}else if(n&&!n.match(/img\/blank\.gif/)){var r=document.createTextNode(" "+n+" ");setTimeout(function(){t.parentNode.replaceChild(r,t)},100)}},MessageComposer.prototype.onEmojiSelected=function(e,t){if(this.richTextareaEl){var n=this.richTextareaEl[0];if(this.isActive||this.restoreSelection()||setRichFocus(n),t){var i,a=getRichValueWithCaret(n),r=a[0],o=a[1]>=0?a[1]:r.length,s=r.substr(o),l=r.substr(0,o),c=l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];i=c&&c[0]?l.substr(0,c.index)+":"+d[1]+":":l+":"+d[1]+":",n.value=g;var u;s.length?(this.selId=(this.selId||0)+1,u=this.getRichHtml(i)+'&nbsp;<span id="composer_sel'+this.selId+'"></span>'+this.getRichHtml(s),this.richTextareaEl.html(u),setRichFocus(n,$("#composer_sel"+this.selId)[0])):(u=this.getRichHtml(i)+"&nbsp;",this.richTextareaEl.html(u),setRichFocus(n))}else{var u=this.getEmojiHtml(e);if(window.getSelection){var p=window.getSelection();if(p.getRangeAt&&p.rangeCount){var f=document.createElement("div");f.innerHTML=u;var m=f.firstChild,h=p.getRangeAt(0);h.deleteContents(),h.insertNode(document.createTextNode(" ")),h.insertNode(m),h.setStart(m,0),setTimeout(function(){h=document.createRange(),h.setStartAfter(m),h.collapse(!0),p.removeAllRanges(),p.addRange(h)},0)}}else document.selection&&"Control"!=document.selection.type&&document.selection.createRange().pasteHTML(u)}}else{var n=this.textareaEl[0],r=n.value,o=this.isActive?getFieldSelection(n):r.length,s=r.substr(o),l=r.substr(0,o),c=t&&l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];if(c&&c[0])var g=l.substr(0,c.index)+":"+d[1]+": "+s,_=c.index+d[1].length+3;else var g=l+":"+d[1]+": "+s,_=l.length+d[1].length+3;n.value=g,setFieldSelection(n,_)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onMentionsUpdated=function(e){delete this.previousQuery,this.isActive&&this.checkAutocomplete()},MessageComposer.prototype.onMentionSelected=function(e,t){var n=!0;if("#"==e.charAt(0)&&(n=!1,e=e.substr(1),t=t.replace(/\(\)@/,"")),this.richTextareaEl){var i=this.richTextareaEl[0];this.isActive||this.restoreSelection()||setRichFocus(i);var a,r=getRichValueWithCaret(i),o=r[0],s=r[1]>=0?r[1]:o.length,l=o.substr(s),c=o.substr(0,s),d=c.match(/@([\S]*)$/);a=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e;var u;n?l.length?(this.selId=(this.selId||0)+1,u=this.getRichHtml(a)+'&nbsp;<span id="composer_sel'+this.selId+'"></span>'+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(i,$("#composer_sel"+this.selId)[0])):(u=this.getRichHtml(a)+"&nbsp;",this.richTextareaEl.html(u),setRichFocus(i)):(this.selId=(this.selId||0)+1,u=this.getRichHtml(a)+'&nbsp;(<span id="composer_sel'+this.selId+'">'+encodeEntities(t)+"</span>)&nbsp;"+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(i,$("#composer_sel"+this.selId)[0],!0))}else{var a,p,f,m,i=this.textareaEl[0],o=i.value,s=this.isActive?getFieldSelection(i):o.length,l=o.substr(s),c=o.substr(0,s),d=c.match(/@([\S]*)$/);a=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e,n?(p=a+"@"+e+" "+l,f=d.index+e.length+2):(p=a+"@"+e+" ("+t+") "+l,f=d.index+e.length+2,m=f+t.length),i.value=p,setFieldSelection(i,f,m)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onCommandSelected=function(e,t){if(t)if(this.richTextareaEl)this.richTextareaEl.html(encodeEntities(e)+"&nbsp;"),setRichFocus(this.richTextareaEl[0]);else{var n=this.textareaEl[0];n.value=e+" ",setFieldSelection(n)}else this.onCommandSend(e);this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onChange=function(e){if(this.richTextareaEl){delete this.keyupStarted;var t=getRichValue(this.richTextareaEl[0]);this.textareaEl.val(t).trigger("change")}this.updateInlinePlaceholder()},MessageComposer.prototype.getEmojiHtml=function(e,t){t=t||EmojiHelper.emojis[e];var n=20,i=EmojiHelper.spritesheetPositions[e],a=i[0],r=(i[1],n*i[3]),o=n*i[2];return'<img src="img/blank.gif" alt=":'+encodeEntities(t[1])+':" data-code="'+encodeEntities(e)+'" class="emoji emoji-w20 emoji-spritesheet-'+a+'" style="background-position: -'+r+"px -"+o+'px;" onresizestart="return false" />'},MessageComposer.prototype.setValue=function(e){this.richTextareaEl?(this.richTextareaEl.html(this.getRichHtml(e)),this.lastLength=e.length,this.wasEmpty=!e.length,this.onKeyEvent({type:"keyup"})):this.textareaEl.val(e)},MessageComposer.prototype.setFocusedValue=function(e){var t=e[0],n=e[1],i=e[2];if(this.richTextareaEl){this.selId=(this.selId||0)+1;var a=this.getRichHtml(t)+'<span id="composer_sel'+this.selId+'">'+this.getRichHtml(n)+"</span>"+this.getRichHtml(i);this.richTextareaEl.html(a),setRichFocus(this.richTextareaEl[0],$("#composer_sel"+this.selId)[0],!0)}else this.textareaEl.val(t+n+i),setFieldSelection(this.textareaEl[0],t.length,t.length+n.length)},MessageComposer.prototype.getRichHtml=function(e){var t=$("<div>").text(e).html();return t=t.replace(/\n/g,"<br/>"),t=t.replace(/:([A-Za-z0-9\-\+\*_]+?):/gi,function(e,t){var n=EmojiHelper.shortcuts[t];return void 0!==n?this.getEmojiHtml(n):e}.bind(this)),t=t.replace(/ /g,"  ").replace(/^ | $/g," ")},MessageComposer.prototype.focus=function(){this.richTextareaEl?setZeroTimeout(function(){setRichFocus(this.richTextareaEl[0])}.bind(this)):setFieldSelection(this.textareaEl[0])},MessageComposer.prototype.blur=function(){this.richTextareaEl?this.richTextareaEl[0].blur():this.textareaEl[0].blur()},MessageComposer.prototype.renderSuggestions=function(){this.autoCompleteWrapEl.show(),this.scroller.reinit(),this.updatePosition(),this.autocompleteShown=!0},MessageComposer.prototype.showEmojiSuggestions=function(e){var t=++this.renderToggleCnt,n=this;setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="emoji",n.autoCompleteScope.emojiCodes=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.showMentionSuggestions=function(e){var t=++this.renderToggleCnt,n=this;setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="mentions",n.autoCompleteScope.mentionUsers=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.showCommandsSuggestions=function(e){var t=++this.renderToggleCnt,n=this;setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="commands",n.autoCompleteScope.commands=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.showInlineSuggestions=function(e){if(!e||!e.results.length)return void this.hideSuggestions();var t=++this.renderToggleCnt,n=this;"inline"==n.autoCompleteScope.type&&n.autoCompleteScope.botResults==e&&n.autocompleteShown||setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="inline",n.autoCompleteScope.botResults=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.setInlineSuggestions=function(e){this.curInlineResults=e,this.checkAutocomplete()},MessageComposer.prototype.updatePosition=function(){var e=(this.richTextareaEl||this.textareaEl).offset(),t=this.scroller.updateHeight(),n=$((this.richTextareaEl||this.textareaEl)[0].parentNode).outerWidth();this.autoCompleteWrapEl.css({top:e.top-t,left:Config.Mobile?0:e.left,width:Config.Mobile?"100%":n-2}),this.scroller.update()},MessageComposer.prototype.hideSuggestions=function(){++this.renderToggleCnt;this.autoCompleteWrapEl.hide(),delete this.autocompleteShown},MessageComposer.prototype.resetTyping=function(){this.lastTyping=0,this.lastLength=0},MessageComposer.prototype.setPlaceholder=function(e){(this.richTextareaEl||this.textareaEl).attr("placeholder",e)},Scroller.prototype.setUpNano=function(){this.content.wrap('<div class="scroller_scrollable_container"><div class="scroller_scrollable_wrap nano"><div class="scroller_scrollable nano-content "></div></div></div>'),this.scrollable=$(this.content[0].parentNode),this.scroller=$(this.scrollable[0].parentNode),this.wrap=$(this.scroller[0].parentNode),this.scroller.nanoScroller({preventPageScrolling:!0,tabIndex:-1})},Scroller.prototype.setUpNative=function(){this.content.wrap('<div class="scroller_native_scrollable"></div>'),this.scrollable=$(this.content[0].parentNode),this.scrollable.css({overflow:"auto"}),this.maxHeight&&this.scrollable.css({maxHeight:this.maxHeight}),this.minHeight&&this.scrollable.css({minHeight:this.minHeight})},Scroller.prototype.onScroll=function(e){var t=this,n=this.scrollable[0];this.scrollable.on("scroll",function(i){t.isAnimatedScroll||e(n,n.scrollTop)})},Scroller.prototype.update=function(){this.useNano&&$(this.scroller).nanoScroller()},Scroller.prototype.reinit=function(){this.scrollTo(0),this.useNano&&setTimeout(function(){this.updateHeight()}.bind(this),100)},Scroller.prototype.updateHeight=function(){var e;return this.useNano?(this.maxHeight||this.minHeight?(e=this.content[0].offsetHeight,this.maxHeight&&e>this.maxHeight&&(e=this.maxHeight),this.minHeight&&e<this.minHeight&&(e=this.minHeight),this.wrap.css({height:e})):e=this.scroller[0].offsetHeight,$(this.scroller).nanoScroller()):e=this.scrollable[0].offsetHeight,e},Scroller.prototype.scrollTo=function(e,t,n){if(t>0){var i=this;this.isAnimatedScroll=!0,this.scrollable.animate({scrollTop:e},t,function(){delete i.isAnimatedScroll,i.useNano&&$(i.scroller).nanoScroller({flash:!0}),i.scrollable.trigger("scroll"),n&&n()})}else this.scrollable[0].scrollTop=e,this.useNano&&$(this.scroller).nanoScroller({flash:!0}),n&&n()},Scroller.prototype.scrollToNode=function(e){e=e[0]||e;var t=e.offsetTop-15,n=e.offsetHeight+30,i=this.scrollable[0].scrollTop,a=this.scrollable[0].clientHeight;i>t?this.scrollTo(t):i<t+n-a&&this.scrollTo(t+n-a)},angular.module("myApp.directives",["myApp.filters"]).constant("shouldFocusOnInteraction",!Config.Navigator.mobile).directive("myHead",function(){return{restrict:"AE",templateUrl:templateUrl("head")}}).directive("myLangFooter",function(){return{restrict:"AE",templateUrl:templateUrl("lang_footer")}}).directive("myFooter",function(){return{restrict:"AE",templateUrl:templateUrl("footer")}}).directive("myDialog",function(){return{restrict:"AE",templateUrl:templateUrl("dialog")}}).directive("myMessage",["$filter","_",function(e,t){function n(e,t,n){var u,p,f=!1,m=!1,h=!1,g=!1,_=!1,v=!1,y=!1,b=function(){f!=(e.selectedMsgs[e.historyMessage.mid]||!1)&&(f=!f,t.toggleClass(o,f))},w=function(){m!=e.historyMessage.grouped&&(m&&t.removeClass(m),m=e.historyMessage.grouped,m&&t.addClass(m)),v!=(e.historyMessage.needDate||!1)&&(v=!v,v?u?u.show():(u=$(a),$(".im_message_date_split_text",u).text(i(e.historyMessage.date)),p?u.insertBefore(p):u.prependTo(t)):u.hide())};b(),w(),e.$on("messages_select",b),e.$on("messages_regroup",w),e.$on("messages_focus",function(n,i){i==e.historyMessage.mid!=h&&(h=!h,t.toggleClass(s,h))});var k;if(!e.historyMessage.pFlags.out&&(e.historyMessage.pFlags.unread||e.historyMessage.unreadAfter)){var M=function(){e.peerHistory.peerID==e.historyPeer.id&&y!=(e.historyUnreadAfter==e.historyMessage.mid)&&(y=!y,y?p?p.show():p=$(r).prependTo(t):(p.hide(),k&&k()))};M(),k=e.$on("messages_unread_after",M)}if(e.historyMessage.pFlags.unread&&e.historyMessage.pFlags.out){t.addClass(l);var S=e.$on("messages_read",function(){e.historyMessage.pFlags.unread||(t.removeClass(l),S(),k&&!y&&k())})}if(e.historyMessage.error||e.historyMessage.pending){var A=function(){_!=(e.historyMessage.pending||!1)&&(_=!_,t.toggleClass(d,_)),g!=(e.historyMessage.error||!1)&&(g=!g,t.toggleClass(c,g)),g||_||C()},C=e.$on("messages_pending",A);A()}}var i=e("myDate"),a='<div class="im_message_date_split im_service_message_wrap"><div class="im_service_message"><span class="copyonly"><br/>---&nbsp;</span><span class="im_message_date_split_text"></span><span class="copyonly">&nbsp;---</span></div></div>',r='<div class="im_message_unread_split">'+t("unread_messages_split")+"</div>",o="im_message_selected",s="im_message_focus",l="im_message_unread",c="im_message_error",d="im_message_pending";return{templateUrl:templateUrl("message"),link:n}}]).directive("myMessageBody",["$compile","AppPeersManager","AppChatsManager","AppUsersManager","AppMessagesManager","AppInlineBotsManager","RichTextProcessor",function(e,t,n,i,a,r,o){function s(e,t,n){if(n.media&&n.media.handleMessage||"string"!=typeof n.message||!n.message.length)return void $(".im_message_text",t).hide();var i=a.wrapMessageText(n.mid);$(".im_message_text",t).html(i.valueOf())}function l(e,t,n){if(!n.media)return void $(".im_message_media",t).hide();var i=e.$new(!0);i.media=n.media,i.messageId=n.mid,f(i,function(e){$(".im_message_media",t).replaceWith(e)})}function c(e,t,n){var i=n.post_author||n.fwd_from&&n.fwd_from.post_author;if(!i)return void $(".im_message_sign",t).hide();var a=o.wrapRichText(i,{noLinks:!0,noLinebreaks:!0});$(".im_message_sign",t).html('<span class="im_message_sign_link">'+a.valueOf()+"</span>")}function d(e,t,n){if(!n.reply_markup||"replyInlineMarkup"!=n.reply_markup._)return void $(".im_message_keyboard",t).hide();var i=e.$new(!0);i.markup=a.wrapReplyMarkup(n.reply_markup,n.fromID),i.messageId=n.mid,m(i,function(e){$(".im_message_keyboard",t).replaceWith(e)}),i.$on("reply_inline_button_press",function(e,t){switch(t._){case"keyboardButtonSwitchInline":r.switchInlineButtonClick(n.mid,t);break;case"keyboardButtonCallback":r.callbackButtonClick(n.mid,t);break;case"keyboardButtonGame":r.gameButtonClick(n.mid)}})}function u(e,t,n){s(e,t,n),l(e,t,n),c(e,t,n),d(e,t,n)}function p(e,t,n){var i=e.message;i.dir=!0;var a=i.mid;if(u(e,t,i),i.pending)var r=e.$on("messages_pending",function(){i.mid!=a&&(u(e,t,i),r())});e.$on("message_edit",function(n,a){a.mid==i.mid&&(a.justMedia?l(e,t,i):u(e,t,i))})}var f=e('<div class="im_message_media" my-message-media="media" message-id="messageId"></div>'),m=e('<div class="im_message_keyboard" my-inline-reply-markup="markup"></div>');e('<div class="im_message_sign"><span class="im_message_sign_link" my-peer-link="signID"></span></div>');return{link:p,scope:{message:"=myMessageBody"}}}]).directive("myMessageViews",["$filter","AppMessagesManager",function(e,t){function n(e,t){t.html(a(e))}function i(e,i,a){var r=e.$eval(a.myMessageViews),o=t.getMessage(r).views||0;n(o,i),e.$on("message_views",function(e,t){t.mid==r&&n(t.views,i)})}var a=e("formatShortNumber");return{link:i}}]).directive("myReplyMarkup",function(){function e(e,t,n){var i=$(".reply_markup",t),a=new Scroller(i,{classPrefix:"reply_markup",maxHeight:170});e.buttonClick=function(t){e.$emit("reply_button_press",t)},e.$on("ui_keyboard_update",function(t,n){onContentLoaded(function(){a.updateHeight(),a.scrollTo(0),e.$emit("ui_panel_update",{blur:n&&n.enabled})})}),onContentLoaded(function(){a.updateHeight(),e.$emit("ui_panel_update")})}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myReplyMarkup"},link:e}}).directive("myMessageMedia",function(){return{scope:{media:"=myMessageMedia",messageId:"=messageId"},templateUrl:templateUrl("message_media")}}).directive("myMessagePhoto",["AppPhotosManager",function(e){return{scope:{media:"=myMessagePhoto",messageId:"=messageId"},templateUrl:templateUrl("message_attach_photo"),link:function(t,n,i){t.openPhoto=e.openPhoto,t.preloadPhoto=e.preloadPhoto}}}]).directive("myMessageDocument",["AppDocsManager",function(e){return{scope:{media:"=myMessageDocument",messageId:"=messageId"},templateUrl:templateUrl("message_attach_document"),link:function(t,n,i){if(e.updateDocDownloaded(t.media.document.id),t.docSave=function(){e.saveDocFile(t.media.document.id)},t.docOpen=function(){return t.media.document.withPreview?void e.openDoc(t.media.document.id,t.messageId):t.docSave()},t.videoOpen=function(){e.openVideo(t.media.document.id,t.messageId)},t.media.document.file_name){var a=t.media.document.file_name.split(".");a.length>1?(t.media_file_ext="."+a.pop(),t.media_file_name_without_ext=a.join("."),t.media_file_name_without_ext||(t.media_file_name_without_ext=t.media_file_ext,t.media_file_ext="")):(t.media_file_ext="",t.media_file_name_without_ext=a[0])}}}}]).directive("myMessageGeo",function(){return{scope:{media:"=myMessageGeo"},templateUrl:templateUrl("message_attach_geo")}}).directive("myMessageVenue",function(){return{scope:{media:"=myMessageVenue"},templateUrl:templateUrl("message_attach_venue")}}).directive("myMessageContact",function(){return{scope:{media:"=myMessageContact"},templateUrl:templateUrl("message_attach_contact")}}).directive("myMessageWebpage",["AppWebPagesManager","AppPhotosManager",function(e,t){return{scope:{media:"=myMessageWebpage",messageId:"=messageId"},templateUrl:templateUrl("message_attach_webpage"),link:function(n){n.openPhoto=t.openPhoto,n.openEmbed=function(t){if(n.media.webpage&&n.media.webpage.embed_url)return e.openEmbed(n.media.webpage.id,n.messageId),cancelEvent(t)},n.$on("webpage_updated",function(e,t){n.media.webpage&&n.media.webpage.id==t.id&&n.$emit("ui_height")})}}}]).directive("myMessageGame",["AppInlineBotsManager","AppMessagesManager",function(e,t){return{scope:{media:"=myMessageGame",messageId:"=messageId"},templateUrl:templateUrl("message_attach_game"),link:function(n,i){function a(e){var a=t.getMessage(n.messageId);if(a.message){var r=t.wrapMessageText(n.messageId);$(".im_message_game_message",i).html(r.valueOf()).show(),$(".im_message_game_description",i).hide()}else $(".im_message_game_message",i).html("").hide(),$(".im_message_game_description",i).show()}n.openGame=function(){e.gameButtonClick(n.messageId);
},n.$on("message_edit",function(e,t){t.mid==n.messageId&&a()}),a()}}}]).directive("myMessagePending",function(){function e(e,t,n){if(e.media.file_name){var i=e.media.file_name.split(".");i.length>1?(e.media_file_ext="."+i.pop(),e.media_file_name_without_ext=i.join("."),e.media_file_name_without_ext||(e.media_file_name_without_ext=e.media_file_ext,e.media_file_ext="")):(e.media_file_ext="",e.media_file_name_without_ext=i[0])}}return{scope:{media:"=myMessagePending"},templateUrl:templateUrl("message_attach_pending"),link:e}}).directive("myInlineReplyMarkup",function(){function e(e,t,n){e.buttonClick=function(t){e.$emit("reply_inline_button_press",t)}}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myInlineReplyMarkup"},link:e}}).directive("myServiceMessage",["ErrorService","AppMessagesManager",function(e,t){function n(n,i,a){n.phoneCallClick=function(n){var i=t.getMessage(n),a=t.getMessagePeer(i);e.show({error:{type:"PHONECALLS_NOT_SUPPORTED",userID:a}})}}return{templateUrl:templateUrl("message_service"),scope:{historyMessage:"=myServiceMessage"},link:n}}]).directive("myShortMessage",function(){return{scope:{message:"=myShortMessage"},templateUrl:templateUrl("short_message")}}).directive("myReplyMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function i(e,t,n){if(n.watch)e.$parent.$watch(n.myReplyMessage,function(i){var r=e.$parent.$eval(n.edit);a(e,t,i,r)});else{var i=e.$parent.$eval(n.myReplyMessage),r=e.$parent.$eval(n.edit);a(e,t,i,r)}}function a(t,n,i,a){var o=t.replyMessage=e.wrapSingleMessage(i);if(t.thumb=!1,t.isEdit=a||!1,o.loading)var s=t.$on("messages_downloaded",function(a,o){o.indexOf(i)!=-1&&(t.replyMessage=e.wrapForDialog(i),r(t,n),s())});else r(t,n)}function r(i,a){var r=i.replyMessage;return r&&!r.deleted&&r.to_id?(i.thumb=e.getMessageThumb(r,42,42),"A"==a[0].tagName&&a.on("click",function(){var i=e.getMessagePeer(r),a=t.getPeerString(i);n.$broadcast("history_focus",{peerString:a,messageID:r.mid})}),void onContentLoaded(function(){i.$emit("ui_height")})):void $(a).remove()}return{templateUrl:templateUrl("reply_message"),scope:{},link:i}}]).directive("myPinnedMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function i(t,n,i){var r=t.$parent.$eval(i.myPinnedMessage),o=t.pinnedMessage=e.wrapSingleMessage(r);if(o.loading)var s=t.$on("messages_downloaded",function(i,o){o.indexOf(r)!=-1&&(t.pinnedMessage=e.wrapForDialog(r),a(t,n),s())});else a(t,n)}function a(i,a){var r=i.pinnedMessage;return r&&!r.deleted&&r.to_id?("A"==a[0].tagName&&a.on("click",function(){var i=e.getMessagePeer(r),a=t.getPeerString(i);n.$broadcast("history_focus",{peerString:a,messageID:r.mid})}),void onContentLoaded(function(){i.$emit("ui_height")})):void $(a).remove()}return{templateUrl:templateUrl("pinned_message"),scope:{},link:i}}]).directive("myPeerPinnedMessageBar",["AppMessagesManager","AppPeersManager","AppProfileManager",function(e,t,n){function i(e,i,a){a&&(i.pinnedMessageID=0,i.$emit("ui_height"));var r=++i.jump;if(t.isChannel(e)){var o=-e;n.getChannelPinnedMessage(o).then(function(e){r==i.jump&&(i.pinnedMessageID=e||0,i.$emit("ui_height"))})}}function a(e,t,a){e.jump=0,e.$parent.$watch(a.myPeerPinnedMessageBar,function(t){e.peerID=t,i(t,e,!0)}),e.$on("peer_pinned_message",function(t,n){n==e.peerID&&i(e.peerID,e)}),e.$on("chat_full_update",function(t,n){n==-e.peerID&&i(e.peerID,e)}),e.hidePinned=function(){n.hideChannelPinnedMessage(-e.peerID,e.pinnedMessageID),e.pinnedMessageID=0,e.$emit("ui_height")}}return{templateUrl:templateUrl("peer_pinned_message_bar"),scope:{},link:a}}]).directive("myForwardedMessages",["AppPhotosManager","AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n,i){function a(e,t,n){n.watch?e.$watch("forwardMessages",function(){r(e,t)}):r(e,t)}function r(e,n){var i=e.forwardMessages,a=i.length,r=!1,o=1==a;e.thumb=!1,e.singleMessage=!1,angular.forEach(i,function(n){var i=t.getMessage(n);r===!1?r=i.fromID:r!==i.fromID&&(r=t.getMessagePeer(i)),o&&(e.thumb=t.getMessageThumb(i,42,42),e.singleMessage=t.wrapForDialog(n))}),e.fromID=r,e.count=a,onContentLoaded(function(){e.$emit("ui_height")})}return{templateUrl:templateUrl("forwarded_messages"),scope:{forwardMessages:"=myForwardedMessages"},link:a}}]).directive("myMessageEdited",["_","$timeout","AppMessagesManager",function(e,t,n){function i(e,t,n){var i=e.$parent.$eval(n.myMessageEdited);a(e,t,i)&&e.$on("message_edit",function(i,r){var o=e.$parent.$eval(n.myMessageEdited);r.mid==o&&a(e,t,o)})}function a(e,i,a){var o=n.getMessage(a);return o.canBeEdited?!o.edit_date||(i.html(r).show(),t(function(){e.$destroy()}),!1):(t(function(){e.$destroy(),i.remove()}),!1)}var r=e("message_edited");return{scope:{},link:i}}]).directive("myMessageAdminBadge",["_","AppPeersManager","AppMessagesManager","AppProfileManager",function(e,t,n,i){function a(e,a,o){var s=e.$parent.$eval(o.myMessageAdminBadge),l=s&&s.fromID,c=s&&n.getMessagePeer(s);if(!l||!t.isMegagroup(c))return void a.hide();var d=-c;i.getChannelParticipants(d,{_:"channelParticipantsAdmins"}).then(function(e){for(var t=!1,n=0,i=e.length;n<i;n++)if(e[n].user_id==l){t=!0;break}t?a.text(r).show():a.hide()},function(){a.hide()})}var r=e("message_admin_badge_raw");return{scope:{},link:a}}]).directive("myDialogs",["$modalStack","$transition","$window","$timeout",function(e,t,n,i){function a(t,a,r){function o(n){if(!p&&e.getTop())return!0;var i,a,r;if(36==n.keyCode&&!n.shiftKey&&!n.ctrlKey&&n.altKey)return i=$(l).find(".im_dialog_wrap a"),i.length&&($(i[0]).trigger("mousedown"),l.scrollTop=0,$(s).nanoScroller({flash:!0})),cancelEvent(n);if(27==n.keyCode||9==n.keyCode&&n.shiftKey&&!n.ctrlKey&&!n.metaKey)return p?c.value?$(u).trigger("click"):(t.$emit("esc_no_more"),setTimeout(function(){c.blur(),setTimeout(function(){c.focus()},0)},100)):(setFieldSelection(c),c.value&&c.select()),cancelEvent(n);if(p&&13==n.keyCode&&!Config.Navigator.mobile)return i=$(l).find(".im_dialog_selected")[0]||$(l).find(".im_dialog_wrap a")[0],i&&!$(i).hasClass("disabled")&&$(i).trigger("mousedown"),cancelEvent(n);if(!Config.Navigator.osX&&n.altKey&&n.shiftKey&&!n.ctrlKey&&!n.metaKey&&n.keyCode>=49&&n.keyCode<=57||Config.Navigator.osX&&n.ctrlKey&&n.shiftKey&&!n.metaKey&&!n.altKey&&n.keyCode>=49&&n.keyCode<=57){var o=n.keyCode-49;return r=$(l).find(".im_dialog_wrap"),a=r[o],a&&($(a).find("a").trigger("mousedown"),scrollToNode(l,a,s)),cancelEvent(n)}var d,f,m,h=Config.Modes.packed;if(40==n.keyCode||38==n.keyCode?(d=40==n.keyCode,f=!d,m=!n.shiftKey&&n.altKey):h&&9==n.keyCode&&n.ctrlKey&&!n.metaKey&&(d=!n.shiftKey,f=!d,m=!0),d||f){if(!m&&(!p||n.metaKey))return!0;i=!m&&$(l).find(".im_dialog_selected")[0]||$(l).find(".active a.im_dialog")[0];var g=i&&i.parentNode;if(g){if(a=i[d?"nextSibling":"previousSibling"],!a||!a.className||a.className.indexOf("im_dialog_wrap")==-1){r=$(l).find(".im_dialog_wrap");var _=r.index(i.parentNode),v=_+(d?1:-1);a=r[v]}}else r=$(l).find(".im_dialog_wrap"),a=d?r[0]:r[r.length-1];return m?a&&$(a).find("a").trigger("mousedown"):(g&&a&&$(g).find("a").removeClass("im_dialog_selected"),a&&$(a).find("a").addClass("im_dialog_selected")),a&&scrollToNode(l,a,s),cancelEvent(n)}}var s=$(".im_dialogs_wrap",a)[0],l=$(".im_dialogs_scrollable_wrap",a)[0],c=$(".im_dialogs_search_field",a)[0],d=$(".im_dialogs_panel",a)[0],u=$(".im_dialogs_search_clear",a)[0],p=!1;$(c).on("focus blur",function(e){p="focus"==e.type,p||($(l).find(".im_dialog_selected").removeClass("im_dialog_selected"),c.value||t.$emit("ui_dialogs_search_clear"))}),t.$on("dialogs_search_toggle",function(){$(d).addClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search"),$(n).scrollTop(0),i(function(){setFieldSelection(c)})}),t.$on("search_clear",function(){$(d).removeClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search")}),$(document).on("keydown",o),t.$on("$destroy",function(){$(document).off("keydown",o)}),t.$on("ui_dialogs_change",function(){onContentLoaded(function(){var e=$(l).find(".active a.im_dialog")[0];e&&scrollToNode(l,e.parentNode,s)})})}return{link:a}}]).directive("myDialogsList",["$window","$timeout",function(e,t){function n(n,i,a){function r(){if(u&&u.offsetHeight||(u=$(d)[0]),a.modal){var t=$(e).height()-(u?u.offsetHeight:49)-(Config.Mobile?46:100);return t=Math.min(Config.Mobile?350:450,t),$(i).css({height:t}),void m()}c&&c.offsetHeight||(c=$(".tg_page_head")[0]),p&&p.offsetHeight||(p=$(".footer_wrap")[0]),s&&s.offsetHeight||(s=$(".im_dialogs_col_wrap")[0]);var n=p?p.offsetHeight:0;n&&n++,$(i).css({height:$(e).height()-n-(c?c.offsetHeight:48)-(u?u.offsetHeight:58)-parseInt($(s).css("paddingBottom")||0)}),m()}var o=$(".im_dialogs_wrap",i)[0],s=$(".im_dialogs_col_wrap")[0],l=$(".im_dialogs_scrollable_wrap",i)[0],c=$(".tg_page_head")[0],d=Config.Mobile&&a.modal?".mobile_modal_body .im_dialogs_panel":".im_dialogs_panel",u=$(d)[0],p=$(".footer_wrap")[0],f=!1;onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0})});var m=function(){onContentLoaded(function(){$(o).nanoScroller()})};n.$on("ui_dialogs_prepend",m),n.$on("ui_dialogs_search",r),n.$on("ui_dialogs_update",r),n.$on("ui_dialogs_append",function(){onContentLoaded(function(){m(),f=!1,t(function(){$(l).trigger("scroll")})})}),n.$on("ui_dialogs_change",function(){onContentLoaded(function(){m(),f=!1,t(function(){$(l).trigger("scroll")})})}),$(l).on("scroll",function(e){i.is(":visible")&&!f&&l.scrollTop>=l.scrollHeight-l.clientHeight-300&&(n.$emit("dialogs_need_more"),f=!0)}),$(e).on("resize",r),r(),setTimeout(r,1e3)}return{link:n}}]).directive("myContactsList",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:$(e).height()-(o&&o.offsetHeight||0)-(r&&r.offsetHeight||0)-(Config.Mobile?64:200)}),$(s).nanoScroller()}var r=$(".contacts_modal_search")[0],o=$(".contacts_modal_panel")[0],s=$(".contacts_wrap",n)[0];onContentLoaded(function(){$(s).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),a()}),$(e).on("resize",a),t.$on("contacts_change",function(){onContentLoaded(a)})}return{link:n}}]).directive("myCountriesList",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:$(e).height()-(o&&o.offsetHeight||0)-(r&&r.offsetHeight||0)-(Config.Mobile?64:200)}),$(s).nanoScroller()}var r=$(".countries_modal_search")[0],o=$(".countries_modal_panel")[0],s=$(".countries_wrap",n)[0];onContentLoaded(function(){$(s).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),a()}),$(e).on("resize",a),t.$on("contacts_change",function(){onContentLoaded(a)})}return{link:n}}]).directive("mySessionsList",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:Math.min(760,$(e).height()-(Config.Mobile?64:200))}),$(r).nanoScroller()}var r=$(".sessions_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),a()}),$(e).on("resize",a)}return{link:n}}]).directive("myStickersList",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:Math.min(600,$(e).height()-(Config.Mobile?64:200))}),$(r).nanoScroller()}var r=$(".stickerset_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),a()}),$(e).on("resize",a)}return{link:n}}]).directive("myHistory",["$window","$timeout","$rootScope","$transition",function(e,t,n,i){function a(a,r,o){function s(e,n){var i,a,r,o=!1;if(!e&&(a=$(".im_message_focus:visible",p)[0])){var s=p.clientHeight,l=p.scrollTop,c=a.offsetTop,d=a.clientHeight;(!l||l+s<c||l>c+d||n)&&(o=Math.max(0,c-Math.floor(s/2)+26)),I=!1,r=function(){var e=$(a).data("unfocus_promise");e&&(t.cancel(e),$(a).removeClass("im_message_focus_active")),t(function(){$(a).addClass("im_message_focus_active"),e=t(function(){$(a).removeClass("im_message_focus_active"),$(a).data("unfocus_promise",!1)},2800),$(a).data("unfocus_promise",e)})}}else(i=$(".im_message_unread_split:visible",p)[0])?(o=Math.max(0,i.offsetTop-52),I=!1):(o=p.scrollHeight,I=!0);if(o!==!1){var u=function(){S(),t(function(){$(p).trigger("scroll"),x=p.scrollTop}),r&&r()};n?$(p).animate({scrollTop:o},200,u):(p.scrollTop=o,u())}}function l(t){if(r.is(":visible")||$(r[0].parentNode.parentNode).is(":visible")){$(_).is(":visible")&&(b&&b.offsetHeight||(b=$(".im_send_form",r)[0]),$(_).css({height:$(b).height()})),v&&v.offsetHeight||(v=$(".tg_page_head")[0]),y&&y.offsetHeight||(y=$(".footer_wrap")[0]),h&&h.offsetHeight||(h=$(".im_history_pinned_panel",r)[0]);var n=y?y.offsetHeight:0;n&&n++;var i=h&&h.offsetHeight||0,a=$(e).height()-g.offsetHeight-(v?v.offsetHeight:48)-n-i;$(d).css({height:a}),c(),t!==!0&&(I&&onContentLoaded(function(){p.scrollTop=p.scrollHeight,S()}),S(100))}}function c(){$(u).css({marginTop:0});var e=p.offsetHeight-u.offsetHeight-m.offsetHeight-(Config.Mobile?0:39);u.offsetHeight>0&&e>0&&$(u).css({marginTop:e}),$(d).nanoScroller()}var d=$(".im_history_wrap",r)[0],u=$(".im_history_messages",r)[0],p=($(".im_history",r)[0],$(".im_history_scrollable_wrap",r)[0]),f=$(".im_history_scrollable",r)[0],m=$(".im_history_empty_wrap",r)[0],h=$(".im_history_pinned_panel",r)[0],g=$(".im_bottom_panel_wrap",r)[0],_=$(".im_send_form_wrap",r)[0],v=$(".tg_page_head")[0],y=$(".footer_wrap")[0],b=$(".im_send_form",r)[0],w=!1,k=!1;onContentLoaded(function(){p.scrollTop=p.scrollHeight}),$(d).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0});var M,S=function(e){t(function(){$(p).hasClass("im_history_to_bottom")||$(d).nanoScroller()},e||0)},A=!1,C=["transform","webkitTransform","MozTransform","msTransform","OTransform"];for(M=0;M<C.length;M++)if(C[M]in u.style){A=C[M];break}var T=!1,E=!1;a.$on("ui_history_append_new",function(e,t){if(!I&&!t.my)return void onContentLoaded(function(){$(d).nanoScroller()});if(t.idleScroll)return void onContentLoaded(function(){$(d).nanoScroller(),s(!0)});var a,r=T&&!n.idle.isIDLE&&u.clientHeight>0;if(r)a=p.scrollHeight;else{var o=parseInt($(p).css("paddingRight"));$(f).css({bottom:0,paddingRight:o}),$(p).addClass("im_history_to_bottom")}onContentLoaded(function(){if(r){E=!0,$(u).removeClass("im_history_appending"),p.scrollTop=p.scrollHeight,$(u).css(A,"translate(0px, "+(p.scrollHeight-a)+"px)"),$(d).nanoScroller();var e={};e[A]="translate(0px, 0px)",$(u).addClass("im_history_appending"),i($(u),e).then(function(){E=!1,$(u).removeClass("im_history_appending"),c()})}else $(p).removeClass("im_history_to_bottom"),$(f).css({bottom:"",paddingRight:0}),p.scrollTop=p.scrollHeight,c()})}),a.$on("history_direction_key",function(e,t){var n=!1;switch(console.warn("scroll top",t.keyCode),t.keyCode){case 33:n=p.scrollTop-p.clientHeight;break;case 34:n=p.scrollTop+p.clientHeight;break;case 36:n=0;break;case 35:n=p.scrollHeight}n!==!1&&$(p).stop().animate({scrollTop:n},200)}),a.$on("ui_history_change",function(){var e=parseInt($(p).css("paddingRight"));$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(f).css({bottom:0,paddingRight:e}),onContentLoaded(function(){$(p).removeClass("im_history_to_bottom"),$(f).css({bottom:"",paddingRight:""}),l(!0),w=!1,k=!1,s()})}),a.$on("ui_history_change_scroll",function(e,t){onContentLoaded(function(){s(!1,t)})}),a.$on("ui_history_focus",function(){I||(p.scrollTop=p.scrollHeight,S(),I=!0)}),a.$on("ui_history_prepend",function(){var e=p.scrollHeight,n=p.scrollTop,i=parseInt($(p).css("paddingRight")),r=p.clientHeight;$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(f).css({bottom:-(e-n-r),paddingRight:i});var o=function(){$(p).removeClass("im_history_to_bottom"),$(f).css({bottom:"",paddingRight:""}),x>=0?s():p.scrollTop=n+p.scrollHeight-e,c(),w=!1,t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")}),clearTimeout(l),d()},l=setTimeout(o,0),d=a.$on("$viewContentLoaded",o)}),a.$on("ui_history_append",function(){var e=p.scrollHeight;onContentLoaded(function(){I=!1,c(),k=!1,x>=0&&s(),t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")})})}),a.$on("ui_panel_update",function(e,n){l(),onContentLoaded(function(){l(),n&&n.blur?a.$broadcast("ui_message_blur"):getSelectedText()||a.$broadcast("ui_message_send"),t(function(){$(p).trigger("scroll")})})}),a.$on("ui_selection_clear",function(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}),a.$on("ui_editor_resize",l),a.$on("ui_height",function(){onContentLoaded(l)});var I=!0,x=-1;$(p).on("scroll",function(e){if(r.is(":visible")&&!$(p).hasClass("im_history_to_bottom")&&!E){var t=p.scrollTop;I=t>=p.scrollHeight-p.clientHeight,x>=0&&x!=t&&(x=-1),!w&&t<=300?(w=!0,a.$emit("history_need_more")):!k&&t>=p.scrollHeight-p.clientHeight-300&&(k=!0,a.$emit("history_need_less"))}}),$(e).on("resize",l),l(),onContentLoaded(l)}return{link:a}}]).directive("mySendForm",["_","$q","$timeout","$interval","$window","$compile","$modalStack","$http","$interpolate","Storage","AppStickersManager","AppDocsManager","ErrorService","AppInlineBotsManager","FileManager","shouldFocusOnInteraction",function(e,t,n,i,a,r,o,s,l,c,d,u,p,f,m,h){function g(s,l,g){function _(){return ne?void(q&&(q.stop(),q.removeEventListener("streamReady",Z),q.removeEventListener("start",J),q.audioContext&&(q.scriptProcessorNode&&q.scriptProcessorNode.disconnect(),q.clearStream(),q.audioContext.close(),q.audioContext=null))):void(ie=!0)}function v(){_(),s.voiceRecorder.recording&&(i.cancel(W),s.$apply(function(){s.voiceRecorder.recording=!1,s.voiceRecorder.duration=0}))}function y(){c.get("send_ctrlenter").then(function(e){ae=!e})}function b(e){return n(function(){M(),s.draftMessage.send(),Y.resetTyping(),K&&K.update(),Y.hideSuggestions()},h?0:100),cancelEvent(e)}function w(e){s.$apply(function(){s.draftMessage.inlineResultID=e})}function k(e){return 38==e.keyCode?(s.$emit("last_message_edit"),cancelEvent(e)):(s.$emit("history_direction_key",e),!0)}function M(){X&&(Y.onChange(),S())}function S(){var e=X.offsetHeight;re!=e&&(re=e,s.$emit("ui_editor_resize"))}function A(e){if(!(9!=e.keyCode||e.shiftKey||e.ctrlKey||e.metaKey||o.getTop()))return Y.focus(),cancelEvent(e)}function C(){onContentLoaded(function(){Y.focus()})}function T(e){var n=e.type||"",i=t.when(!1);["image/jpeg","image/gif","image/png","image/bmp"].indexOf(n)>=0&&(i=m.getFileCorrectUrl(e,n)),i.then(function(t){t=t||!1,p.confirm({type:"FILE_CLIPBOARD_PASTE",fileUrl:t}).then(function(){s.draftMessage.files=[e],s.draftMessage.isMedia=!0})})}function E(e){var t,n,i=(e.originalEvent||e).clipboardData,a=i&&i.items||[],r=[];for(t=0;t<a.length;t++)"file"==a[t].kind&&(n=a[t].getAsFile(),r.push(n));if(r.length>0){if(1==r.length)return T(r[0]);p.confirm({type:"FILES_CLIPBOARD_PASTE",files:r}).then(function(){s.draftMessage.files=r,s.draftMessage.isMedia=!0})}}function I(e){var t=!1;return x&&1!=x||(x=checkDragEvent(e)?2:1,t=!0),2==x&&(P&&setTimeout(function(){clearTimeout(P),P=!1},0),"dragenter"==e.type||"dragover"==e.type?t&&($(F).css({height:D.offsetHeight,width:D.offsetWidth}),l.addClass("im_send_form_dragging")):("drop"==e.type&&s.$apply(function(){s.draftMessage.files=Array.prototype.slice.call(e.originalEvent.dataTransfer.files),s.draftMessage.isMedia=!0}),P=setTimeout(function(){l.removeClass("im_send_form_dragging"),x=!1,P=!1},300))),cancelEvent(e)}var x,P,D=$(".im_send_field_wrap",l)[0],R=$("textarea",l)[0],O=$(".composer_emoji_insert_btn",l)[0],N=$(".composer_emoji_panel",l)[0],L=$("input",l),F=$(".im_send_dropbox_wrap",l)[0],U=$(".im_submit",l)[0],B=$(".im_voice_recorder_wrap",l)[0],H=$(".im_record",l)[0],j=r('<a class="composer_sticker_btn" data-sticker="{{::document.id}}" my-load-sticker document="document" thumb="true" img-class="composer_sticker_image"></a>'),V={},q=null,z=Recorder.isRecordingSupported(),W=null;z&&l.addClass("im_record_supported"),s.voiceRecorder={duration:0,recording:!1,processing:!1};var G=new EmojiTooltip(O,{getStickers:function(e){d.getStickers().then(e)},getStickerImage:function(e,t){var n=e.attr("data-category"),i=V[t];if(i&&!isInDOM(i[0]))return i.attr("data-category",n),void e.replaceWith(i);var a=s.$new(!0);a.document=u.getDoc(t),j(a,function(i){V[t]=i,i.attr("data-category",n),e.replaceWith(i)})},onStickersetSelected:function(e){d.openStickersetLink(e)},onEmojiSelected:function(e){s.$apply(function(){Y.onEmojiSelected(e)})},onStickerSelected:function(e){s.$apply(function(){s.draftMessage.sticker=e})},langpack:{im_emoji_tab:e("im_emoji_tab"),im_stickers_tab:e("im_stickers_tab")}});s.$on("stickers_changed",function(){G.onStickersChanged()});var K;N&&(K=new EmojiPanel(N,{onEmojiSelected:function(e){Y.onEmojiSelected(e)}}));var Y=new MessageComposer(R,{onTyping:function(){s.$emit("ui_typing")},getSendOnEnter:function(){return ae},dropdownDirective:function(e,t){var n=s.$new(!0);r("<div><div my-composer-dropdown></div></div>")(n,function(n,i){e.replaceWith(n),t(i,n)})},mentions:s.mentions,commands:s.commands,onMessageSubmit:b,onDirectionKey:k,onInlineResultSend:w,onFilePaste:T,onCommandSend:function(e){s.$apply(function(){s.draftMessage.command=e})}}),X=Y.richTextareaEl&&Y.richTextareaEl[0];X&&$(X).on("keydown keyup",S),s.$on("inline_results",function(e,t){var n=Config.Mobile?$(window).width():(D.offsetWidth||382)-2,i=80;t&&f.regroupWrappedResults(t.results,n,i),setZeroTimeout(function(){Y.setInlineSuggestions(t)})}),s.$on("inline_placeholder",function(e,t){Y.setInlinePlaceholder(t.prefix,t.placeholder)}),L.on("change",function(){var e=this;s.$apply(function(){s.draftMessage.files=Array.prototype.slice.call(e.files),s.draftMessage.isMedia=$(e).hasClass("im_media_attach_input")||Config.Mobile,setTimeout(function(){try{e.value=""}catch(t){}},1e3)})}),$(H).on("contextmenu",cancelEvent);var J,Z,Q,ee=!!Config.Navigator.touch,te={start:ee?"touchstart":"mousedown",move:ee?"touchmove":"mousemove",stop:ee?"touchend blur":"mouseup blur"},ne=!1,ie=!1;$(H).on(te.start,function(e){if(!s.voiceRecorder.processing){q=new Recorder({monitorGain:0,numberOfChannels:1,bitRate:64e3,encoderSampleRate:48e3,encoderPath:"vendor/recorderjs/encoder_worker.js"}),ne=!1,ie=!1,J=function(e){var t=tsNow(!0);W=i(function(){s.voiceRecorder.duration=tsNow(!0)-t},1e3),s.$apply(function(){s.voiceRecorder.recording=!0})},q.addEventListener("start",J),Z=function(e){return ne=!0,ie?void _():void q.start()},q.addEventListener("streamReady",Z),q.initStream();var t=!1,n={},r=function(){var e=$(".im_bottom_panel_wrap"),t=e.offset();n={top:t.top,left:t.left,width:e.outerWidth(),height:e.outerHeight()}},o=function(e,i){var a=e.originalEvent||e,r=ee?a.changedTouches&&a.changedTouches[0]:a,o=r&&r.pageX>=n.left&&r.pageX<=n.left+n.width&&r.pageY>=n.top&&r.pageY<=n.top+n.height;return t!=o&&(l.toggleClass("im_send_form_hover",o),t=o),i&&o};r(),o(e),Q=function(e){$(a).off(te.move,o),$(a).off(te.stop,Q);var t="blur"!=e&&o(e,!0);s.voiceRecorder.duration>0&&t&&(s.voiceRecorder.processing=!0,q.addEventListener("dataAvailable",function(e){var t=blobConstruct([e.detail],"audio/ogg");console.warn(dT(),"got audio",t),s.$apply(function(){void 0!==t.size&&t.size>1024&&(s.draftMessage.files=[t],s.draftMessage.isMedia=!0),s.voiceRecorder.processing=!1})})),v()},Config.Mobile||$(B).css({height:D.offsetHeight,width:D.offsetWidth}),$(a).on(te.move,o),$(a).one(te.stop,Q)}});var ae=!0;s.$on("settings_changed",y),y(),$(U).on("mousedown touchstart",b);var re=X&&X.offsetHeight;$(document).on("keydown",A),$("body").on("dragenter dragleave dragover drop",I),$(document).on("paste",E),h&&(s.$on("ui_peer_change",C),s.$on("ui_history_focus",C),s.$on("ui_history_change",C)),s.$on("ui_peer_change",Y.resetTyping.bind(Y)),s.$on("ui_peer_draft",function(t,n){n=n||{};var i=s.draftMessage.isBroadcast;Y.setPlaceholder(e(i?"im_broadcast_field_placeholder_raw":"im_message_field_placeholder_raw")),n.customSelection?(Y.setFocusedValue(n.customSelection),S()):(X&&(Y.setValue(s.draftMessage.text||""),S()),(h||n&&n.focus)&&Y.focus()),onContentLoaded(function(){Y.checkAutocomplete(!0)}),G&&Config.Mobile&&G.hide()}),s.$on("ui_peer_reply",function(){onContentLoaded(function(){s.$emit("ui_editor_resize"),h&&Y.focus()})}),s.$on("mentions_update",function(){Y.onMentionsUpdated()}),s.$on("ui_message_before_send",function(){M()}),s.$on("ui_message_send",function(){h&&C()}),s.$on("ui_message_blur",function(){Y.blur()}),s.$on("$destroy",function(){$(document).off("paste",E),$(document).off("keydown",A),$("body").off("dragenter dragleave dragover drop",I),$(U).off("mousedown touchstart"),L.off("change")}),h&&C()}return{link:g,templateUrl:templateUrl("send_form"),scope:{draftMessage:"=",replyKeyboard:"=",mentions:"=",commands:"="}}}]).directive("myLoadThumb",["MtpApiFileManager","FileManager",function(e,t){function n(n,i,a){var r=0,o=e.getCachedFile(n.thumb&&n.thumb.location&&!n.thumb.location.empty&&n.thumb.location);o&&i.attr("src",t.getUrl(o,"image/jpeg")),n.thumb&&n.thumb.width&&n.thumb.height&&(i.attr("width",n.thumb.width),i.attr("height",n.thumb.height));var s=n.$watchCollection("thumb.location",function(a){n.thumb&&n.thumb.width&&n.thumb.height&&(i.attr("width",n.thumb.width),i.attr("height",n.thumb.height),n.$emit("ui_height"));var o=++r;if(!a||a.empty)return i.attr("src",n.thumb&&n.thumb.placeholder||"img/blank.gif"),void l();var s=e.getCachedFile(a);return s?(i.attr("src",t.getUrl(s,"image/jpeg")),void l()):(i.attr("src")||i.attr("src",n.thumb.placeholder||"img/blank.gif"),void e.downloadSmallFile(n.thumb.location).then(function(e){o==r&&(i.attr("src",t.getUrl(e,"image/jpeg")),l())},function(e){console.log("Download image failed",e,n.thumb.location,i[0]),o==r&&(i.attr("src",n.thumb.placeholder||"img/blank.gif"),l())}))}),l=a.watch?angular.noop:function(){setTimeout(function(){n.$destroy(),s()},0)}}return{link:n,scope:{thumb:"="}}}]).directive("myLoadFullPhoto",["MtpApiFileManager","FileManager","_",function(e,t,n){function i(i,a,r){var o=$("img",a)[0],s=$(".img_fullsize_with_progress_wrap",a).add(".img_fullsize_progress_wrap",a).add($(o)),l=function(){s.css({width:i.fullPhoto.width,height:i.fullPhoto.height}),i.$emit("ui_height",!0)},c=0;i.$watchCollection("fullPhoto.location",function(){var a=e.getCachedFile(i.thumbLocation),r=++c;if(a?(o.src=t.getUrl(a,"image/jpeg"),l()):o.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",i.fullPhoto.location){var s;if(i.fullPhoto.size){var d={_:"inputFileLocation",volume_id:i.fullPhoto.location.volume_id,local_id:i.fullPhoto.location.local_id,secret:i.fullPhoto.location.secret};s=e.downloadFile(i.fullPhoto.location.dc_id,d,i.fullPhoto.size)}else s=e.downloadSmallFile(i.fullPhoto.location);i.progress={enabled:!0,percent:0},s.then(function(e){r==c&&(i.progress.enabled=!1,o.src=t.getUrl(e,"image/jpeg"),l())},function(e){console.log("Download image failed",e,i.fullPhoto.location),i.progress.enabled=!1,e&&"FS_BROWSER_UNSUPPORTED"==e.type?i.error={html:n("error_browser_no_local_file_system_image_md",{"moz-link":'<a href="{0}" target="_blank">{1}</a>',"chrome-link":'<a href="{0}" target="_blank">{1}</a>',"telegram-link":'<a href="{0}" target="_blank">{1}</a>'})}:i.error={text:n("error_image_download_failed"),error:e}},function(e){i.progress.percent=Math.max(1,Math.floor(100*e.done/e.total))})}}),l()}return{link:i,transclude:!0,templateUrl:templateUrl("full_photo"),scope:{fullPhoto:"=",thumbLocation:"="}}}]).directive("myLoadVideo",["$sce","AppDocsManager","ErrorService","_",function(e,t,n,i){function a(e,a,r){var o=t.downloadDoc(e.video.id);o.then(function(){e.$emit("ui_height"),onContentLoaded(function(){var e=$("video",a)[0];if(e){var t=!1,i=function(e){t||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(t=!0,n.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};e.addEventListener("error",i,!0),$(e).on("$destroy",function(){t=!0,e.removeEventListener("error",i)})}})},function(t){console.log("Download video failed",t,e.video),t&&"FS_BROWSER_UNSUPPORTED"==t.type?e.error={html:i("error_browser_no_local_file_system_video_md",{"moz-link":'<a href="{0}" target="_blank">{1}</a>',"chrome-link":'<a href="{0}" target="_blank">{1}</a>',"telegram-link":'<a href="{0}" target="_blank">{1}</a>'})}:e.error={text:i("error_video_download_failed"),error:t}}),e.$emit("ui_height"),e.$on("$destroy",function(){o.cancel()})}return{link:a,transclude:!0,templateUrl:templateUrl("full_video"),scope:{video:"="}}}]).directive("myLoadGif",["AppDocsManager","$timeout",function(e,t){function n(e,t){return r!==e&&(r&&(r.pause(),r.currentTime=0,o.isActive=!1),r=e,void(o=t))}function i(e,t){var i=$("video",t)[0];if(i){if(e.isActive){n(i,e);var a=i.play();a&&a.then&&a.then(function(){e.needClick=!1},function(){e.needClick=!0})}else i.pause(),i.currentTime=0;return i}return!1}function a(n,a,r){var o=$(".img_gif_image_wrap",a);o.css({width:n.document.thumb.width,height:n.document.thumb.height});var s=!1,l=!1;n.isActive=!1,n.toggle=function(r){if(r&&checkClick(r,!0))return e.saveDocFile(n.document.id),!1;if(n.document.url){if(n.needClick&&i(n,a))return;return n.isActive=!n.isActive,void onContentLoaded(function(){n.$emit("ui_height"),i(n,a)})}return s?(s.cancel(),void(s=!1)):(l=!1,s=e.downloadDoc(n.document.id),void s.then(function(){t(function(){l||(n.isActive=!0);var e=i(n,a);e&&$(e).on("ended",function(){n.isActive&&n.toggle()})},200)}))},n.$on("ui_history_change",function(){n.isActive&&n.toggle(),l=!0}),n.$on("$destroy",function(){s&&(s.cancel(),s=!1)})}var r=!1,o=!1;return{link:a,templateUrl:templateUrl("full_gif"),scope:{document:"="}}}]).directive("myLoadRound",["AppMessagesManager","AppDocsManager","$timeout",function(e,t,n){function i(e,t){return s!==e&&(s&&(s.pause(),s.currentTime=0,l.isActive=!1),s=e,void(l=t))}function a(t){t.message&&!t.message.pFlags.out&&t.message.pFlags.media_unread&&e.readMessages([t.message.mid])}function r(e,t){var n=$("video",t)[0];if(n){if(e.isActive){i(n,e);var r=n.play();r&&r.then?r.then(function(){e.needClick=!1,a(e)},function(){e.needClick=!0}):a(e)}else n.pause(),n.currentTime=0;return n}return!1}function o(i,a,o){var s=$(".img_round_image_wrap",a);s.css({width:i.document.thumb.width,height:i.document.thumb.height});var l=!1,c=!1;i.isActive=!1,i.$parent.messageId&&(i.message=e.wrapForHistory(i.$parent.messageId)),i.toggle=function(e){if(e&&checkClick(e,!0))return t.saveDocFile(i.document.id),!1;if(i.document.url){if(i.needClick&&r(i,a))return;return i.isActive=!i.isActive,void onContentLoaded(function(){i.$emit("ui_height"),r(i,a)})}return l?(l.cancel(),void(l=!1)):(c=!1,l=t.downloadDoc(i.document.id),void l.then(function(){n(function(){c||(i.isActive=!0);var e=r(i,a);e&&$(e).on("ended",function(){i.isActive&&i.toggle()})},200)}))},i.$on("ui_history_change",function(){i.isActive&&i.toggle(),c=!0}),i.$on("$destroy",function(){l&&(l.cancel(),l=!1)})}var s=!1,l=!1;return{link:o,templateUrl:templateUrl("full_round"),scope:{document:"="}}}]).directive("myLoadSticker",["_","MtpApiFileManager","FileManager","AppStickersManager",function(e,t,n,i){function a(a,o,s){var l=$("<img />").addClass(s.imgClass),c=!1;l.attr("alt","["+(a.document.stickerEmojiRaw||"")+" "+e("conversation_media_sticker")+"]");var d=s.dim&&a.$parent.$eval(s.dim)||a.document.thumb;s.open&&a.document.stickerSetInput&&o.addClass("clickable").on("click",function(){i.openStickerset(a.document.stickerSetInput)});var u=function(e){l.attr("src",n.getUrl(e)),c||(c=!0,l.appendTo(o))};l.css({width:d.width,height:d.height}),o.css({width:d.width,height:d.height});var p=!1;a.document.thumb.location&&(p=angular.copy(a.document.thumb.location),p.sticker=!0);var f={_:"inputDocumentFileLocation",id:a.document.id,access_hash:a.document.access_hash,dc_id:a.document.dc_id,file_name:a.document.file_name,version:a.document.version,sticker:!0},m=t.getCachedFile(f),h=!1;if(m?h=!0:m=t.getCachedFile(p),m){if(u(m),h)return}else c=!0,l.attr("src",r).appendTo(o);s.thumb&&p?t.downloadSmallFile(p).then(function(e){
u(e)},function(e){console.log("Download sticker failed",e,f)}):t.downloadFile(a.document.dc_id,f,a.document.size).then(function(e){u(e)},function(e){console.log("Download sticker failed",e,f)})}var r="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";return{link:a,scope:{document:"="}}}]).directive("myLoadDocument",["MtpApiFileManager","AppDocsManager","FileManager",function(e,t,n){function i(e,t){for(;e&&!$(e).hasClass("modal-dialog");)e=e.parentNode;e&&$(e).width(t+(Config.Mobile?0:32))}function a(a,r,o){var s=$(".document_fullsize_with_progress_wrap",r),l=$(".document_fullsize_wrap",r),c=$(".document_fullsize_img",r),d=$(window).width()-(Config.Mobile?20:32),u=$(window).height()-150;d>800&&(d-=208),a.imageWidth=d,a.imageHeight=u;var p=a.document.thumb;if(p&&"photoSizeEmpty"!=p._){var f=calcImageInBox(p.width,p.height,d,u);a.imageWidth=f.w,a.imageHeight=f.h;var m=e.getCachedFile(p.location);m&&(a.thumbSrc=n.getUrl(m,"image/jpeg"))}a.frameWidth=Math.max(a.imageWidth,Math.min(600,d)),a.frameHeight=a.imageHeight,onContentLoaded(function(){a.$emit("ui_height")}),i(r[0],a.frameWidth);var h,g,_;t.downloadDoc(a.document.id).then(function(e){var t=n.getUrl(e,a.document.mime_type),i=new Image,r=100,o=function(e){if(i.height&&i.width||!--r){g=i.width,_=i.height,clearInterval(h);var n=calcImageInBox(i.width,i.height,d,u,!0),o={w:g,h:_};n.w>=o.w&&n.h>=o.h&&(o.w*=4,o.h*=4);var p=!0;a.toggleZoom=function(){p=!p;var e=(p?o:n).w,t=(p?o:n).h;c.css({width:e,height:t,marginTop:a.frameHeight>t?Math.floor((a.frameHeight-t)/2):0}),l.toggleClass("document_fullsize_zoomed",p)},a.toggleZoom(!1),c.attr("src",t),s.hide(),l.css({width:a.frameWidth,height:a.frameHeight}).show()}};h=setInterval(o,20),i.onload=o,i.src=t,setZeroTimeout(o)})}return{link:a,templateUrl:templateUrl("full_document"),scope:{document:"=myLoadDocument"}}}]).directive("myGeoPointMap",["ExternalResourcesManager",function(e){function t(t,n,i){var a,r=n.attr("width")||200,o=n.attr("height")||200,s=r>200?15:13,l=!1;if(l){var c=Config.ExtCredentials.gmaps.api_key,d=!0;a="https://maps.googleapis.com/maps/api/staticmap?sensor=false&center="+t.point.lat+","+t.point["long"]+"&zoom="+s+"&size="+r+"x"+o+"&scale=2&markers=color:red|size:big|"+t.point.lat+","+t.point["long"],d&&(a+="&key="+c)}else a="https://static-maps.yandex.ru/1.x/?l=map&ll="+t.point["long"]+","+t.point.lat+"&z="+s+"&size="+r+","+o+"&scale=1&pt="+t.point["long"]+","+t.point.lat+",pm2rdm&lang=en_US";n.attr("src","img/blank.gif"),e.downloadByURL(a).then(function(e){n.attr("src",e.valueOf())})}return{link:t,scope:{point:"=myGeoPointMap"}}}]).directive("myLoadingDots",["$interval",function(e){function t(e,t,i){t.html(n(t[0])?'<div class="loading_dots"><i></i><i></i><i></i></div>':"...")}function n(e){if(void 0===i&&(i=void 0!==e.style.animationName,i===!1)){var t,n="Webkit Moz O ms Khtml".split(" ");for(t=0;t<n.length;t++)if(void 0!==e.style[n[t]+"AnimationName"]){i=!0;break}}return i}return{link:t};var i}]).directive("myFocused",["shouldFocusOnInteraction",function(e){return{link:function(t,n,i){return!!e&&void setTimeout(function(){setFieldSelection(n[0])},100)}}}]).directive("myFocusOn",["shouldFocusOnInteraction",function(e){return{link:function(t,n,i){t.$on(i.myFocusOn,function(){return!!e&&void onContentLoaded(function(){setFieldSelection(n[0])})})}}}]).directive("myFileUpload",function(){function e(e,t,n){t.on("change",function(){var t=this;e.$apply(function(){e.photo.file=t.files[0],setTimeout(function(){try{t.value=""}catch(e){}},1e3)})})}return{link:e}}).directive("myModalWidth",function(){function e(e,t,n){n.$observe("myModalWidth",function(e){$(t[0].parentNode.parentNode).css({width:parseInt(e)+(Config.Mobile?0:32)})})}return{link:e}}).directive("myModalNav",function(){function e(e,t,n){var i=function(t){var i=t.target;if(!i||"INPUT"!=i.tagName&&"TEXTAREA"!=i.tagName)switch(t.keyCode){case 39:case 32:case 34:case 40:e.$eval(n.next);break;case 37:case 33:case 38:e.$eval(n.prev)}};$(document).on("keydown",i),e.$on("$destroy",function(){$(document).off("keydown",i)})}return{link:e}}).directive("myCustomBackground",function(){function e(e,t,n){$("html").css({background:n.myCustomBackground}),e.$on("$destroy",function(){$("html").css({background:""})})}return{link:e}}).directive("myInfiniteScroller",function(){function e(e,t,n){var i=$(".nano-content",t)[0],a=!1;$(i).on("scroll",function(n){t.is(":visible")&&!a&&i.scrollTop>=i.scrollHeight-i.clientHeight-300&&(a=!0,e.$apply(function(){e.slice.limit+=e.slice.limitDelta||20}),onContentLoaded(function(){a=!1,$(t).nanoScroller()}))})}return{link:e,scope:!0}}).directive("myModalPosition",["$window","$timeout",function(e,t){function n(n,i,a){var r=function(){if(!Config.Mobile||!$(i[0].parentNode.parentNode.parentNode).hasClass("mobile_modal")){var e=i[0].parentNode.offsetHeight,n=i[0].parentNode.parentNode.parentNode,r=$(".media_modal_bottom_panel_wrap",n)[0],o=n.offsetHeight-(r&&r.offsetHeight||0);e<o?$(i[0].parentNode).css("marginTop",(o-e)/2):$(i[0].parentNode).css("marginTop",""),"no"!=a.animation&&t(function(){$(i[0].parentNode).addClass("modal-content-animated")},300)}};onContentLoaded(r),$(e).on("resize",r),n.$on("ui_height",function(e,t){t?r():onContentLoaded(r)})}return{link:n}}]).directive("myVerticalPosition",["$window","$timeout",function(e,t){function n(t,n,i){var a="true"===i.padding,r=0,o=function(){var o=n[0].offsetHeight,s=o-(o&&a?2*r:0),l=i.myVerticalPosition&&parseFloat(i.myVerticalPosition)||.5,c=i.contHeight?t.$eval(i.contHeight):$(e).height(),d=s<c?parseInt((c-s)*l):"",u=a?{paddingTop:d,paddingBottom:d}:{marginTop:d,marginBottom:d};n.css(u),n.addClass("vertical-aligned"),r!==d&&t.$emit("ui_height"),r=d};$(e).on("resize",o),onContentLoaded(o),t.$on("ui_height",function(){onContentLoaded(o)})}return{link:n}}]).directive("myUserStatus",["_","$filter","$rootScope","AppUsersManager",function(e,t,n,i){function a(){angular.forEach(l,function(e){e()})}function r(e,t,n){var a,r=s++,c=n.forDialog&&e.$eval(n.forDialog),d=function(){var e=i.getUser(a);c&&e.pFlags.self?t.html(""):t.html(o(e,n.botChatPrivacy)).toggleClass("status_online",e.status&&"userStatusOnline"==e.status._||!1)};e.$watch(n.myUserStatus,function(e){a=e,d()}),e.$on("user_update",function(e,t){a==t&&d()}),l[r]=d,e.$on("$destroy",function(){delete l[r]})}var o=t("userStatus"),s=0,l={};return setInterval(a,9e4),n.$on("stateSynchronized",function(){setTimeout(function(){a()},100)}),{link:r}}]).directive("myChatStatus",["$rootScope","_","MtpApiManager","AppChatsManager","AppUsersManager","AppProfileManager",function(e,t,n,i,a,r){function o(){angular.forEach(c,function(e){e()})}function s(n,o,s){var m,h=l++,g=0,_=0,v={},y=function(){var e=++g;_=0,v={};var t=i.getChat(m);t.participants_count&&(_=t.participants_count),b(),!m||i.isChannel(m)&&_||r.getChatFull(m).then(function(t){if(e==g){var n=(t.participants||{}).participants||[];if(_=n.length,angular.forEach(n,function(e){v[e.user_id]=!0}),t.participants_count&&(_=t.participants_count||0),!_){var a=i.getChat(m);a.participants_count&&(_=a.participants_count)}b()}})},b=function(){var e=i.isBroadcast(m)?p(_):d(_),n=0;if(!i.isChannel(m)){var r=!1;angular.forEach(v,function(e,t){var i=a.getUser(t);i.status&&"userStatusOnline"==i.status._&&(i.id==f&&(r=!0),n++)}),(n>1||1==n&&!r)&&(e=t("group_modal_participants",{total:e,online:u(n)}))}n||_||(e=""),o.html(e)};n.$watch(s.myChatStatus,function(e){m=e,y()}),e.$on("chat_full_update",function(e,t){m==t&&y()}),e.$on("user_update",function(e,t){v[t]&&b()}),c[h]=b,n.$on("$destroy",function(){delete c[h]})}var l=0,c={},d=t.pluralize("group_modal_pluralize_participants"),u=t.pluralize("group_modal_pluralize_online_participants"),p=t.pluralize("group_modal_pluralize_subscribers"),f=0;return n.getUserID().then(function(e){f=e}),setInterval(o,9e4),{link:s}}]).directive("myPeerMuted",["$rootScope","NotificationsManager",function(e,t){function n(t,n,a){var r=t.$eval(a.myPeerMuted),o=a.mutedClass||"muted",s=e.$on("notify_settings",function(e,t){t.peerID==r&&i(r,n,o)});i(r,n,o),t.$on("$destroy",s)}function i(e,n,i){t.getPeerMuted(e).then(function(e){n.toggleClass(i,e)})}return{link:n}}]).directive("myPeerLink",["_","$rootScope","AppPeersManager","AppChatsManager","AppUsersManager","AppMessagesIDsManager",function(e,t,n,i,a,r){function o(o,s,l){var c,d=l.userOverride&&o.$eval(l.userOverride)||{},u=l["short"]&&o.$eval(l["short"]),p=l.username&&o.$eval(l.username),f=l.forDialog&&o.$eval(l.forDialog),m=function(){if(s[0].className.indexOf("user_color_")!=-1&&(s[0].className=s[0].className.replace(/user_color_\d+/g,"")),c>0){var t=a.getUser(c);if(f&&t.pFlags.self)s.text(e("user_name_saved_msgs_raw"));else{var n=p?"@":"",r=p?"username":u?"rFirstName":"rFullName";s.html(n+(d[r]||t[r]||"").valueOf()+(l.verified&&t.pFlags&&t.pFlags.verified?' <i class="icon-verified"></i>':"")),l.color&&o.$eval(l.color)&&s.addClass("user_color_"+t.num)}}else{var m=i.getChat(-c);s.html((m.rTitle||"").valueOf()+(l.verified&&m.pFlags&&m.pFlags.verified?' <i class="icon-verified"></i>':""))}};"A"!=s[0].tagName||hasOnclick(s[0])||s.on("click",function(){if(c>0)a.openUser(c,d);else{var e=-c,s=l.postId&&o.$eval(l.postId),u=l.savedFrom&&o.$eval(l.savedFrom);if(s)t.$broadcast("history_focus",{peerString:i.getChatString(e),messageID:r.getFullMessageID(parseInt(s),e)});else if(u){var p=u.split("_");t.$broadcast("history_focus",{peerString:n.getPeerString(p[0]),messageID:p[1]})}else i.openChat(e)}}),l.peerWatch?o.$watch(l.myPeerLink,function(e){c=e,m()}):(c=o.$eval(l.myPeerLink),m()),l.noWatch||(o.$on("user_update",function(e,t){c==t&&m()}),o.$on("chat_update",function(e,t){c==-t&&m()}))}return{link:o}}]).directive("myPeerPhotolink",["AppPeersManager","AppUsersManager","AppChatsManager","MtpApiFileManager","FileManager",function(e,t,n,i,a){function r(r,o,s){o.addClass("peer_photo_init");var l,c,d,u=$('<img class="'+(s.imgClass||"")+'">'),p=$('<span class="peer_initials nocopy '+(s.imgClass||"")+'"></span>'),f=0,m=!1,h=s.forDialog&&r.$eval(s.forDialog),g=function(t){if(l==t)return!1;l=t,c=e.getPeer(l);var n="user_bgcolor_"+(c.num||1);return n!=m&&(m&&p.removeClass(m),p.addClass(n),m=n),_(),!0},_=function(){var e=++f;if(d=c.photo&&angular.copy(c.photo.photo_small),h&&c.pFlags&&c.pFlags.self)return p.remove(),void u.prependTo(o).attr("src","img/placeholders/Fave.png");var t=void 0!==d;if(t){var n=i.getCachedFile(c.photo.photo_small);if(n)return p.remove(),void u.prependTo(o).attr("src",a.getUrl(n,"image/jpeg"))}p.attr("data-content",c.initials||"").prependTo(o),u.remove(),t&&i.downloadSmallFile(c.photo.photo_small).then(function(t){e==f&&(p.remove(),u.prependTo(o).attr("src",a.getUrl(t,"image/jpeg")))},function(e){console.log("Download image failed",e,c.photo.photo_small,o[0])})};"A"!=o[0].tagName||s.noOpen||o.on("click",function(e){l>0?t.openUser(l,s.userOverride&&r.$eval(s.userOverride)):n.openChat(-l)}),r.$watch(s.myPeerPhotolink,g),g(r.$eval(s.myPeerPhotolink)),s.watch&&(r.$on("user_update",function(t,n){l==n&&(c=e.getPeer(l),angular.equals(c.photo&&c.photo.photo_small,d)&&d||_())}),r.$on("chat_update",function(e,t){l==-t&&(angular.equals(c.photo&&c.photo.photo_small,d)||_())}))}return{link:r}}]).directive("myOgvPlayer",["$compile",function(e){return{link:function(t,n,i){var a,r=t.audio;a="audio/ogg"==r.mime_type&&OGVCompat.hasWebAudio()&&OGVCompat.supported("OGVPlayer")?new OGVPlayer({debug:!1,worker:!1}):document.createElement("audio"),$(a).attr("media-player",i.myOgvPlayer),$(a).attr("src","{{::"+i.src+"}}"),e(a)(t),$(n).append(a)}}}]).directive("myAudioPlayer",["$timeout","$q","Storage","AppDocsManager","AppMessagesManager","ErrorService",function(e,t,n,i,a,r){function o(e){return e!==l&&(l&&!function(e){setZeroTimeout(function(){e.mediaPlayer.player.pause()})}(l),void(l=e))}function s(e,t,s){i.updateDocDownloaded(e.audio.id),e.volume=c,e.mediaPlayer={},e.$parent.messageId&&(e.message=a.wrapForHistory(e.$parent.messageId)),e.download=function(){i.saveDocFile(e.audio.id)},e.duration=function(){return e.mediaPlayer.player&&e.mediaPlayer.player.duration>0&&e.mediaPlayer.player.duration<1/0?e.mediaPlayer.player.duration:e.audio&&e.audio.duration||0},e.togglePlay=function(){e.audio.url?(o(e),setZeroTimeout(function(){e.mediaPlayer.player.playPause()})):e.audio.progress&&e.audio.progress.enabled||i.downloadDoc(e.audio.id).then(function(){onContentLoaded(function(){var n=$("audio, ogvjs",t)[0]||t[0];if(n){var i=!1,s=function(e){i||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(i=!0,r.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};n.addEventListener("error",s,!0),e.$on("$destroy",function(){i=!0,n.removeEventListener("error",s)})}setTimeout(function(){o(e),e.mediaPlayer.player.setVolume(c),e.mediaPlayer.player.play(),e.message&&!e.message.pFlags.out&&e.message.pFlags.media_unread&&a.readMessages([e.message.mid])},300)})})},e.seek=function(t){e.mediaPlayer&&e.mediaPlayer.player?e.mediaPlayer.player.seek(t):e.togglePlay()},e.setVolume=function(t){c=t,n.set({audio_volume:t}),e.mediaPlayer&&e.mediaPlayer.player&&e.mediaPlayer.player.setVolume(t)}}var l=!1,c=.5;n.get("audio_volume").then(function(e){e>0&&e<=1&&(c=e)});return{link:s,scope:{audio:"="},templateUrl:templateUrl("audio_player")}}]).directive("mySlider",["$window",function(e){function t(t,n,i){var a=$(".tg_slider_wrap",n),r=$(".tg_slider_track_fill",n),o=$(".tg_slider_thumb",n),s=a.width(),l=Math.ceil(o.width()),c=i.sliderModel,d=i.sliderOnchange,u=0,p=1,f=!1,m=!1;i.sliderMin&&t.$watch(i.sliderMin,function(e){u=e||0}),i.sliderMax&&t.$watch(i.sliderMax,function(e){p=e||1});var h=function(e){e=e.originalEvent||e;var n=(e.touches&&e.touches[0]?e.touches[0].pageX:e.pageX)-m;return n=Math.min(s,Math.max(0,n)),f=u+n/s*(p-u),d?t.$eval(d,{value:f}):t.$eval(c+"="+f),o.css("left",Math.max(0,n-l)),r.css("width",n),cancelEvent(e)},g=function(){$(e).off("mousemove touchmove",h),$(e).off("mouseup touchend touchcancel touchleave",g)};t.$watch(c,function(e){if(e!=f&&void 0!==e){var t=Math.max(0,(e-u)/(p-u));if(s){var n=Math.ceil(s*t);n=Math.min(s,Math.max(0,n)),o.css("left",Math.max(0,n-l)),r.css("width",n)}else o.css("left",100*t+"%"),r.css("width",100*t+"%");f=!1}}),n.on("dragstart selectstart",cancelEvent),n.on("mousedown touchstart",function(i){if(!s&&(s=a.width(),!s))return console.error("empty width"),cancelEvent(i);g(),i=i.originalEvent||i;var _;if(i.touches&&i.touches[0])m=n.position().left,_=i.touches[0].pageX-m;else if(void 0!==i.offsetX)_=i.offsetX,m=i.pageX-_;else{if(void 0===i.layerX)return cancelEvent(i);_=i.layerX,m=i.pageX-_}return f=u+_/s*(p-u),d?t.$eval(d,{value:f}):t.$eval(c+"="+f),o.css("left",Math.max(0,_-l)),r.css("width",_),$(e).on("mousemove touchmove",h),$(e).on("mouseup touchend touchcancel touchleave",g),cancelEvent(i)})}return{link:t,templateUrl:templateUrl("slider")}}]).directive("myLabeledInput",function(){function e(e,t,n){var i=$(".md-input:first",t),a=($(".md-input-label:first",t),i[0]&&"SPAN"==i[0].tagName),r=!1,o=function(){a?t.toggleClass("md-input-has-value",i.html().length>0):t.toggleClass("md-input-has-value",r||i.val().length>0)};o(),onContentLoaded(function(){o(),setZeroTimeout(function(){t.addClass("md-input-animated")})}),a||i.on("blur focus change",function(e){r="focus"==e.type,t.toggleClass("md-input-focused",r),o()}),e.$on("value_updated",function(){setZeroTimeout(function(){o()})})}return{link:e}}).directive("myCopyField",["toaster","_",function(e,t){function n(e,t,n){t.attr("readonly","true"),t[0].readonly=!0,t.on("click",function(){this.select()}),e.selectEvent&&e.$on(e.selectEvent,function(){setTimeout(function(){t[0].focus(),t[0].select()},100)})}return{scope:{selectEvent:"=myCopyField"},link:n}}]).directive("myCopyLink",["$compile","$timeout","_",function(e,t,n){function i(i,a,r){a.attr("tooltip","{{ttLabel}}"),a.removeAttr("my-copy-link"),a.removeAttr("data-my-copy-link");var o=!1,s=function(){t.cancel(o),o=!1,i.ttLabel=n("conversations_modal_share_url_copy_raw")};s(),e(a)(i);var l=new Clipboard(a[0]);l.on("success",function(e){t.cancel(o),i.$apply(function(){i.ttLabel=n("clipboard_copied_raw")}),o=t(s,2e3)}),l.on("error",function(e){t.cancel(o);var a=Config.Navigator.osX?"clipboard_press_cmd_c":"clipboard_press_ctrl_c";i.$apply(function(){i.ttLabel=n(a+"_raw")}),o=t(s,5e3)}),i.$on("$destroy",function(){l.destroy()})}return{restrict:"A",replace:!1,terminal:!0,priority:1e3,link:i}}]).directive("mySubmitOnEnter",function(){function e(e,t,n){t.on("keydown",function(e){if(13==e.keyCode)return t.trigger("submit"),cancelEvent(e)})}return{link:e}}).directive("myArcProgress",function(){function e(e,t,n){t=Math.max(0,Math.min(t,1));var i=.2;t=i+(1-i)*t,e.css({strokeDasharray:t*n+", "+(1-t)*n})}var t='<svg class="progress-arc" viewPort="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg"> <defs> <linearGradient id="grad_intermediate%id%" x1="0%" y1="0%" x2="100%" y2="0%"> <stop offset="0%" class="stop0" /> <stop offset="60%" class="stop60" /> <stop offset="100%" class="stop100"/> </linearGradient> </defs> <circle class="progress-arc-bar"></circle></svg>',n=0;return{scope:{progress:"=myArcProgress"},link:function(i,a,r){var o=!r.myArcProgress,s=r.width||a.width()||40,l=r.stroke||s/2*.14,c=s/2,d=c-l/2,u=++n;a.html(t.replace("%id%",u)).addClass("progress-arc-wrap").addClass(o?"progress-arc-intermediate":"progress-arc-percent").css({width:s,height:s}),$(a[0].firstChild).attr("width",s).attr("height",s);var p=$(".progress-arc-bar",a);p.attr("cx",c).attr("cy",c).attr("r",d).css({strokeWidth:l});var f=2*Math.PI*d;o?(e(p,.3,f),p.css({stroke:"url(#grad_intermediate"+u+")"})):i.$watch("progress",function(t){e(p,t/100,f)})}}}).directive("myScrollToOn",function(){return{link:function(e,t,n){var i=n.myScrollToOn,a=function(){onContentLoaded(function(){$("html, body").animate({scrollTop:t.offset().top},200)})};"$init"==i?a():e.$on(i,a)}}}).directive("myComposerDropdown",function(){return{templateUrl:templateUrl("composer_dropdown")}}).directive("myEmojiSuggestions",function(){return{link:function(e,t,n){e.$watchCollection("emojiCodes",function(e){var n,i,a,r,o,s,l,c,d=[],u=Config.Mobile?26:20,p=Math.min(5,e.length);for(s=0;s<p;s++)n=e[s],n.code&&(n=n.code),(i=Config.Emoji[n])&&(a=EmojiHelper.spritesheetPositions[n],o=a[0],r=a[1],l=u*a[3],c=u*a[2],d.push('<li><a class="composer_emoji_option" data-code="'+encodeEntities(n)+'"><i class="emoji emoji-w',u," emoji-spritesheet-"+o+'" style="background-position: -'+l+"px -"+c+'px;"></i><span class="composer_emoji_shortcut">:'+encodeEntities(i[1][0])+":</span></a></li>"));t.html(d.join("")),console.log(dT(),"emoji done")})}}}).directive("myInlineResults",["AppPhotosManager","ExternalResourcesManager","AppDocsManager",function(e,t,n){return{templateUrl:templateUrl("inline_results"),scope:{botResults:"=myInlineResults"},link:function(i,a,r){i.$watch("botResults.results",function(i){angular.forEach(i,function(i){i.thumb_url&&!i.thumbUrl&&t.downloadByURL(i.thumb_url).then(function(e){i.thumbUrl=e}),"gif"==i.type&&i.content_url&&!i.contentUrl&&t.downloadByURL(i.content_url).then(function(e){i.contentUrl=e}),"gif"!=i.type&&"sticker"!=i.type||!i.document||n.downloadDoc(i.document.id);var a;if("photo"==i.type&&i.photo){a=e.choosePhotoSize(i.photo,i.thumbW,i.thumbH);var r=calcImageInBox(a.w,a.h,i.thumbW,i.thumbH);i.thumb={width:r.w,height:r.h,location:a.location,size:a.size}}"game"==i.type&&i.photo&&(a=e.choosePhotoSize(i.photo,100,100),i.thumb={location:a.location,size:a.size})})})}}}]).directive("myGameCommunication",["$window",function(e){function t(t,n,i){onContentLoaded(function(){var i=$("iframe, webview",n)[0],a=i.contentWindow,r=function(e){if(e=e.originalEvent||e,!e.source||e.source==a){var n=e.data;try{var i=JSON.parse(n)}catch(r){return}i&&i.eventType&&t.$emit("game_frame_event",i)}};$(e).on("message",r),t.$on("$destroy",function(){$(e).off("message",r)})})}return{link:t}}]).directive("myEmojiImage",["RichTextProcessor",function(e){function t(t,n,i){var a=i.myEmojiImage,r=e.wrapRichText(a,{noLinks:!0,noLinebreaks:!0});n.html(r.valueOf())}return{link:t}}]).directive("myExternalEmbed",function(){function e(e,s,l){var c=e.$eval(l.myExternalEmbed);if(c){var d,u="",p=!1;switch(c[0]){case"youtube":d=c[1],u='<div class="im_message_media_embed im_message_video_embed"><'+o+' type="text/html" frameborder="0" src="https://www.youtube.com/embed/'+d+'?autoplay=0&amp;controls=2" webkitallowfullscreen mozallowfullscreen allowfullscreen></'+o+"></div>";break;case"vimeo":d=c[1],u='<div class="im_message_media_embed im_message_video_embed"><'+o+' type="text/html" frameborder="0" src="https://player.vimeo.com/video/'+d+'?title=0&amp;byline=0&amp;portrait=0" webkitallowfullscreen mozallowfullscreen allowfullscreen></'+o+"></div>";break;case"instagram":var f=c[1];u='<div class="im_message_media_embed im_message_insta_embed"><'+o+' type="text/html" frameborder="0" src="https://instagram.com/p/'+f+'/embed/"></'+o+"></div>";break;case"vine":var m=c[1];u='<div class="im_message_media_embed im_message_vine_embed"><'+o+' type="text/html" frameborder="0" src="https://vine.co/v/'+m+'/embed/simple"></'+o+"></div>";break;case"soundcloud":var h=c[1];u='<div class="im_message_media_embed im_message_soundcloud_embed"><'+o+' type="text/html" frameborder="0" src="https://w.soundcloud.com/player/?url='+encodeEntities(encodeURIComponent(h))+'&amp;auto_play=false&amp;hide_related=true&amp;show_comments=false&amp;show_user=true&amp;show_reposts=false&amp;visual=true"></'+o+"></div>";break;case"spotify":var g=c[1];u='<div class="im_message_media_embed im_message_spotify_embed"><'+o+' type="text/html" frameborder="0" allowtransparency="true" src="https://embed.spotify.com/?uri=spotify:'+encodeEntities(encodeURIComponent(g))+'"></'+o+"></div>";break;case"twitter":u='<div class="im_message_twitter_embed"><blockquote class="twitter-tweet" lang="en"><a href="'+c[1]+'"></a></blockquote></div>',p=function(){t?window.twttr&&twttr.widgets.load(s[0]):(t=!0,$("<script>").appendTo("body").on("load",function(){twttr.events.bind("loaded",function(e){for(var t=0;t<a.length;t++)a[t].$emit("ui_height");a=[]})}).attr("src","https://platform.twitter.com/widgets.js")),a.push(e)};break;case"facebook":u='<div class="im_message_facebook_embed"><div class="fb-post" data-href="'+c[1]+'" data-width="300"></div></div>',p=function(){n?window.FB&&FB.XFBML.parse(s[0]):(n=!0,$("<script>").appendTo("body").on("load",function(){FB.Event.subscribe("xfbml.render",function(e){for(var t=0;t<r.length;t++)r[t].$emit("ui_height");r=[]})}).attr("src","https://connect.facebook.net/en_US/sdk.js#xfbml=1&appId=254098051407226&version=v2.0")),r.push(e)};break;case"gplus":u='<div class="im_message_gplus_embed"><div class="g-post" data-href="'+c[1]+'"></div></div>',p=function(){i?window.gapi&&gapi.post.go(s[0]):(i=!0,window.___gcfg={parsetags:"explicit"},$("<script>").appendTo("body").on("load",function(){gapi.post.go()}).attr("src","https://apis.google.com/js/plusone.js")),s.one("load",function(){e.$emit("ui_height")})}}u&&(s[0].innerHTML=u,p&&p())}}var t=!1,n=!1,i=!1,a=[],r=[],o=Config.Modes.chrome_packed?"webview":"iframe";return{link:e}}),angular.module("myApp.directives").directive("myDialogsListMobile",["$window","$timeout",function(e,t){function n(n,i,a){function r(){return d&&d.offsetHeight||(d=$(c)[0]),a.modal?void $(i).css({height:$(e).height()-(d?d.offsetHeight:58)-46}):(l&&l.offsetHeight||(l=$(".tg_page_head")[0]),o&&o.offsetHeight||(o=$(".im_dialogs_col_wrap")[0]),void $(i).css({height:$(e).height()-(l?l.offsetHeight:46)-(d?d.offsetHeight:58)-parseInt($(o).css("paddingBottom")||0)}))}var o=$(".im_dialogs_col_wrap")[0],s=i[0],l=$(".tg_page_head")[0],c=a.modal?".mobile_modal_body .im_dialogs_panel":".im_dialogs_panel",d=$(c)[0],u=!1;n.$on("ui_dialogs_search",r),n.$on("ui_dialogs_update",r),n.$on("ui_dialogs_append",function(){onContentLoaded(function(){u=!1,t(function(){$(s).trigger("scroll")})})}),n.$on("ui_dialogs_change",function(){onContentLoaded(function(){u=!1,t(function(){$(s).trigger("scroll")})})}),$(s).on("scroll",function(e){i.is(":visible")&&!u&&s.scrollTop>=s.scrollHeight-s.clientHeight-300&&(n.$emit("dialogs_need_more"),u=!0)}),$(e).on("resize",r),r(),setTimeout(r,1e3)}return{link:n}}]).directive("myHistoryMobile",["$window","$timeout","$rootScope","$transition",function(e,t,n,i){function a(n,i,a){function r(){var e,n;if(n=$(".im_message_focus:visible",c)[0]){var i=c.clientHeight,a=c.scrollTop,r=n.offsetTop,o=n.clientHeight;(!a||a+i<r||a>r+o)&&(c.scrollTop=Math.max(0,r-Math.floor(i/2)+26)),v=!1}else(e=$(".im_message_unread_split:visible",c)[0])?(c.scrollTop=Math.max(0,e.offsetTop-52),v=!1):(c.scrollTop=c.scrollHeight,v=!0);t(function(){$(c).trigger("scroll"),y=c.scrollTop})}function o(t){if(i.is(":visible")||$(i[0].parentNode.parentNode).is(":visible")){$(p).is(":visible")&&$(p).css({height:$(h).height()}),f&&f.offsetHeight||(f=$(".tg_page_head")[0]),m&&m.offsetHeight||(m=$(".im_history_pinned_panel",i)[0]);var n=m&&m.offsetHeight||0,a=$(e).height()-u.offsetHeight-(f?f.offsetHeight:46)-n;$(l).css({height:a}),s(),t!==!0&&v&&onContentLoaded(function(){c.scrollTop=c.scrollHeight})}}function s(){}var l=$(".im_history_wrap",i)[0],c=($(".im_history_messages",i)[0],$(".im_history_scrollable_wrap",i)[0]),d=$(".im_history_scrollable",i)[0],u=$(".im_bottom_panel_wrap",i)[0],p=$(".im_send_form_wrap",i)[0],f=$(".tg_page_head")[0],m=$(".im_history_pinned_panel",i)[0],h=$(".im_send_form",i)[0],g=!1,_=!1;onContentLoaded(function(){c.scrollTop=c.scrollHeight}),n.$on("ui_history_append_new",function(e,t){if(v||t.my){var n=parseInt($(c).css("paddingRight"));$(c).addClass("im_history_to_bottom"),$(d).css({bottom:0,marginLeft:-Math.ceil(n/2)}),onContentLoaded(function(){$(c).removeClass("im_history_to_bottom"),$(d).css({bottom:"",marginLeft:""}),c.scrollTop=c.scrollHeight,s()})}}),n.$on("ui_history_change",function(){var e=parseInt($(c).css("paddingRight"));$(c).addClass("im_history_to_bottom"),$(d).css({bottom:0,marginLeft:-Math.ceil(e/2)}),onContentLoaded(function(){$(c).removeClass("im_history_to_bottom"),$(d).css({bottom:"",marginLeft:""}),o(!0),g=!1,_=!1,r()})}),n.$on("ui_history_change_scroll",function(){onContentLoaded(r)}),n.$on("ui_history_focus",function(){v||(c.scrollTop=c.scrollHeight,v=!0)}),n.$on("ui_history_prepend",function(){var e=c.scrollHeight,i=c.scrollTop,a=parseInt($(c).css("paddingRight")),o=c.clientHeight;$(c).addClass("im_history_to_bottom"),c.scrollHeight,$(d).css({bottom:-(e-i-o),marginLeft:-Math.ceil(a/2)});var l=function(){$(c).removeClass("im_history_to_bottom"),$(d).css({bottom:"",marginLeft:""}),y>=0?r():c.scrollTop=i+c.scrollHeight-e,s(),g=!1,t(function(){c.scrollHeight!=e&&$(c).trigger("scroll")}),clearTimeout(u),p()},u=setTimeout(l,0),p=n.$on("$viewContentLoaded",l)}),n.$on("ui_history_append",function(){var e=c.scrollHeight;onContentLoaded(function(){v=!1,s(),_=!1,y>=0&&r(),t(function(){c.scrollHeight!=e&&$(c).trigger("scroll")})})}),n.$on("ui_panel_update",function(e,i){onContentLoaded(function(){o(),i&&i.blur?n.$broadcast("ui_message_blur"):n.$broadcast("ui_message_send"),t(function(){$(c).trigger("scroll")})})}),n.$on("ui_selection_clear",function(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}),n.$on("ui_editor_resize",o),n.$on("ui_height",function(){onContentLoaded(o)});var v=!0,y=-1;$(c).on("scroll",function(e){if(i.is(":visible")&&!$(c).hasClass("im_history_to_bottom")){var t=c.scrollTop;v=t>=c.scrollHeight-c.clientHeight,y>=0&&y!=t&&(y=-1),!g&&t<=300?(g=!0,n.$emit("history_need_more")):!_&&t>=c.scrollHeight-c.clientHeight-300&&(_=!0,n.$emit("history_need_less"))}}),$(e).on("resize",o),o(),onContentLoaded(o)}return{link:a}}]).directive("myContactsListMobile",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:$(e).height()-(o&&o.offsetHeight||0)-(r&&r.offsetHeight||0)-64})}var r=$(".contacts_modal_search")[0],o=$(".contacts_modal_panel")[0];$(e).on("resize",a),t.$on("contacts_change",function(){onContentLoaded(a)}),onContentLoaded(a)}return{link:n}}]).directive("myCountriesListMobile",["$window","$timeout",function(e,t){function n(t,n,i){function a(){$(n).css({height:$(e).height()-(o&&o.offsetHeight||0)-(r&&r.offsetHeight||0)-64})}var r=$(".countries_modal_search")[0],o=$(".countries_modal_panel")[0];$(e).on("resize",a),onContentLoaded(a)}return{link:n}}]).directive("myInfiniteScrollerMobile",function(){function e(e,t,n){var i=t[0],a=!1;$(i).on("scroll",function(n){t.is(":visible")&&!a&&i.scrollTop>=i.scrollHeight-i.clientHeight-300&&(a=!0,e.$apply(function(){e.slice.limit+=e.slice.limitDelta||20}),onContentLoaded(function(){a=!1}))})}return{link:e,scope:!0}});