UNPKG

f5stegojs

Version:

JPEG steganography for browser and node. F5 algo in pure javascript.

2 lines 14.7 kB
/*! f5stegojs v0.1.2 | MIT license | https://github.com/desudesutalk/f5stegojs#readme */ !function(a,b){"use strict";"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.f5stego=b()}(this,function(){"use strict";function a(){for(var a=1,b=2,e=1;e<=15;e++){for(var f=a;f<b;f++)d[32767+f]=e,c[32767+f]=[],c[32767+f][1]=e,c[32767+f][0]=f;for(var g=-(b-1);g<=-a;g++)d[32767+g]=e,c[32767+g]=[],c[32767+g][1]=e,c[32767+g][0]=b-1+g;a<<=1,b<<=1}}function b(a,b){for(var c=0,d=0,e=[],f=1;f<=16;f++){for(var g=1;g<=a[f];g++)e[b[d]]=[],e[b[d]][0]=c,e[b[d]][1]=f,d++,c++;c*=2}return e}var f5stego=function(a,b){this.a=b||16777216,this.b(a)};f5stego.prototype.b=function(a){if(this.c=new ArrayBuffer(4.125*this.a),!a.length)throw"key needed";var b=0,c=0,d=0,e=0,f=new Uint8Array(256),g=new Uint8Array(this.c);for(b=0;b<256;++b)f[b]=b;for(b=0;b<256;++b)c=c+f[b]+a[b%a.length]&255,d=f[b],f[b]=f[c],f[c]=d;for(b=0,c=0,e=0;e<4.125*this.a;++e)b=b+1&255,c=c+f[b]&255,d=f[b],f[b]=f[c],f[c]=d,g[e]=f[d+f[b]&255]},f5stego.prototype.d=function(a){var b,c,d,e,f=new Uint32Array(this.c);if("number"==typeof a)for(c=a,a=new Uint32Array(c),d=1;d<c;d++)e=f[d]%(d+1),e!=d&&(a[d]=a[e]),a[e]=d;else for(c=a.length,d=1;d<c;d++)e=f[d]%(d+1),b=a[d],a[d]=a[e],a[e]=b;return{e:a,f:new Uint8Array(this.c,4*c)}},f5stego.prototype.g=function(a){var b,c,d,e,f,g,h,i,j=0,k=0;for(e=0;e<a.length;e++)e%64!==0&&(0===a[e]&&k++,1!=a[e]&&a[e]!=-1||j++);b=a.length-k-j-a.length/64,c=j/(b+j);var l={capacity:[0,(b+.49*j>>3)-1],coeff_total:a.length,coeff_large:b,coeff_zero:k,coeff_one:j,coeff_one_ratio:j/(b+j)};for(e=2;e<17;e++){for(f=(1<<e)-1,d=b+j,g=0;d>f;)h=d/f/(1<<e)/(1<<e)|0,d-=h*f,i=d*(1-c)/f*.96|0,d-=i*f,g+=i+h,f++;l.capacity[e]=(e*g>>3)-1}return l},f5stego.prototype.h=function(a,b,c){var d,e,f,g=a.length,h=0,i=0,j=0,k=0,l=0,m=this.d(g),n=m.f,o=0;m=m.e;var p=0,q=b.length,r=0,s=0;for(e=(1<<c)-1,q=c-1,q^=n[o++],p=1&q,q>>=1,s=3,f=0;f<g;f++)if(l=m[f],l%64!==0&&0!==a[l]){var t=a[l];if(j++,t>0&&(1&t)!=p?(a[l]--,h++):t<0&&(1&t)==p&&(a[l]++,h++),0!==a[l]){if(i++,0===s){if(1!=c||r>=b.length)break;q=b[r++],q^=n[o++],s=8}p=1&q,q>>=1,s--}else k++}if(1==c&&i<8*b.length)throw"capacity exceeded "+i/8+" "+b.length;if(1!=c)for(var u=!1,v=0;!u||0!==s&&u;){for(v=0,d=0;d<c;d++){if(0===s){if(r>=b.length){u=!0;break}q=b[r++],q^=n[o++],s=8}p=1&q,q>>=1,s--,v|=p<<d}var w=[],x=null;for(d=0;d<e;d++){for(;;){if(++f>=g)throw"capacity exceeded "+i/8;if(x=m[f],x%64!==0&&0!==a[x])break}w.push(x)}for(j+=e;;){var y,z=0;for(d=0;d<w.length;d++)y=a[w[d]]>0?1&a[w[d]]:1-(1&a[w[d]]),1==y&&(z^=d+1);if(d=z^v,!d){i+=c;break}if(d--,a[w[d]]+=a[w[d]]<0?1:-1,h++,0!==a[w[d]]){i+=c;break}for(k++,w.splice(d,1);;){if(++f>=g)throw"capacity exceeded "+i/8;if(x=m[f],x%64!==0&&0!==a[x])break}j++,w.push(x)}}return{k:c,embedded:i/8,examined:j,changed:h,thrown:k,efficiency:(i/h).toFixed(2)}},f5stego.prototype.analyze=function(){var a,b=this.j.i[0];if(1!=b.l)for(a=0;a<this.j.i.length;a++)if(1==this.j.i[a].l){b=this.j.i[a];break}return this.g(b.m)},f5stego.prototype.f5put=function(a,b){var c,d,e=this.j.i[0];if(a.length>8388607)throw"Data too big. Max 8388607 bytes allowed.";if(a.length<32768?(c=new Uint8Array(2+a.length),c[0]=255&a.length,c[1]=a.length>>>8,c.set(a,2)):(c=new Uint8Array(3+a.length),c[0]=255&a.length,c[1]=(a.length>>>8&127)+128,c[2]=a.length>>>15,c.set(a,3)),1!=e.l)for(d=0;d<this.j.i.length;d++)if(1==this.j.i[d].l){e=this.j.i[d];break}if(b)return this.h(e.m,c,b);var f,g=this.g(e.m);for(b=0,d=g.capacity.length-1;d>=0;d--)if(g.capacity[d]>=c.length){b=d;break}if(0===b)throw"capacity exceeded";try{f=this.h(e.m,c,b)}catch(a){if(b--,0===b)throw"capacity exceeded";f=this.h(e.m,c,b)}return f.stats=g,f},f5stego.prototype.f5get=function(){var a=this.j.i[0];if(1!=a.l)for(var b=0;b<this.j.i.length;b++)if(1==this.j.i[b].l){a=this.j.i[b];break}var c=new Int16Array(a.m.length);c.set(a.m);for(var d,e=-1,f=0,g=c.length-1,h=this.d(c),i=h.f,j=0,k=0,l=new Uint8Array(c.length/8|0),m=0,n=0,o=0,p=0,q=0;o<4;)e++,0!==c[e]&&(f=1&c[e],c[e]<0&&(f=1-f),k|=f<<o,o++);if(k=(k^15&i[j++])+1,d=(1<<k)-1,o=0,1==k)for(;e<g;)e++,0!==c[e]&&(f=1&c[e],c[e]<0&&(f=1-f),m|=f<<o,o++,8==o&&(l[n++]=m^i[j++],m=0,o=0));else for(;e<g;)if(e++,0!==c[e]&&(f=1&c[e],c[e]<0&&(f=1-f),q^=f*++p,p==d))for(m|=q<<o,o+=k,p=0,q=0;o>=8;)l[n++]=255&m^i[j++],o-=8,m>>=8;for(;o>0;)l[n++]=255&m^i[j++],o-=8,m>>=8;var r=2,s=l[0];return 128&l[1]?(r++,s+=((127&l[1])<<8)+(l[2]<<15)):s+=l[1]<<8,l.subarray(r,r+s)},f5stego.prototype.parse=function(a){function b(a,b){for(var c=0,d=0,e=new Uint16Array(65536),f=0;f<16;f++){for(var g=0;g<a[f];g++){for(var h=c<<15-f,i=c+1<<15-f;h<i;h++)e[h]=b[d]+(f+1<<8);d++,c++}c*=2}return e}function c(a,b,c,d,e,f,g,h,i){function j(c,d){for(;r<16;)q=(q<<8)+(0|a[b]),r+=8,255==a[b]&&b++,b++;var e=c.n[q>>>r-16&65535];if(!e)throw"invalid huffman sequence";r-=e>>>8,e&=255;var f=0;if(0!==e){for(;r<e;)q=(q<<8)+a[b++],255==(255&q)&&b++,r+=8;f=q>>>r-e&(1<<e)-1,r-=e,f<1<<e-1&&(f+=(-1<<e)+1)}c.o[d>>6]=c.p+=f;for(var g,h,i=1;i<64;){for(;r<16;)q=(q<<8)+(0|a[b]),r+=8,255==a[b]&&b++,b++;if(g=c.q[q>>>r-16&65535],!g)throw"invalid huffman sequence";if(r-=g>>>8,h=g>>4&15,g&=15,0!==g){for(i+=h;r<g;)q=(q<<8)+a[b++],255==(255&q)&&b++,r+=8;c.m[d+i]=q>>>r-g&(1<<g)-1,r-=g,c.m[d+i]<1<<g-1&&(c.m[d+i]+=(-1<<g)+1),i++}else{if(h<15)break;i+=16}}}function k(c,d){for(var e=0;r<16;)q=(q<<8)+(0|a[b]),r+=8,255==a[b]&&b++,b++;var f=c.n[q>>>r-16&65535];if(!f)throw"invalid huffman sequence";if(r-=f>>>8,f&=255,0!==f){for(;r<f;)q=(q<<8)+a[b++],255==(255&q)&&b++,r+=8;e=q>>>r-f&(1<<f)-1,r-=f,e<1<<f-1&&(e+=(-1<<f)+1)}c.o[d>>6]=c.p+=e<<i}function l(c,d){r||(q=a[b++],255==q&&b++,r=8),c.o[d>>6]|=(q>>>--r&1)<<i}function m(c,d){if(s>0)return void s--;for(var e,h,i=f;i<=g;){for(;r<16;)q=(q<<8)+(0|a[b]),r+=8,255==a[b]&&b++,b++;if(e=c.q[q>>>r-16&65535],!e)throw"invalid huffman sequence";if(r-=e>>>8,h=e>>4&15,e&=15,0!==e){for(i+=h;r<e;)q=(q<<8)+a[b++],255==(255&q)&&b++,r+=8;c.m[d+i]=q>>>r-e&(1<<e)-1,r-=e,c.m[d+i]<1<<e-1&&(c.m[d+i]+=(-1<<e)+1),c.m[d+i]*=t,i++}else{if(15!=h){if(s=(1<<h)-1,h){for(;r<h;)q=(q<<8)+a[b++],255==(255&q)&&b++,r+=8;s+=q>>>r-h&(1<<h)-1,r-=h}break}i+=16}}}function n(c,d){var e,h,i=f;if(!s)for(;i<=g;){for(;r<16;)q=(q<<8)+(0|a[b]),r+=8,255==a[b]&&b++,b++;if(h=c.q[q>>>r-16&65535],!h)throw"invalid huffman sequence";if(r-=h>>>8,e=h>>4&15,h&=15){if(1!=h)throw"bad jpeg";r||(q=a[b++],255==q&&b++,r=8),h=q>>>--r&1?t:u}else if(15!=e){if(s=1<<e,e){for(;r<e;)q=(q<<8)+a[b++],255==(255&q)&&b++,r+=8;s+=q>>>r-e&(1<<e)-1,r-=e}break}for(;i<=g;){if(c.m[d+i])r||(q=a[b++],255==q&&b++,r=8),c.m[d+i]+=(q>>>--r&1)*(c.m[d+i]>=0?t:u);else if(--e<0)break;i++}h&&(c.m[d+i]=h),i++}if(s){for(;i<=g;)c.m[d+i]&&(r||(q=a[b++],255==q&&b++,r=8),c.m[d+i]+=(q>>>--r&1)*(c.m[d+i]>=0?t:u)),i++;s--}}var o,p=b,q=0,r=0,s=0,t=1<<i,u=-1<<i;o=c.r?0===f?0===h?k:l:0===h?m:n:j;var v,w,x,y,z,A,B,C,D,E;if(1==d.length)for(B=d[0].s,C=d[0].t,w=C*B,e||(e=w),A=e,d[0].p=0,s=0,E=0;E<C;E++)for(D=0;D<B;D++){if(!A){if(A=e,d[0].p=0,s=0,b-=r/8|0,255==a[b-1]&&b--,r=0,v=a[b]<<8|a[b+1],!(v>=65488&&v<=65495)){if(v<=65280)throw"bad jpeg";break}b+=2}for(A--,x=0;x<d.length;x++)o(d[x],64*(E*d[x].u+D))}else{for(B=c.v,C=c.w,w=C*B,e||(e=w),A=e,x=0;x<d.length;x++)d[x].p=0;for(s=0,E=0;E<C;E++)for(D=0;D<B;D++){if(!A){for(A=e,x=0;x<d.length;x++)d[x].p=0;if(s=0,b-=r/8|0,255==a[b-1]&&b--,r=0,v=a[b]<<8|a[b+1],!(v>=65488&&v<=65495)){if(v<=65280)throw"bad jpeg";break}b+=2}for(A--,x=0;x<d.length;x++)for(y=0;y<d[x].x;y++)for(z=0;z<d[x].y;z++)o(d[x],64*((E*d[x].x+y)*d[x].u+D*d[x].y+z))}}return b-=r/8|0,255==a[b-1]&&b--,b-p}function d(){var b=a[f]<<8|a[f+1];return f+=2,b}function e(){var b=d(),c=a.subarray(f,f+b-2);return f+=c.length,c}var f=0;this.z=a,this.A=null,this.B=[],this.C=[],this.j=null,this.D=null;for(var g,h,i,j,k,l,m=[],n=[];;){if(f>=a.length)throw"unexpected EOF";if(g=a[f++],h=a[f++],255==g){if(224==h&&(this.A=e()),(h>224&&h<240||254==h)&&this.B.push({app:h,data:e()}),219==h&&this.C.push(e()),h>=192&&h<=194){if(this.j)throw"Only single frame JPEGs supported";if(d(),this.j={E:193===h,r:194===h,F:a[f++],G:d(),H:d(),i:[],I:{},J:1,K:1},this.j.G*this.j.H>this.a)throw"Image is too big.";var o,p=a[f++],q=0,r=0;for(i=0;i<p;i++){o=a[f];var s=a[f+1]>>4,t=15&a[f+1];q<s&&(q=s),r<t&&(r=t);var u=a[f+2],v=this.j.i.push({l:o,y:s,x:t,L:u});this.j.I[o]=v-1,f+=3}this.j.J=q,this.j.K=r;var w=Math.ceil(this.j.H/8/q),x=Math.ceil(this.j.G/8/r);for(i=0;i<this.j.i.length;i++){l=this.j.i[i];var y=Math.ceil(Math.ceil(this.j.H/8)*l.y/q),z=Math.ceil(Math.ceil(this.j.G/8)*l.x/r),A=w*l.y,B=x*l.x;l.m=new Int16Array(B*A*64),l.o=new Int16Array(B*A),l.s=y,l.t=z,l.u=A,l.M=B}this.j.v=w,this.j.w=x}if(196==h){var C=d();for(i=2;i<C;){var D=a[f++],E=new Uint8Array(16),F=0;for(j=0;j<16;j++,f++)F+=E[j]=a[f];var G=new Uint8Array(F);for(j=0;j<F;j++,f++)G[j]=a[f];i+=17+F,(D>>4===0?n:m)[15&D]=b(E,G)}}if(221==h&&(k=d()),218==h){d();var H=a[f++],I=[];for(i=0;i<H;i++){var J=this.j.I[a[f++]];l=this.j.i[J];var K=a[f++];l.n=n[K>>4],l.q=m[15&K],I.push(l)}var L=a[f++],M=a[f++],N=a[f++],O=c(a,f,this.j,I,k,L,M,N>>4,15&N);f+=O}if(217==h)break}else{for(255==a[f-3]&&a[f-2]>=192&&a[f-2]<=254&&(f-=3);255!=a[f]&&f<a.length;)f++;if(255!=a[f])throw"bad jpeg "}}if(!this.j)throw"bad jpeg";return f<a.length&&(this.D=a.subarray(f)),this};var c=new Array(65535),d=new Array(65535),e=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],f=[0,1,2,3,4,5,6,7,8,9,10,11],g=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],h=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],i=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],j=[0,1,2,3,4,5,6,7,8,9,10,11],k=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],l=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];a();var m=b(e,f),n=b(i,j),o=b(g,h),p=b(k,l);return f5stego.prototype.pack=function(){function a(a){var b;y[C++]=a,C>B&&(b=new Uint8Array(2*y.length),b.set(y),y=b,B=b.length-128)}function b(b){a(b>>8&255),a(255&b)}function q(a){var b;C+a.length>B&&(b=new Uint8Array(2*y.length+a.length),b.set(y),y=b,B=b.length-128),y.set(a,C),C+=a.length}function r(c){b(65504),c.A?(b(c.A.length+2),q(c.A)):(b(16),a(74),a(70),a(73),a(70),a(0),a(1),a(1),a(0),b(1),b(1),a(0),a(0))}function s(a){for(var c=0;c<a.C.length;c++)b(65499),b(a.C[c].length+2),q(a.C[c])}function t(a){for(var c=0;c<a.B.length;c++)b(65280|a.B[c].app),b(a.B[c].data.length+2),q(a.B[c].data)}function u(c){b(65472),b(8+3*c.j.i.length),a(c.j.F),b(c.j.G),b(c.j.H),a(c.j.i.length);for(var d=0;d<c.j.i.length;d++){var e=c.j.i[d];a(e.l),a(e.y<<4|e.x),a(e.L)}}function v(c){b(65476),b(31),a(0);for(var d=0;d<16;d++)a(e[d+1]);for(var m=0;m<=11;m++)a(f[m]);b(65476),b(181),a(16);for(var n=0;n<16;n++)a(g[n+1]);for(var o=0;o<=161;o++)a(h[o]);if(1!=c.j.i.length){b(65476),b(31),a(1);for(var p=0;p<16;p++)a(i[p+1]);for(var q=0;q<=11;q++)a(j[q]);b(65476),b(181),a(17);for(var r=0;r<16;r++)a(k[r+1]);for(var s=0;s<=161;s++)a(l[s])}}function w(c){b(65498),b(6+2*c.j.i.length),a(c.j.i.length);for(var d=0;d<c.j.i.length;d++){var e=c.j.i[d];a(e.l),a(0===d?0:17)}a(0),a(63),a(0)}function x(a,b,e,f,g){var h,i,j;0===A&&(z=0);var k=a.o[b>>6]-e;if(e=a.o[b>>6],0===k)for(i=f[0][1],z<<=i,z+=f[0][0],A+=i;A>7;)D=255&z>>>A-8,y[C++]=D,255==D&&C++,A-=8,z&=(1<<A)-1;else for(h=32767+k,i=f[d[h]][1],z<<=i,z+=f[d[h]][0],A+=i,i=c[h][1],z<<=i,z+=c[h][0],A+=i;A>7;)D=255&z>>>A-8,y[C++]=D,255==D&&C++,A-=8,z&=(1<<A)-1;for(var l=63;l>0&&0===a.m[b+l];l--);if(0===l){for(i=g[0][1],z<<=i,z+=g[0][0],A+=i;A>7;)D=255&z>>>A-8,y[C++]=D,255==D&&C++,A-=8,z&=(1<<A)-1;return e}for(var m,n=1;n<=l;){for(var o=n;0===a.m[b+n]&&n<=l;++n);var p=n-o;if(p>=16){m=p>>4;for(var q=1;q<=m;++q)for(i=g[240][1],z<<=i,z+=g[240][0],A+=i;A>7;)D=255&z>>>A-8,y[C++]=D,255==D&&C++,A-=8,z&=(1<<A)-1;p=15&p}for(h=32767+a.m[b+n],i=g[(p<<4)+d[h]][1],z<<=i,z+=g[(p<<4)+d[h]][0],A+=i;A>7;)D=255&z>>>A-8,y[C++]=D,255==D&&C++,A-=8,z&=(1<<A)-1;for(i=c[h][1],z<<=i,z+=c[h][0],A+=i;A>7;)D=255&z>>>A-8,y[C++]=D,255==D&&C++,A-=8,z&=(1<<A)-1;n++}if(63!=l)for(i=g[0][1],z<<=i,z+=g[0][0],A+=i;A>7;)D=255&z>>>A-8,y[C++]=D,255==D&&C++,A-=8,z&=(1<<A)-1;return C>B&&(j=new Uint8Array(2*y.length),j.set(y),y=j,B=j.length-128),e}var y,z,A,B,C,D;y=new Uint8Array(65536),B=65408,C=0,z=0,A=0,b(65496),r(this),t(this),s(this),u(this),v(this),w(this),z=0,A=0;var E,F,G,H,I,J,K,L,M,N=[];for(K=0;K<this.j.i.length;K++)N.push(0);for(J=0;J<this.j.v*this.j.w;J++)for(F=J/this.j.v|0,G=J%this.j.v,K=0;K<this.j.i.length;K++)for(E=this.j.i[K],L=0;L<E.x;L++)for(H=F*E.x+L,M=0;M<E.y;M++)I=G*E.y+M,0===K?N[K]=x(E,64*(H*this.j.v*E.y+I),N[K],m,o):N[K]=x(E,64*(H*this.j.v*E.y+I),N[K],n,p);for(;A>7;)D=255&z>>>A-8,y[C++]=D,255==D&&C++,A-=8;return A>0&&(z<<=8-A,z+=(1<<8-A)-1,y[C++]=255&z),b(65497),this.D&&q(this.D),y.slice(0,C)},f5stego.prototype.clearTail=function(){if(!this.D)return null;var a=this.D;return this.D=null,a},f5stego.prototype.N=function(a){this.D=a},f5stego.prototype.getTail=function(){return this.D},f5stego.prototype.clearAPPs=function(){var a=this.B;return this.B=[],a},f5stego.prototype.getAPPn=function(a,b){var c,d,e=new Uint8Array(0),f=[];if(a&=255,a<16&&(a+=224),224===a)return this.A;for(c=0;c<this.B.length;c++)this.B[c].app==a?(d=new Uint8Array(e.length+this.B[c].data.length),d.set(e),d.set(this.B[c].data,e.length),e=d):b&&f.push(this.B[c]);return b&&(this.B=f),0===e.length?null:e},f5stego.prototype.setAPPn=function(a,b){var c,d,e;if(a&=255,a<16&&(a+=224),224===a)return d=this.A,this.A=b,d;if(e=this.getAPPn(a,!0),b.length<65534)return this.B.push({app:a,data:b}),e;for(c=0;c<b.length;)this.B.push({app:a,data:b.subarray(c,c+65533)}),c+=65533;return e},f5stego.prototype.strip=function(){return this.clearTail(),this.clearAPPs(),!0},f5stego.prototype.embed=function(a,b){return this.parse(a).f5put(b),this.pack()},f5stego.prototype.extract=function(a){return this.parse(a).f5get()},f5stego});