PS
# Contact
cct_init

movw = 0.45
{
contact
{S:`"\tt contact"' at last [].s+(0,-0.15)
 "\sl P" rjust at last [].P.w
 "\sl O" ljust at last [].O
 "\sl C" ljust at last [].C }
move right_ movw; contact(RX)
{`"\tt (RX)"' at (last [].s,S)
 "\sl P" rjust at last [].P.w
 "\sl O" ljust at last [].O
 "\sl C" ljust at last [].C }
move right_ movw; contact(OX); {`"\tt (OX)"' at (last [],S)}
move right_ movw; contact(CX); {`"\tt (CX)"' at (last [],S)}

move right_ movw; contact(X)
{S: `"\tt (X)"' at last [].s+(0,-0.15)
 "\sl P" rjust at last [].P.w
 "\sl O" ljust at last [].O
 "\sl C" ljust at last [].C }
move right_ movw; contact(PR)
{S: `"\tt (PR)"' at last [].s+(0,-0.15)
 "\sl P" rjust at last [].P.w
 "\sl O" ljust at last [].O
 "\sl C" ljust at last [].C }
move right_ movw; contact(PO); {`"\tt (PO)"' at (last [],S)}
{"\sl O" ljust at last [].O
 "\sl C" ljust at last [].C }
move right_ movw; contact(PCX); {`"\tt (PCX)"' at (last [],S)}
}

move down 0.75; right_ ; {
contact(I); {`S: "\tt (I)"' at last [].s+(0,-12bp__)
 "\sl P" rjust at last [].P.w
 "\sl O" ljust at last [].O.e
 "\sl C" ljust at last [].C.e }
move right_ movw; contact(RI)
{`"\tt (RI)"' at (last [],S)
 "\sl P" rjust at last [].P.w
 "\sl O" ljust at last [].O.e
 "\sl C" ljust at last [].C.e }
move right_ movw; contact(OI); {`"\tt (OI)"' at (last [],S)}
move right_ movw; contact(CI); {`"\tt (CI)"' at (last [],S)}

move right_ movw; contact(PI); {`"\tt (PI)"' at (last [],S) }
{"\sl O" ljust at last [].O.e
 "\sl C" ljust at last [].C.e }
move right_ movw; contact(PIO); {`"\tt (PIO)"' at (last [],S) }
{"\sl C" ljust at last [].C.e}
{"\sl O" ljust at last [].O.e}
move right_ movw; contact(PICX); {`"\tt (PICX)"' at (last [],S) }
{"\sl C" ljust at last [].C.e}
{"\sl O" ljust at last [].O.e}
}

movewid = movw
 move down 0.65; right_; {
 K: contact(T)
 {S: `"\tt (T)"' at last [].s+(0,-0.15)
  thinlines_
  spline <- right 0.09 then up 0.05 right 0.05 from K.C; "$\;\;$\sl C"
  spline <- right 0.09 then down 0.05 right 0.05 from K.O; "$\;\;$\sl O"
  thicklines_ }
  move; K: contact(RT)
 {`"\tt (RT)"' at (last [],S)
  thinlines_
  spline <- right 0.09 then up 0.05 right 0.05 from K.O; "$\;\;$\sl O"
  spline <- right 0.09 then down 0.05 right 0.05 from K.C; "$\;\;$\sl C"
  thicklines_ }
  move; contact(OT); {S: `"\tt (OT)"' at (last [],S) }
  move; contact(CT); {S: `"\tt (CT)"' at (last [],S) }
  move; contact(PT); {S: `"\tt (PT)"' at (last [],S) }
  move; contact(PTO); {S: `"\tt (PTO)"' at (last [],S) }
  move; contact(PTC); {S: `"\tt (PTC)"' at (last [],S) }
}

 move down 0.65; right_; {
 K: contact(U)
 {S: `"\tt (U)"' at last [].s+(0,-0.15)
  thinlines_
  spline <- right 0.09 then up 0.05 right 0.05 from K.C; "$\;\;$\sl C"
  spline <- right 0.09 then down 0.05 right 0.05 from K.O; "$\;\;$\sl O"
  thicklines_ }
  move; K: contact(RU)
 {`"\tt (RU)"' at (last [],S)
  thinlines_
  spline <- right 0.09 then up 0.05 right 0.05 from K.O; "$\;\;$\sl O"
  spline <- right 0.09 then down 0.05 right 0.05 from K.C; "$\;\;$\sl C"
  thicklines_ }
  move; K: contact(OU); {S: `"\tt (OU)"' at (last [],S)
   "\sl O" ljust at K.O.e }
  move; K: contact(CU); {S: `"\tt (CU)"' at (last [],S)
   "\sl C" ljust at K.C.e }
  move; contact(PU); {S: `"\tt (PU)"' at (last [],S) }
  move; contact(PUO); {S: `"\tt (PUO)"' at (last [],S) }
  move; contact(PUC); {S: `"\tt (PUC)"' at (last [],S) }
}
PE