var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function encode64(C){var A="";var J,H,F;var I,G,E,D;var B=0;do{J=C.charCodeAt(B++);H=C.charCodeAt(B++);F=C.charCodeAt(B++);I=J>>2;G=((J&3)<<4)|(H>>4);E=((H&15)<<2)|(F>>6);D=F&63;if(isNaN(H)){E=D=64;}else{if(isNaN(F)){D=64;
}}A=A+keyStr.charAt(I)+keyStr.charAt(G)+keyStr.charAt(E)+keyStr.charAt(D);}while(B<C.length);return A;}function decode64(C){var A="";var J,H,F;var I,G,E,D;var B=0;C=C.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=keyStr.indexOf(C.charAt(B++));G=keyStr.indexOf(C.charAt(B++));E=keyStr.indexOf(C.charAt(B++));D=keyStr.indexOf(C.charAt(B++));
J=(I<<2)|(G>>4);H=((G&15)<<4)|(E>>2);F=((E&3)<<6)|D;A=A+String.fromCharCode(J);if(E!=64){A=A+String.fromCharCode(H);}if(D!=64){A=A+String.fromCharCode(F);}}while(B<C.length);return A;}