(function(){var BASE64_MAPPING=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'];var _toBinary=function(ascii){var binary=new Array();while(ascii>0){var b=ascii%2;ascii=Math.floor(ascii/2);binary.push(b)}binary.reverse();return binary};var _toDecimal=function(binary){var dec=0;var p=0;for(var i=binary.length-1;i>=0;--i){var b=binary[i];if(b==1){dec+=Math.pow(2,p)}++p}return dec};var _toUTF8Binary=function(c,binaryArray){var mustLen=(8-(c+1))+((c-1)*6);var fatLen=binaryArray.length;var diff=mustLen-fatLen;while(--diff>=0){binaryArray.unshift(0)}var binary=[];var _c=c;while(--_c>=0){binary.push(1)}binary.push(0);var i=0,len=8-(c+1);for(;i=0){binary.push(binaryArray[i++])}}return binary};var Base64={encode:function(str){var base64_Index=[];var binaryArray=[];for(var i=0,len=str.length;i=0){_tmpBinary.unshift(0)}binaryArray=binaryArray.concat(_tmpBinary)}else if(unicode>=0x80&&unicode<=0x7FF){binaryArray=binaryArray.concat(_toUTF8Binary(2,_tmpBinary))}else if(unicode>=0x800&&unicode<=0xFFFF){binaryArray=binaryArray.concat(_toUTF8Binary(3,_tmpBinary))}else if(unicode>=0x10000&&unicode<=0x1FFFFF){binaryArray=binaryArray.concat(_toUTF8Binary(4,_tmpBinary))}else if(unicode>=0x200000&&unicode<=0x3FFFFFF){binaryArray=binaryArray.concat(_toUTF8Binary(5,_tmpBinary))}else if(unicode>=4000000&&unicode<=0x7FFFFFFF){binaryArray=binaryArray.concat(_toUTF8Binary(6,_tmpBinary))}}var extra_Zero_Count=0;for(var i=0,len=binaryArray.length;i=0){binaryArray.push(0)}base64_Index.push(_toDecimal(binaryArray.slice(i,i+6)))}var base64='';for(var i=0,len=base64_Index.length;i0){for(var k=6-_tmpLen;k>0;--k){_tmp.unshift(0)}}binaryArray=binaryArray.concat(_tmp);break}}}if(extra_Zero_Count>0){binaryArray=binaryArray.slice(0,binaryArray.length-extra_Zero_Count)}var unicode=[];var unicodeBinary=[];for(var i=0,len=binaryArray.length;i1){unicodeBinary=unicodeBinary.concat(binaryArray.slice(i+2,i+8));i+=8;--sum}unicode=unicode.concat(_toDecimal(unicodeBinary));unicodeBinary=[]}}var str='';for(var i=0,len=unicode.length;i