CIAUUU ;MSC/IND/DKM - UUEncode and UUDecode functions.;04-May-2006 08:19;DKM
;;1.2;CIA UTILITIES;;Mar 20, 2007
;;Copyright 2000-2006, Medsphere Systems Corporation
;=================================================================
ENCODE(X) ;
N CIAZ,CIAZ1,CIAZ2,CIAZ3,CIAZ4,CIAZ5,CIAZ6
S CIAZ=$$INIT,CIAZ1=""
F CIAZ2=1:3:$L(X) D
.S CIAZ3=0,CIAZ6=""
.F CIAZ4=0:1:2 D
..S CIAZ5=$A(X,CIAZ2+CIAZ4),CIAZ3=CIAZ3*256+$S(CIAZ5<0:0,1:CIAZ5)
.F CIAZ4=1:1:4 S CIAZ6=$E(CIAZ,CIAZ3#64+2)_CIAZ6,CIAZ3=CIAZ3\64
.S CIAZ1=CIAZ1_CIAZ6
S CIAZ2=$L(X)#3
S:CIAZ2 CIAZ3=$L(CIAZ1),$E(CIAZ1,CIAZ3-2+CIAZ2,CIAZ3)=$E("==",CIAZ2,2)
Q CIAZ1
DECODE(X) ;
N CIAZ,CIAZ1,CIAZ2,CIAZ3,CIAZ4,CIAZ5,CIAZ6
S CIAZ=$$INIT,CIAZ1=""
F CIAZ2=1:4:$L(X) D
.S CIAZ3=0,CIAZ6=""
.F CIAZ4=0:1:3 D
..S CIAZ5=$F(CIAZ,$E(X,CIAZ2+CIAZ4))-3
..S CIAZ3=CIAZ3*64+$S(CIAZ5<0:0,1:CIAZ5)
.F CIAZ4=0:1:2 S CIAZ6=$C(CIAZ3#256)_CIAZ6,CIAZ3=CIAZ3\256
.S CIAZ1=CIAZ1_CIAZ6
Q $E(CIAZ1,1,$L(CIAZ1)-$L(X,"=")+1)
INIT() Q "=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
CIAUUU ;MSC/IND/DKM - UUEncode and UUDecode functions.;04-May-2006 08:19;DKM
+1 ;;1.2;CIA UTILITIES;;Mar 20, 2007
+2 ;;Copyright 2000-2006, Medsphere Systems Corporation
+3 ;=================================================================
ENCODE(X) ;
+1 NEW CIAZ,CIAZ1,CIAZ2,CIAZ3,CIAZ4,CIAZ5,CIAZ6
+2 SET CIAZ=$$INIT
SET CIAZ1=""
+3 FOR CIAZ2=1:3:$LENGTH(X)
Begin DoDot:1
+4 SET CIAZ3=0
SET CIAZ6=""
+5 FOR CIAZ4=0:1:2
Begin DoDot:2
+6 SET CIAZ5=$ASCII(X,CIAZ2+CIAZ4)
SET CIAZ3=CIAZ3*256+$SELECT(CIAZ5<0:0,1:CIAZ5)
End DoDot:2
+7 FOR CIAZ4=1:1:4
SET CIAZ6=$EXTRACT(CIAZ,CIAZ3#64+2)_CIAZ6
SET CIAZ3=CIAZ3\64
+8 SET CIAZ1=CIAZ1_CIAZ6
End DoDot:1
+9 SET CIAZ2=$LENGTH(X)#3
+10 IF CIAZ2
SET CIAZ3=$LENGTH(CIAZ1)
SET $EXTRACT(CIAZ1,CIAZ3-2+CIAZ2,CIAZ3)=$EXTRACT("==",CIAZ2,2)
+11 QUIT CIAZ1
DECODE(X) ;
+1 NEW CIAZ,CIAZ1,CIAZ2,CIAZ3,CIAZ4,CIAZ5,CIAZ6
+2 SET CIAZ=$$INIT
SET CIAZ1=""
+3 FOR CIAZ2=1:4:$LENGTH(X)
Begin DoDot:1
+4 SET CIAZ3=0
SET CIAZ6=""
+5 FOR CIAZ4=0:1:3
Begin DoDot:2
+6 SET CIAZ5=$FIND(CIAZ,$EXTRACT(X,CIAZ2+CIAZ4))-3
+7 SET CIAZ3=CIAZ3*64+$SELECT(CIAZ5<0:0,1:CIAZ5)
End DoDot:2
+8 FOR CIAZ4=0:1:2
SET CIAZ6=$CHAR(CIAZ3#256)_CIAZ6
SET CIAZ3=CIAZ3\256
+9 SET CIAZ1=CIAZ1_CIAZ6
End DoDot:1
+10 QUIT $EXTRACT(CIAZ1,1,$LENGTH(CIAZ1)-$LENGTH(X,"=")+1)
INIT() QUIT "=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"