	 function decode(utftext) {
		var lidlDecodeString = "";
		var i5 = 0;
		var c0 = c1 = c2 = 0;
 
		while ( i5 < utftext.length ) {
 
			c0 = utftext.charCodeAt(i5);
 
			if (c0 < 128) {
				lidlDecodeString += String.fromCharCode(c0);
				i5++;
			}
			else if((c0 > 191) && (c0 < 224)) {
				c2 = utftext.charCodeAt(i5+1);
				lidlDecodeString += String.fromCharCode(((c0 & 31) << 6) | (c2 & 63));
				i5 += 2;
			}
			else {
				c2 = utftext.charCodeAt(i5+1);
				c3 = utftext.charCodeAt(i5+2);
				lidlDecodeString += String.fromCharCode(((c0 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i5 += 3;
			}
		}
		return lidlDecodeString;
	}

