%! % procedures /pagebegin { /A exch def /x A 0 get def /y A 1 get def gsave 72 dup scale x y translate 0.5 72 div setlinewidth } def /pageend { grestore showpage } def % array [x y r theta]] /circle {8 dict begin /A exch def /x A 0 get def /y A 1 get def /r A 2 get def /theta A 3 get def /c 0 def /n 64 def newpath r c cos mul x add r c sin mul y add moveto n{ /c c theta n div add def r c cos mul x add r c sin mul y add lineto } repeat end} def % array [x y a b theta] /ellipse {9 dict begin /A exch def /x A 0 get def /y A 1 get def /a A 2 get def /b A 3 get def /theta A 4 get def /c 0 def /n 64 def newpath a c cos mul x add b c sin mul y add moveto n{ /c c theta n div add def a c cos mul x add b c sin mul y add lineto } repeat end} def % colors /black { 0 0 0 setrgbcolor }def /yellow { 1 1 0 setrgbcolor } def /red { 0.5 0 1 setrgbcolor } def /blue { 0 0 1 setrgbcolor } def /white { 1 1 1 setrgbcolor } def % Fonts /largefont { /Times-Roman findfont 0.32 scalefont setfont } def /normalfont { /Times-Roman findfont 0.22 scalefont setfont } def /smallfont { /Times-Roman findfont 0.16 scalefont setfont}def % rotate [x y r theta] /rotate{ 6 dict begin /A exch def /x A 0 get def /y A 1 get def /r A 2 get def /theta A 3 get def /alpha -90 theta add def newpath x y moveto r alpha sin alpha cos div mul r lineto stroke }def /polygon { 2 dict begin /poly exch def /n poly length def poly 0 get aload pop moveto 1 1 n 1 sub { /i exch def poly i get aload pop lineto } for end} def [2 9] pagebegin black [[-2 2] [2 2] [2 -2] [-2 -2]] polygon fill white [0 0 1 180] circle stroke 1 0 moveto -1 0 lineto stroke 60 sin 60 cos div 1 moveto -60 sin -60 cos div 1 lineto stroke [0 0 1 30] rotate [0 0 1 45] rotate [0 0 1 60] rotate [0 0 1 75] rotate [0 0 1 90] rotate [0 0 1 105] rotate [0 0 1 120] rotate [0 0 1 135] rotate [0 0 1 150] rotate normalfont -90 30 add sin -90 30 add cos div 1.1 moveto (G) show -90 45 add sin -90 45 add cos div 1.1 moveto (F) show -90 60 add sin -90 60 add cos div 1.1 moveto (E) show -90 75 add sin -90 75 add cos div 1.1 moveto (D) show -90 105 add sin -90 105 add cos div 1.1 moveto (I) show -90 120 add sin -90 120 add cos div 1.1 moveto (J) show -90 135 add sin -90 135 add cos div 1.1 moveto (K) show -90 150 add sin -90 150 add cos div 1.1 moveto (L) show 0 1.1 moveto (A) show 0 -0.2 moveto (B) show -1 -0.2 moveto (C) show 1 -0.2 moveto (H) show pageend