(acmlogo)
((helveticab.sd) .opensd 8.5 36 .mul 11 36 .mul .translate acmcircle acm .closesd).cvx .def

(acmcircle) 
(0 360 49.5 100 .5 arcline).cvx .def

(arcline) 
((!arclhw) .exch .def
 .startpath 4 .copy  .exch !arclhw .add .exch (.enterpoint).cvx arc .exch !arclhw .sub .exch (.enterpoint).cvx narc .drawarea).cvx .def

(arc) 
((!arx) .exch .def
 (!arcnt) .exch .def
 (!arr).exch .def
 (!areag) .exch .dup 0 .lt (360 .add) .cvx .if .def
 (!arbag) .exch .dup 0 .lt (360 .add) .cvx .if .def
 !areag !arbag 2 .copy .lt (.exch .sub  360 .exch .sub)(.sub)/ifelse  !arcnt 1. .sub .div (!ardel) .exch .def 
!arbag !ardel .sub !arcnt ( !ardel .add .dup .dup .cos !arr .mul .exch .sin 
!arr .mul !arx).cvx .rept .pop).cvx .def

(narc) 
((!arx) .exch .def
 (!arcnt) .exch .def
 (!arr).exch .def
 (!areag) .exch .dup 0 .lt (360 .add) .cvx .if .def
 (!arbag) .exch .dup 0 .lt (360 .add) .cvx .if .def
 !areag !arbag 2 .copy .lt (.exch .sub  360 .exch .sub)(.sub)/ifelse  !arcnt 1. .sub .div .neg  (!ardel) .exch .def 
!areag !ardel .sub !arcnt ( !ardel .add .dup .dup .cos !arr .mul .exch .sin 
!arr .mul !arx).cvx .rept .pop).cvx .def

(acm) 
(-52 -13.5 .translate 57.126337 !wsc .mul .dup .scale (a) drawchar .513 !wac .add 0 .translate (c) drawchar .494 !wcm .add 0 .translate (m) drawchar) .cvx .def

(drawchar) 
(.starteopath .entersdchar .drawarea .pop).cvx .def

(!wac) -.02 .def

(!wcm) -.015 .def

(!wsc) .945 .def