
(virtual-font
  (mho (ver-flip (hor-flip omega)))
  (Backepsilon (ver-flip (hor-flip Epsilon)))
  (b-mho (ver-flip (hor-flip b-omega)))
  (b-Mho (ver-flip (hor-flip b-Omega)))
  (b-backepsilon (ver-flip (hor-flip b-epsilon)))
  (b-Backepsilon (ver-flip (hor-flip b-Epsilon)))
  (Exists (join (0 0 exists) (0.25 -0.01 urcorner) (0.25 0.02 lrcorner)))
  (mapmulti (hor-flip multimap))
  (invbreve (ver-flip breve))
  
  (ldots (join (0 0 .) (0.3 0 .) (0.6 0 .)))
  (cdots (join (0 0 cdot) (0.3 0 cdot) (0.6 0 cdot)))
  (hdots (enlarge (join (0 0.3 cdot) (0.3 0.3 cdot) (0.6 0.3 cdot))
    0 0 0.3 -0.3))
  (vdots (enlarge (join (0.2 0.3 cdot) (0.2 0 cdot) (0.2 -0.3 cdot)) 0.2 0.2))
  (ddots (join (0 0.3 cdot) (0.3 0 cdot) (0.6 -0.3 cdot)))
  (udots (join (0.6 0.3 cdot) (0.3 0 cdot) (0 -0.3 cdot)))
  (doteq (enlarge (join (0 0 =) (0.25 0.4 cdot)) 0 0 0 -0.4))
  (dotamalg (enlarge (join (0 0 amalg) (0.25 0.6 cdot)) 0 0 0 -0.5))
  (dottimes (enlarge (join (0 0 times) (0.25 0.4 cdot)) 0 0 0 -0.4))
  (dotoplus (enlarge (join (0 0 oplus) (0.25 0.5 cdot)) 0 0 0 -0.5))
  (dototimes (enlarge (join (0 0 otimes) (0.25 0.5 cdot)) 0 0 0 -0.5))
  (dotminus (enlarge (join (0 0 -) (0.25 0.3 cdot)) 0 0 0 -0.3))
  (dotpm (enlarge (join (0 0 pm) (0.25 0.6 cdot)) 0 0 0 -0.6))
  (dotmp (enlarge (join (0 0 mp) (0.25 0.6 cdot)) 0 0 0 -0.6))
  (dotast (enlarge (join (0 0 ast) (0.11 0.4 cdot)) 0 0 0 -0.4))
  (dddot (join (0 0 dot) (0.2 0 dot) (0.4 0 dot)))
  (ddddot (join (0 0 dot) (0.2 0 dot) (0.4 0 dot) (0.6 0 dot)))
  (cdotslim (enlarge cdots 0 0 -0.1 -0.1))

  (lesseqdot (join (0 -0.05 leqslant) (0.4 0.02 cdot)))
  (gtreqdot (join (0 -0.05 geqslant) (0.4 0.02 cdot)))
  (precdot (join (0 0 prec) (0.5 0 cdot)))
  (preceqdot (join (0 -0.05 preccurlyeq) (0.5 0 cdot)))
  (dotsucc (join (0 0 succ) (0 0 cdot)))
  (dotsucceq (join (0 -0.05 succcurlyeq) (0 0 cdot)))
  (leftprec (glue shortleftarrow (join (-0.02 0.007 prec))))
  (leftpreceq (glue shortleftarrow (join (-0.02 -0.030 preccurlyeq))))
  (succright (glue (join (0 0.007 succ)) (-0.02 0 shortrightarrow)))
  (succeqright (glue (join (0 -0.030 succcurlyeq)) (-0.02 0 shortrightarrow)))

  (precprec (join (0 0 prec) (0.3 0 prec)))
  (precprecprec (join (0 0 prec) (0.3 0 prec) (0.6 0 prec)))
  (precpreceq (join (0 0 preceq) (0.3 0 preceq)))
  (precprecpreceq (join (0 0 preceq) (0.3 0 preceq) (0.6 0 preceq)))
  (succsucc (join (0 0 succ) (0.3 0 succ)))
  (succsuccsucc (join (0 0 succ) (0.3 0 succ) (0.6 0 succ)))
  (succsucceq (join (0 0 succeq) (0.3 0 succeq)))
  (succsuccsucceq (join (0 0 succeq) (0.3 0 succeq) (0.6 0 succeq)))
  (nprecprec (add precprec /))
  (nprecprecprec (add precprecprec /))
  (nprecpreceq (add precpreceq /))
  (nprecprecpreceq (add precprecpreceq /))
  (nsuccsucc (add succsucc /))
  (nsuccsuccsucc (add succsuccsucc /))
  (nsuccsucceq (add succsucceq /))
  (nsuccsuccsucceq (add succsuccsucceq /))

  (lleq (join (0 0 leq) (0.3 0 leq)))
  (llleq (join (0 0 leq) (0.3 0 leq) (0.6 0 leq)))
  (ggeq (join (0 0 geq) (0.3 0 geq)))
  (gggeq (join (0 0 geq) (0.3 0 geq) (0.6 0 geq)))
  (mapsup (enlarge (join (0 0 uparrow) (0 -0.45 smalldash)) 0 0 -0.45 0))
  (mapsdown (enlarge (join (0 0 downarrow) (0 0.45 smalldash)) 0 0 0 -0.45))
  (assign (join (0 0 \:) (0.3 0 =)))
  (plusassign (join (0 0 +) (0.75 0 =)))
  (minusassign (join (0 0 -) (0.75 0 =)))
  (astassign (join (0 0 asterisk) (0.5 0 =)))
  (overassign (join (0 0 /) (0.4 0 =)))
  (colons (enlarge (join (0.15 0 \:) (0.4 0 \:)) 0 0.15 0 0))
  (transtype (join (0 0 \:) (0.2 0 gtr)))
  (signchange (join (0 0.075 line-nee) (0 0.075 line-see)))
  (homsim (join (0 -0.1 smile) (0 0.1 frown)))
  (join (join ltimes rtimes))
  (atimes (0 -0.15 (rot-right ltimes)))
  (btimes (0 -0.15 (rot-left ltimes)))
  (threelefttimes (ver-flip leftthreetimes))
  (threerighttimes (ver-flip rightthreetimes))

  (cong (enlarge (join (0 -0.15 =) (0 0.25 sim)) 0 0 -0.15 -0.25))
  (subsetsim (join (0 -0.4 sim) (0 0.15 subset)))
  (supsetsim (join (0 -0.4 sim) (0 0.15 supset)))
  (simsim (enlarge (join (0 0 -) (0 0.25 sim) (0 -0.25 sim)) 0 0 -0.25 -0.25))
  (asympasymp
    (enlarge
      (join (0 0 -) (0 0.25 smallsmile) (0 -0.25 smallfrown)) 0 0 -0.25 -0.25))
  (ncong (add cong /))
  (nsimsim (add simsim /))
  (nasympasymp (add asympasymp /))
  (llangle (join (0 0 langle) (0.2 0 langle)))
  (rrangle (join (0 0 rangle) (0.2 0 rangle)))
  (mid |)
  (divides |)
  (ndivides nmid)
  (vect (enlarge varvect -0.2 0.1 0 0))
  (bind (enlarge varbind -0.6 0 0 0))
  (varmid (clip Vdash * 0.15 * *))
  (VDash (join (0 0 varmid) (0.2 0 vDash)))
  (VvDash (join (0 0 varmid) (0.2 0 varmid) (0.4 0 vDash)))
  (dashV (hor-flip Vdash))
  (Dashv (hor-flip vDash))
  (DashV (hor-flip VDash))
  (dashVv (hor-flip Vvdash))
  (DashVv (hor-flip VvDash))
  (ndashv (ver-flip (hor-flip nvdash)))
  (ndashV (ver-flip (hor-flip nVdash)))
  (nDashv (ver-flip (hor-flip nvDash)))
  (nDashV (ver-flip (hor-flip nVDash)))

  (frak-imath (clip frak-i * * * 0.47))
  (frak-jmath (clip frak-j * * * 0.47))
  (short-underscore (enlarge (clip _ 0.05 0.4 * *) 0 -0.15 0 0))

  (venus (join (0 0.1 female)))
  (mars (join (0 -0.1 male)))
  (earth (join (0 -0.15 wasy-38)))
  (aries vernal)
  (fullmoon Circle)
  (newmoon CIRCLE)
  (astrosun odot)
  (leo ascnode)
  (LEFTcircle (add LEFTCIRCLE Circle))
  (RIGHTcircle (add RIGHTCIRCLE Circle))
  (Square Box)
  (CheckedBox (add checked wasyBox))
  (photon-1 (enlarge wasy-58 0 0.14))
  (photon (glue photon-1
            (glue photon-1
              (glue photon-1 photon-1))))
  (gluon-1 (enlarge wasy-81 0 0.16))
  (gluon-2 (enlarge wasy-80 0 0.16))
  (gluon-3 (enlarge wasy-82 0 0.16))
  (gluon (glue gluon-1
           (glue gluon-2
             (glue gluon-2
               (glue gluon-2
                 (glue gluon-2
                   (glue gluon-2
                     (glue gluon-2 gluon-3)))))))))
