| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojox.encoding.ascii85"]){ |
| dojo._hasResource["dojox.encoding.ascii85"]=true; |
| dojo.provide("dojox.encoding.ascii85"); |
| (function(){ |
| var c=function(_1,_2,_3){ |
| var i,j,n,b=[0,0,0,0,0]; |
| for(i=0;i<_2;i+=4){ |
| n=((_1[i]*256+_1[i+1])*256+_1[i+2])*256+_1[i+3]; |
| if(!n){ |
| _3.push("z"); |
| }else{ |
| for(j=0;j<5;b[j++]=n%85+33,n=Math.floor(n/85)){ |
| } |
| } |
| _3.push(String.fromCharCode(b[4],b[3],b[2],b[1],b[0])); |
| } |
| }; |
| dojox.encoding.ascii85.encode=function(_4){ |
| var _5=[],_6=_4.length%4,_7=_4.length-_6; |
| c(_4,_7,_5); |
| if(_6){ |
| var t=_4.slice(_7); |
| while(t.length<4){ |
| t.push(0); |
| } |
| c(t,4,_5); |
| var x=_5.pop(); |
| if(x=="z"){ |
| x="!!!!!"; |
| } |
| _5.push(x.substr(0,_6+1)); |
| } |
| return _5.join(""); |
| }; |
| dojox.encoding.ascii85.decode=function(_8){ |
| var n=_8.length,r=[],b=[0,0,0,0,0],i,j,t,x,y,d; |
| for(i=0;i<n;++i){ |
| if(_8.charAt(i)=="z"){ |
| r.push(0,0,0,0); |
| continue; |
| } |
| for(j=0;j<5;++j){ |
| b[j]=_8.charCodeAt(i+j)-33; |
| } |
| d=n-i; |
| if(d<5){ |
| for(j=d;j<4;b[++j]=0){ |
| } |
| b[d]=85; |
| } |
| t=(((b[0]*85+b[1])*85+b[2])*85+b[3])*85+b[4]; |
| x=t&255; |
| t>>>=8; |
| y=t&255; |
| t>>>=8; |
| r.push(t>>>8,t&255,y,x); |
| for(j=d;j<5;++j,r.pop()){ |
| } |
| i+=4; |
| } |
| return r; |
| }; |
| })(); |
| } |